Un aperçu rapide: j'ai un script qui sauvegardera quotidiennement mon référentiel de code source de SVN dans une archive pour ce jour. J'ai testé le script et cela fonctionne très bien tant que je l'exécute en tant que Sudo, en raison de la propriété du répertoire de sortie.
Le problème est donc que je veux exécuter cela quotidiennement, alors je mets un lien vers cela dans le répertoire /etc/cron.daily. Voici le contenu du répertoire.
thom@spenser:/etc/cron.daily$ ls -l
total 60
-rwxr-xr-x 1 root root 189 2011-09-14 02:21 apport
-rwxr-xr-x 1 root root 15535 2011-10-06 11:30 apt
-rwxr-xr-x 1 root root 314 2011-08-08 16:57 aptitude
lrwxrwxrwx 1 root root 24 2012-02-28 11:05 backup -> /usr/local/bin/backup.sh
-rwxr-xr-x 1 root root 502 2011-06-08 11:48 bsdmainutils
-rwxr-xr-x 1 root root 256 2011-10-06 04:04 dpkg
-rwxr-xr-x 1 root root 372 2011-10-04 16:50 logrotate
-rwxr-xr-x 1 root root 1353 2011-07-27 07:17 man-db
-rwxr-xr-x 1 root root 606 2011-08-17 09:16 mlocate
-rwxr-xr-x 1 root root 249 2011-06-24 05:36 passwd
-rwxr-xr-x 1 root root 2417 2011-07-01 17:25 popularity-contest
-rwxr-xr-x 1 root root 383 2011-09-30 15:09 samba
-rwxr-xr-x 1 root root 3594 2011-09-19 20:07 standard
thom@spenser:/etc/cron.daily$
Le problème est que cela ne fonctionne tout simplement jamais. Voici les autorisations pour ce script:
thom@spenser:/etc/cron.daily$ ls -l /usr/local/bin/backup.sh
-rwxr-xr-x 1 root root 260 2012-02-28 11:03 /usr/local/bin/backup.sh
Des idées?
Essayé ce
run-parts --test /etc/cron.daily
Constaté que mon fichier update.ubuntu ne s’est pas présenté. Également remarqué que mon fichier avait une extension (contient un point).
Étapes pour résoudre ce problème.
run-parts --test /etc/cron.daily
, cette fois, mon dossier est arrivé!Peut-être l'une des choses suivantes:
Chemin des racines:
Selon les commandes exécutées, vous devrez peut-être développer la variable PATH des utilisateurs root en plaçant la ligne suivante en haut de leur fichier crontab:
PATH =/usr/sbin:/usr/bin:/sbin:/bin
src: https://help.ubuntu.com/community/CronHowto
Ou utilisez simplement des chemins complets pour chaque commande de votre script: /bin/ls
au lieu de ls
par exemple. (which ls
à la ligne de commande pour les chemins).
Il y a un bug étrange concernant les points dans le nom de fichier rapporté ici . Peut s'étendre au fichier auquel vous vous connectez, bien que cela semble improbable.
Enregistrez-vous la sortie du fichier de sauvegarde? Mettez quelque chose comme ceci sur la première ligne, pour aider à déterminer si elle ne fonctionne pas du tout ou si elle échoue à un moment donné.
/bin/echo "Attempting to run backup" >> /path-to-home/backup.log
Vous pouvez également essayer d’ajouter le script au fichier crontab directement:
Sudo -i
crontab -e
[add the next line to the file, then save and exit]
33 15 * * * /usr/local/bin/backup.sh
fonctionnera à 15h30 tous les jours si la machine est allumée. utilisez * * * * * pendant les tests pour exécuter une fois par minute jusqu'à ce que tout fonctionne.
Grep votre syslog pour des messages tels que;
crond: (*system*) BAD FILE MODE
les fichiers doivent être limités à (est suffisant) à 644):
chmod 0644 /etc/cron.d/my_crontab