Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5193 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  UNIX: Crontab

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

UNIX: Crontab

n°1349007
maoboyindo
Posté le 18-04-2006 à 16:47:50  profilanswer
 

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.

mood
Publicité
Posté le 18-04-2006 à 16:47:50  profilanswer
 

n°1350437
Sve@r
Posté le 20-04-2006 à 13:40:39  profilanswer
 

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.
n°1351109
maoboyindo
Posté le 21-04-2006 à 12:11:09  profilanswer
 

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.
 
 :??:  
 

n°1351139
nargy
Posté le 21-04-2006 à 12:51:54  profilanswer
 

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 << \\ >>

n°1351144
nargy
Posté le 21-04-2006 à 12:53:49  profilanswer
 

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

n°1351518
Sve@r
Posté le 21-04-2006 à 18:34:40  profilanswer
 

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.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  UNIX: Crontab

 

Sujets relatifs
lecture "dynamique" d'un fichier sous Unixlancer un shell ou un executable unix
shell unix application de masques...[C / Unix] Recuperer un evenement clavier en mode console
[UNIX - SHELL] Définition du prompt en kshFaire un script shell sous Unix
novice en programmation doit programmer sous unix.Appel de commande shell unix en java
GD lib, plateforme windows et unixProg standalone lance par crontab sous Unix
Plus de sujets relatifs à : UNIX: Crontab


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)