J'avais mis un travail cron:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Le problème principal 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
J'avais mis un travail cron:
20 * * * * /usr/bin/sh /home/lucky/myfile.sh
Le problème principal 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
Réponses:
Ce n’est pas correct pour un script défini comme travail cron:
mkdir jh
cd jh
Vous devriez donner le chemin complet où le jh
répertoire 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
Aussi /usr/bin/sh
n'est pas le bon chemin pour sh
. Le bon chemin est /bin/sh
. Vous pouvez vérifier cela avec la whereis sh
commande. 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 /
. En effet , le crontab
requiert le chemin complet vers le dossier et les 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/