Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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… sad

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