Astuce : Modification manuelle du fichier crontab sur Synology

Publié le 06 janvier 2013 par Autourdesam @Autour_de_Sam

Pour un prochain tutoriel concernant les Synology et que je présenterai bientôt (enfin j’espère ), j’ai eu besoin de modifier le fichier crontab. Voici quelques remarques pour éviter quelques désagréments.

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 .