Pour mémoire, le fichier crontab sert au démon crond pour exécuter des tâches régulières suivant une planification prédéterminée.
Dans ma situation c’est un script shell que j’ai besoin d’exécuter une fois par semaine.
Naïvement j’ai modifié le fichier /etc/crontab puis en ligne de commande j’ai réalisé :
crond stop crond start
A l’issue de cela tout marche bien …. jusqu’au prochain redémarrage où la ligne saisie dans le crontab a finalement disparue.
Il s’avère que les Synology (DSM4.1) régénèrent le fichier /etc/crontab à chaque redémarrage. Aussi, pour avoir une modification qui « résiste » au redémarrage, il faut modifier le fichier /etc.defaults/crontab . En effet ,son contenu est automatiquement recopié dans le fichier /etc/crontab.
Par contre cette modification ne résiste pas au changement de firmware…. aussi prévoir de garder une copie ailleurs de ce fichier pour le recopier une fois une mise à jour effectuée.
Enfin, il est impératif que les différents champs du fichier crontab soient séparés par des tabulations et non par des espaces … ainsi la ligne crontab suivante :
#minute hour mday month wday who command 49 0 * * 2 root /usr/syno/bin/synopkg chkupgradepkg
se saisira :
49/TAB/0/TAB/*/TAB/*/TAB/2/TAB/root/TAB/commande
Enfin, pour faciliter la saisie, je vous rappelle l’excellent module .SPK d’édition de fichiers de configuration des Synology fournit par MertyMade : ConfigFileEditor . Un vrai bonheur à utiliser… sinon, il reste toujours la ligne de commande avec vi .