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 10/11/2016, à 22:05

ewok2

ligne de commande non executé en crontab

Bonjour

J'ai mis dans ma crontab cette ligne :

5 16 * * * /bin/cp /home/photo/timelaps/pic.jpg /home/photo/timelaps/pic-`/bin/date +%y%m%d`.jpg

Et quand j’exécute cette ligne dans un terminal cela fonctionne bien.

Par contre la crontab ne semble pas l’exécuter.

Une idée ?

Merci

Hors ligne

#2 Le 10/11/2016, à 22:45

Watael

Re : ligne de commande non executé en crontab

salut,

le signe % représente une fin de ligne pour cron, donc ta commande s'arrête à +.
tu devrais avoir un courrier dans ta messagerie système.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 10/11/2016, à 23:15

MicP

Re : ligne de commande non executé en crontab

5 16 * * * /bin/cp /home/photo/timelaps/pic.jpg /home/photo/timelaps/pic-`/bin/date +\%y\%m\%d`.jpg

=======
Mais je préfère :

5 16 * * * /bin/cp /home/photo/timelaps/pic.jpg /home/photo/timelaps/pic-$(/bin/date +\%y\%m\%d).jpg

et si c'est la crontab du compte utilisateur photo et que son répertoire personnel est /home/photo/
5 16 * * * /bin/cp $HOME/timelaps/pic.jpg $HOME/timelaps/pic-$(/bin/date +\%y\%m\%d).jpg

=======
Si Watael a le temps de nous faire bénéficier de ses conseils concernant ces lignes de commandes, je serai, bien sûr, à son écoute,
car il est bien plus compétent que moi et j'apprécie beaucoup ses messages et ses remarques.
Je n'ai fait que vérifier le bon fonctionnement de ces commandes sur mon système.

Dernière modification par MicP (Le 11/11/2016, à 00:27)

Hors ligne

#4 Le 11/11/2016, à 00:17

Watael

Re : ligne de commande non executé en crontab

étant donné que cron exécute les tâches inscrites, par défaut, dans le répertoire $HOME du propriétaire de la crontab, $USER/chemin/fichier devrait retourner une erreur, car il n'existe pas de répertoire /home/$USER/$USER/

par souci de lisibilité, je préfère quand même inscrire le chemin absolu du répertoire personnel de l'utilisateur, ou ~<nom d'utilisateur>, ou $HOME.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#5 Le 11/11/2016, à 00:24

MicP

Re : ligne de commande non executé en crontab

Effectivement, j'avais utilisé $HOME dans mes tests (qui avaient fonctionné), mais j'ai écrit $USER dans mon message.
Je corrige mon message précédent, et je barre la ligne corrigée utilisant $HOME (des fois que certains n'aient pas le temps de tout lire…)

je préfère quand même inscrire le chemin absolu du répertoire personnel de l'utilisateur

Merci beaucoup pour le conseil, j'en tiendrai compte smile

Je ne pensais pas que le tilde fonctionnait avec /bin/sh

sans doute une erreur : ~ tout seul plutôt que ~<utilisateur> puisque :
tilde <=> $HOME <=> /home/$USER

Dernière modification par MicP (Le 11/11/2016, à 04:06)

Hors ligne

#6 Le 11/11/2016, à 02:35

Watael

Re : ligne de commande non executé en crontab

MicP a écrit :

sans doute une erreur : ~ tout seul plutôt que ~<utilisateur> puisque :
tilde <=> $HOME <=> /home/$USER

ce n'est pas problématique, et ça me permet de désambiguïser.
~ ou ~<identifiant de connection> ou $HOME ou /home/$USER


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#7 Le 11/11/2016, à 04:21

MicP

Re : ligne de commande non executé en crontab

C'est de ma faute : J'avais automatiquement ajouté un / entre le tilde et <nom utilisateur> alors que tu n'en avais pas mis.

Ça m'apprendra a bien faire attention avant de poster des bêtises.

Désolé, et je n'ai même pas l'excuse de la fatigue pour ce coup là.

Hors ligne

#8 Le 11/11/2016, à 11:52

ewok2

Re : ligne de commande non executé en crontab

Whaou toute ces reponse en une nuit :-)
Merci beaucoup

Dans le syslog j'avais vu le message :

CRON[18742]: (user) CMD (/bin/cp /home/photo/timelaps/pic.jpg /home/photo/timelaps/pic-`/bin/date +) 

Et je pensai que c'etait juste l'info pour dire que ma commande etait passé...
Et en effet j'avais pas fait attention que la fin de ma commande etait tronqué!!

Pas de mail systeme car j'ai un MAILTO="" au debut de la crontab (pas de postfix ou equivalent sur cette machine)

Merci encore pour la correction (moi je met du chemin absolue partout dans mon crontab

Hors ligne

#9 Le 11/11/2016, à 12:29

jplemoine

Re : ligne de commande non executé en crontab

ewok2 a écrit :

Merci encore pour la correction (moi je met du chemin absolue partout dans mon crontab

oui mais attention au propriétaire du fichier.....
Si c'est le crontab de root qui est utilisé, sauf erreur de ma part, le fichier créé sera propriété de root:root.
Il faut donc peut-être dire à cp de garder les mêmes droits que le fichier principal : (cp -p)
ou utiliser le crontab de l'utilisateur.


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

#10 Le 11/11/2016, à 21:56

ewok2

Re : ligne de commande non executé en crontab

Pas de pb c'est la crontab du user :-)

Hors ligne