From 5bd3c5ca95731e81ceaabedc04367e832ffbf5bb Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Wed, 8 May 2013 11:06:31 +0200 Subject: New article on fcron to cron migration --- content/Informatique/fcron2cron.rst | 123 ++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 content/Informatique/fcron2cron.rst (limited to 'content/Informatique/fcron2cron.rst') diff --git a/content/Informatique/fcron2cron.rst b/content/Informatique/fcron2cron.rst new file mode 100644 index 0000000..031e28d --- /dev/null +++ b/content/Informatique/fcron2cron.rst @@ -0,0 +1,123 @@ +.. -*- mode: rst -*- +.. -*- coding: utf-8 -*- + +=============== +De fcron à cron +=============== + +:date: 2013-05-09 +:tags: Libre, Python, Administration +:summary: |summary| +:logo: static/images/time/time_75.jpg +:lang: fr +:slug: fcron-to-cron + + +.. figure:: |filename|/images/time/time.jpg + :figwidth: 150 + :figclass: floatleft + :alt: Pavement + + Image : `Toni Verdú Carbó`_ (creativecommons_) + +.. _Toni Verdú Carbó: http://www.flickr.com/photos/tonivc/2283676770/in/photostream/ +.. _creativecommons: http://creativecommons.org/licenses/by-nc-nd/2.0/deed.fr + +|summary| + +.. |summary| replace:: + Debian Wheezy est sortie, et cette nouvelle version a fait un peu de ménage + dans les paquets disponibles. Parmi ceux-ci, fcron_ a disparu. Il s'agit du + gestionnaire de tâche planifiées que j'utilisais jusqu'alors. Ce petit + guide a pour vocation de vous expliquer comment migrer la configuration. + +.. _fcron: http://fcron.free.fr/ + +Fcron avait l'avantage de pouvoir gérer l'arrêt de la machine, et lancer les +tâches en attente lors du redémarrage. Quand on s'auto-héberge, cela permet de +prendre en charge les coupures inopinées, et se passer du couple cron/anacron. +Debian a fait le choix de préférer ce dernier couple plutôt que fcron, voici +donc un petit guide pour passer de l'un a l'autre. + +Migration ? +=========== + +Pour commencer, pas de panique, le paquet est supprimé des dépôts, mais reste +parfaitement fonctionnel sur votre machine. Vous n'avez donc pas besoin de vous +précipiter, tout va continuer de tourner tout seul comme auparavant. Vous +pouvez même choisir de ne pas migrer et continuer à l'utiliser. Toutefois, +si des failles de sécurités sont trouvées sur le programme, aucune mise à jour +ne sera effectuée : c'est à vous de vous tenir informé du développement de +l'application et de faire l'installation. + +La transformation +================= + +Voici un `script python`_ qui se charge de faire la migration d'un fcrontab +vers un crontab. Il ne fait que générer les fichiers de configuration, et +n'enregistre rien sur le système. Le script va lire les fcrontab enregistrées +dans le répertoire `/var/spool/fcron/` et génère en sortie les crontab +correspondantes pour chacun de ces utilisateurs. + +.. _script python: |filename|/resources/fcron2cron.py + +Usage +~~~~~ + +Le programme doit être lancé en root pour pouvoir lire les fichiers présents +dans le répertoire `/var/spool/fcron/` ainsi que les fcrontabs des différents +utilisateurs du système: + +.. code-block:: console + + $ mkdir crontabs + $ cd crontabs + $ sudo python ~/fcron2cron.py + +Il y a beaucoup moins de paramètres chez cron que fcron, il est toutefois +possible de convertir quelques instructions : + +Les options +~~~~~~~~~~~ + +Les seules options possibles dans cron sont celles qui concernent le mail : + +`mail(bool)` devient `MAILTO=""` si bool est à false `mailto(string)` devient +`MAILTO="string"` + +Les autres options sont ignorées\ [#]_. + + +Les directives +~~~~~~~~~~~~~~ + +Les directives `hourly`, `daily`\ [#]_, `weekly`, `monthly` sont transformées +en leur équivalent dans cron, ainsi que leur équivalent `mid-*ly`. Les +directives `mins`, `hours`, `days`, `mons`, `dow` ne sont pas prises en compte +et sont ignorées dans la ligne générée. + +L'édition +========= + +Le programme ne fait pas l'insertion de la crontab dans le système, ainsi, dans +le cas ou une telle crontab existe déjà, elle ne sera pas écrasée. C'est à +l'adminstrateur de mettre le paramétrage à jour. Une fois le script lancé, des +fichiers `UTILISATEUR.crontab` vont être générés. + +Si l'utilisateur n'a pas de crontab correspondante, il est possible de le +charger directement avec la commande suivante : + +.. code-block:: console + + # crontab -u ${USER} ${USER}.crontab + +Si l'utilisateur possède déjà une crontab, il va falloir éditer le fichier pour +le faire correspondre. Maintenant qu'il ne reste plus que ça à faire, il est +temps de se remonter les manches et y aller à la main ! Une fois que les +modifications sont faites, vous pouvez désinstaller fcron de votre système. + +Notes +===== + +.. [#] Y compris les options en début de commande (ligne débutant par `&`) +.. [#] `nightly` est traité de la même manière -- cgit v1.2.3