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

Cette entrée a été publiée dans Astuces/Tips, Linux, Logiciels, Nas, Réseau, avec comme mot(s)-clef(s) , , , . Vous pouvez la mettre en favoris avec ce permalien.

4 réponses à Astuce : Modification manuelle du fichier crontab sur Synology

  1. alain dit :

    Ç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 dit :

      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 dit :

    « 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 dit :

      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 ? )

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>