Astuce : Modification manuelle du fichier crontab sur Synology

 

Logo SynologyPour 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é pour effectuer la prise en compte de ces modifications :

crond stop
crond start

ou si cela ne marche pas :

/usr/syno/etc/rc.d/S04crond.sh stop
/usr/syno/etc/rc.d/S04crond.sh 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 .

Articles en relation avec celui-ci

This entry was posted in Astuces/Tips, Linux, Logiciels, Nas, Réseau and tagged , , , . Bookmark the permalink.

4 Responses to Astuce : Modification manuelle du fichier crontab sur Synology

  1. alain says:

    Ça ne fonctionne pas sur un DS111 en DSM4.1-2668. Tout semble régénéré à partir de zéro à chaque boot car /etc.defaults/crontab est vide. Mais ça a fonctionné avec d’anciens DSM. Je cherche désespérément une méthode à l’épreuve des upgrade mais je ne vois pas autre chose que de patcher le script de démarrage de crond, ce qui m’embête un peu puisqu’il faudra le refaire à chaque fois.

    • Sam says:

      C’est étonnant que vous n’y arriviez pas sur le DS111 qui a le même DSM que les autres (au moins pur cette partie) ….
      Concernant le patch à chaque mise à jour , cela tient à la méthode employée par Synology pour faire ses mises à jour. Mais rien ne vous empeche de garder une copie du crontab qui fonctionne dans un de vos dossiers de données puis de le recopier au bon endroit après une mise à jour … la manip est alors réduite au strict minimum …

  2. CoolRaoul says:

    « Il s’avère que les Synology (DSM4.1) régénèrent le fichier /etc/crontab à chaque redémarrage »

    étonné par cela je suis!

    Sur mon syno (DSM 4.1 aussi) « /etc.defaults/crontab » ne contient que cette ligne d’en-tete:
    #minute hour mday month wday who command

    C’est bien « /etc/crontab » que je modifie et il persiste après reboot

    • Sam says:

      Oui, c’est étonnant et pourtant je ne suis pas le seul à l’avoir constaté après redémarrage de mon DS1511+ cela disparaissait .
      Voici par exemple un lien ou deux autres personnes l’on constaté également : un premier article et le second commentaire d’un autre utilisateur pour ce même article .
      Quel est ton Nas CoolRaoul (a base d’intel ou de marvell ? )

Comments are closed.