UNIX: Crontab

UNIX: Crontab - Shell/Batch - Programmation

Marsh Posté le 18-04-2006 à 16:47:50    

Bonjour,
 
Je souhaite tracer l'exécution d'un script dans un fichier log.
Jusque là, j'arrive à suivre puisque je redirige vers le fichier log en question à l'aide de >>.
 
Par contre, je voudrais que la date apparaissent dans le nom du fichier log.
Si je met >> /export/home/testdate.trc.`date '+\%Y\%m\%d'`
 
Le nom du fichier comporte alors les "\".
 
Si je ne met pas les "\", il m'interprète les %.
 
Si quelqu'un à une idée, elle est la bienvenue.
 
PS : Je suis sous Unix.
 
D'avance merci pour vos réponses.

Reply

Marsh Posté le 18-04-2006 à 16:47:50   

Reply

Marsh Posté le 20-04-2006 à 13:40:39    

maoboyindo a écrit :


Par contre, je voudrais que la date apparaissent dans le nom du fichier log.
Si je met >> /export/home/testdate.trc.`date '+\%Y\%m\%d'`
 
Le nom du fichier comporte alors les "\".


Normal, les backslashes sont mis entre quottes simples donc ils sont traités tels quel (leur rôle est annulé par les quottes simples)
 

maoboyindo a écrit :

Si je ne met pas les "\", il m'interprète les %.


Le caractère "%" n'est pas un métacaractère shell donc il ne peut pas être interprété. Et même un métacaractère ne serait pas interprété car les quottes simples inhibent tout métacaractère quel qu'il soit (c'est pour ça que tu récupères tes "\" car leur rôle est annulé par les quottes simples)
 
Par ailleurs, tu dois faire une erreur dans la retranscription de ton problème parce que je viens, à l'instant, de taper

ls >a.`date '+%Y'`


Et j'ai bien eu mon "ls" qui est allé s'inscrire dans un fichier "a.2006"...


Message édité par Sve@r le 20-04-2006 à 13:41:54

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 21-04-2006 à 12:11:09    

Merci pour ta réponse.
 
Effectivement, si je tape :
ls >a.`date '+%Y'`
 
Directement sous le prompt, je n'ai aucun souci.
Le problème se produit si j'écris cette ligne de code dans la crontab.
 
 :??:  
 

Reply

Marsh Posté le 21-04-2006 à 12:51:54    

oui, le crontab interprète les % comme un début de heredoc:

Citation :


Percent-signs  (%)  in  the  command,
unless escaped with backslash (\), will be changed into newline charac-
ters, and all data after the first % will be sent  to  the  command  as
standard input.


 
essaye << \\ >>

Reply

Marsh Posté le 21-04-2006 à 12:53:49    

errata: fait un script ou mets la redirection >> dans ton script :)

Reply

Marsh Posté le 21-04-2006 à 18:34:40    

nargy a écrit :

oui, le crontab interprète les % comme un début de heredoc


Je savions point...
 

nargy a écrit :

errata: fait un script ou mets la redirection >> dans ton script :)


Vi, c'est encore ce qu'il y a de mieux à faire...  :wahoo:  


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Sujets relatifs:

Leave a Replay

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