J'avais mis un travail cron:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Le principal problème est qu’à l’heure prévue, il y a une erreur: "le courrier a été envoyé à/var/spool/mail/lucky".
Le contenu de myfile.sh est:
mkdir jh
cd jh
Ce n’est pas correct pour un script défini comme travail cron:
mkdir jh
cd jh
Vous devez donner le chemin complet où le répertoire jh
doit être créé. De plus, dans ce chemin, vous devriez avoir l'autorisation de créer de nouveaux fichiers/répertoires.
Par exemple, votre script devrait ressembler à:
#!/bin/sh
mkdir /home/lucky/jh
cd /home/lucky/jh
De plus, /usr/bin/sh
n'est pas le bon chemin pour sh
. Le bon chemin est /bin/sh
. Vous pouvez vérifier cela avec la commande whereis sh
. Et même ainsi, votre travail cron devrait ressembler à:
20 * * * * /home/lucky/myfile.sh
N'oubliez pas de rendre le script exécutable:
chmod +x /home/lucky/myfile.sh
Le chemin où cela semble créer le dossier est /
. Cela est dû au fait que crontab
nécessite le chemin complet du dossier et des fichiers dans tous les fichiers qu'il exécute.
Donc, le chemin dans myfile.sh devrait être
mkdir <absolutePath>/jh
cd <absolutePath>/jh
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Cette ligne est correcte bien que vous deviez vérifier le chemin pour voir si sh existe dans/usr/bin/sh ou non (utilisez which sh
pour voir le chemin où sh existe; le mien était/bin/sh)
Si vous êtes pressé de commencer à écrire crontab, ce lien contient de très bons exemples.
http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/