#1 Le 29/09/2014, à 18:26
- Zorzor
[Résolu] date fichier ne marche pas avec crontab
Bonjour,
J'essaie de créer des fichiers log avec comme nom la date du moment, mais la fonction date ne veut pas marcher avec crontab
J'arrive a créer un fichier avec : nano date-`date +%Y-%m-%d-%H-%M`.log
J'arrive a stocker les log de ma commande crontab dans un fichier nommé : test.log
Mais je n'arrive pas a stocker les log de ma commande crontab dans un fichier nommé : date-`date +%Y-%m-%d-%H-%M`.log
Sachant que le fichier crontab qui souvre avec crontab -e, hormis les commentaire, est vide à la base
Si vous avez une idée pourquoi
Merci
Dernière modification par Zorzor (Le 29/09/2014, à 21:36)
Hors ligne
#2 Le 29/09/2014, à 18:36
- jplemoine
Re : [Résolu] date fichier ne marche pas avec crontab
Peux-tu donner ce que tu mets dans le crontab ? Je pense que c'est là que ça coince...
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#3 Le 29/09/2014, à 18:42
- Zorzor
Re : [Résolu] date fichier ne marche pas avec crontab
Peut importe ce que je met enfaîte
Par exemple
soit : 50 18 * * * cd ~/www/site/app; "Console/cake" delete > date-`date +%Y-%m-%d-%H-%M`.log
ou : 0 14 * * * mysqldump -u root -pMDP --all-databases > date-`date +%Y-%m-%d-%H-%M`.log
Hors ligne
#4 Le 29/09/2014, à 18:50
- jplemoine
Re : [Résolu] date fichier ne marche pas avec crontab
je pense que tu ne peux pas mettre une telle ligne dans le crontab.
Il faut que tu appelles un fichier .sh qui contient la ligne
soit : 50 18 * * * cd ~/www/site/app; "Console/cake" delete > date-`date +%Y-%m-%d-%H-%M`.log
devient
soit : 50 18 * * * test.sh
et dans test.sh
!# /bin/sh
cd /home/xxx/www/site/app;
"Console/cake" delete > date-`date +%Y-%m-%d-%H-%M`.log
Attention : je ne suis pas sûr que ~ soit renseigné dans le cron.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#5 Le 29/09/2014, à 18:58
- Zorzor
Re : [Résolu] date fichier ne marche pas avec crontab
Mais tu as lu mon 1er message enfaîte ou juste le titre ?
J'ai bien dit que seul le nom du fichier dépendait que ça marche ou non
Cette ligne fonctionne très bien avec crontab
Hors ligne
#6 Le 29/09/2014, à 18:59
- pingouinux
Re : [Résolu] date fichier ne marche pas avec crontab
Salut,
Tu peux éventuellement essayer ainsi (ce qui peut faire la différence est /bin/date au lieu de date)
... > date-$(/bin/date +"%Y-%m-%d-%H-%M").log
Hors ligne
#7 Le 29/09/2014, à 19:05
- jplemoine
Re : [Résolu] date fichier ne marche pas avec crontab
oui. J'avais pas vu mais ça peut expliquer la chose.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#8 Le 29/09/2014, à 19:25
- Zorzor
Re : [Résolu] date fichier ne marche pas avec crontab
Ah oui c'est vrai que j'avais aussi essayé le /bin(mais pas avec le $)
Mais ça ne marche pas non plus
Aucun des 2 fichiers n'est créé avec :
19 19 * * * mysqldump -u root -pMDP --all-databases 2>/tmp/cron_stderr 1> /tmp/date-$(/bin/date +"%Y-%m-%d-%H-%M").log
alors que ça marche très bien :
19 19 * * * mysqldump -u root -pMDP --all-databases 2>/tmp/cron_stderr 1>/tmp/test.log
cf http://www.developpez.net/forums/d65980 … ost3876095
En gros le date fait planté la ligne completement
Une petite précision, je suis sur Debian parcontre
Dernière modification par Zorzor (Le 29/09/2014, à 19:42)
Hors ligne
#9 Le 29/09/2014, à 20:16
- pingouinux
Re : [Résolu] date fichier ne marche pas avec crontab
Avec la première commande, y a-t-il quand même un fichier de créé dans /tmp (dont le nom commence par date- et finit par .log) ? Y a-t-il quelque chose dans /tmp/cron_stderr ?
Hors ligne
#10 Le 29/09/2014, à 20:21
- Zorzor
Re : [Résolu] date fichier ne marche pas avec crontab
Non comme je l'ai dit, aucun des 2 fichiers n'est créé lorsque la function date est appelé, alors que les 2 fichiers sont bien créé lorsque c'est un nom classique
J'avais entendu parler d'un problème possible de configuration du shell ou du path aussi
Hors ligne
#11 Le 29/09/2014, à 20:27
- pingouinux
Re : [Résolu] date fichier ne marche pas avec crontab
Dans ce cas, désolé, je n'ai pas d'autre idée…
Hors ligne
#12 Le 29/09/2014, à 20:33
- jplemoine
Re : [Résolu] date fichier ne marche pas avec crontab
Regardes mon post #4... En indirect + corrections coté ensuite, est-ce que ça fonctionne ?
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#13 Le 29/09/2014, à 21:16
- Gaara
Re : [Résolu] date fichier ne marche pas avec crontab
Je rejoins l'idée de créer un fichier séparé pour créer le log. Je fais souvent ça avec mes scripts python:
#! /bin/sh
exec >/home/toto/fichier_log.log 2>&1
python mon_script.py
Donc en adaptant:
#! /bin/sh
exec >/home/toto/date-`date +%Y-%m-%d-%H-%M`.log 2>&1
sh /home/toto/script.sh
(un truc comme ça, je suis nul en bash/sh)
ça oblige a avoir deux fichiers, mais bon si ça fonctionne..
Dernière modification par Gaara (Le 29/09/2014, à 21:18)
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#14 Le 29/09/2014, à 21:35
- Zorzor
Re : [Résolu] date fichier ne marche pas avec crontab
OMG... enfaîte c'est les paramètres de date qu'il aime pas, j'ai essayer juste : `date` sans .sh et ça marche, mais bien sur ça me sort un nom à rallonge...
Et avec le .sh c'est bon ça marche avec les paramètres
Merci
Hors ligne
#15 Le 30/09/2014, à 06:48
- Postmortem
Re : [Résolu] date fichier ne marche pas avec crontab
Salut,
Dans cron, les % dans le champ de commande sont vus comme des caractères spéciaux, tout ce qui suit le % est envoyé sur l'entrée standard de la commande. Il aurait donc fallu faire :
50 18 * * * cd ~/www/site/app; "Console/cake" delete > "date-`date +%Y-%m-%d-%H-%M`.log"
Voir peut-être même :
50 18 * * * cd ~/www/site/app; "Console/cake" delete > "date-`date +\%Y-\%m-\%d-\%H-\%M`.log"
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne