Comment définir un travail cron pour exécuter un script shell?


Réponses:


61

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 jhré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/shn'est pas le bon chemin pour sh. Le bon chemin est /bin/sh. Vous pouvez vérifier cela avec la whereis shcommande. 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

Awsome, m'a sauvé la vie :) Le mien fonctionne bien comme ça. 0 7 * * * / bin / sh /root/Scripts/command.sh> / dev / null 2> & 1
Louwki

5

Le chemin où cela semble créer le dossier est /. En effet , le crontabrequiert 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.shCette ligne est correcte bien que vous deviez vérifier le chemin pour voir si sh existe dans / usr / bin / sh ou non (utilisez which shpour 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/

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.