Comment ecire la date dans un nom de fichier

Comment ecire la date dans un nom de fichier - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 29-07-2006 à 15:04:46    

Bonjour
 
je souhaite créer un fichier de log pour un petit programme.
Comme ce programme est lancé tous les jours par un cron, j'écrit la sortie de ce programme dans un fichier de log comme ca :
mon_programme >> ma_log.txt
 
Par contre contre comment faire pour ajouter la date au fichier de log ?
 
merci pour votre aide

Reply

Marsh Posté le 29-07-2006 à 15:04:46   

Reply

Marsh Posté le 29-07-2006 à 16:10:46    

j'ai trouvé ca qui me donne la date :  
date +%y%m%d
mais je ne sais pas comment integrer cette commande en ma premiere  

Reply

Marsh Posté le 29-07-2006 à 16:11:47    

mon_programme >> ma_log_`date +%y%m%d`.txt


---------------
Two thousand years of misery, of torture in my name, hypocrisy made paramount, paranoia the law, my name is called religion, sadistic, sacred whore.
Reply

Marsh Posté le 30-07-2006 à 00:20:06    


Code :
  1. #!/bin/bash
  2. #date du jour
  3. DATE=`date +"%y%m%d"`
  4. #date de la vielle
  5. DATE2=`date --date '1 days ago' +"%y%m%d"`;
  6. #date d'il y'a 3 jours
  7. DATE3=`date --date '3 days ago' +"%y%m%d"`;
  8. mon_programme >> log_$DATE.txt
  9. #par exemple

 
 

Reply

Marsh Posté le 30-07-2006 à 22:28:20    

Citation :

mon_programme >> ma_log_`date +%y%m%d`.txt


Bizarement cette ligne de commande ne fonctionne pas avec quand elle est lancer par un cron mais bien quand on la tape dans un shell  
je vais donc essaye la solution de plouf
 :hello:

Reply

Marsh Posté le 30-07-2006 à 22:41:08    

Lors de l'exécution du cron, la variable $PATH ne doit pas être correctement renseignée:  
essaye de faire  

mon_programme >> ma_log_`/bin/date +%y%m%d`.txt

Reply

Marsh Posté le 30-07-2006 à 22:59:59    

voici ce que j'ai dans syslog :

Citation :

Jul 30 22:50:01 localhost /USR/SBIN/CRON[5471]: (coolben) CMD (/home/coolben/projet_course/moteur/test_hello >> /home/coolben/projet_course/moteur/log/log_test_hello_`/bin/date +)


 
au lieu de :  

Citation :

/home/coolben/projet_course/moteur/test_hello >> /home/coolben/projet_course/moteur/log/log_test_hello_`/bin/date +%y%m%d`.txt


 
 :??:

Reply

Marsh Posté le 31-07-2006 à 01:23:44    

As tu prit le temps de lire mon post précédent et de tester ?

Reply

Marsh Posté le 31-07-2006 à 07:54:24    

oui j'ai pris le temps de le lire et de tester  
mais je ne comprend pas quand je lance par le cron, j'ai l'impression que rien ne s'execute
je comprend pas !
Par contre je vois bien la ligen de commande dans syslog

Reply

Marsh Posté le 31-07-2006 à 18:26:23    

mon_programme est bien exécuté (i.e visible dans top ou ps) ? essaye de mettre le chemin absolu de mon_programme.

Reply

Marsh Posté le 31-07-2006 à 18:26:23   

Reply

Marsh Posté le 31-07-2006 à 19:38:17    

tu es dans un cron pas dans un shell tu n'as pas les meme variables d'environnement.
il te faut le chemin absolu tant du programme que de tout fichier appele/ouvert ou de redirection

Reply

Marsh Posté le 31-07-2006 à 23:33:33    

voici la ligne dans mon cron :

Citation :

50 *    * * *   coolben /home/coolben/projet_course/moteur/test_hello >> /home/coolben/projet_course/moteur/log/log_test_hello_`/bin/date +%y%m%d`.txt


 
tout est en absolu et pourtant j'ai pas l'impression que ca marche.

Reply

Marsh Posté le 01-08-2006 à 08:43:02    

man 5 crontab
 
http://www.linux-kheops.com/doc/ma [...] tab.5.html
 

Citation :


Les signes pourcentages (%) dans les commandes seront transformés en retour-chariot, sauf s'ils sont précédés par un backslash (\). Toutes les données se trouvant à la suite du premier % seront transmises à la commande sur son entrée standard.

Reply

Marsh Posté le 01-08-2006 à 10:10:47    

.....`date +"\%....."`
 
ça doit passer non ?


Message édité par francoispgp le 01-08-2006 à 10:11:14
Reply

Marsh Posté le 03-08-2006 à 07:52:39    

apres un petit test cela marche bien avec un \ devant les %
merci a tous

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed