summaryrefslogtreecommitdiff
path: root/content/Informatique/2013-05-09-fcron2cron.rst
diff options
context:
space:
mode:
Diffstat (limited to 'content/Informatique/2013-05-09-fcron2cron.rst')
-rw-r--r--content/Informatique/2013-05-09-fcron2cron.rst123
1 files changed, 123 insertions, 0 deletions
diff --git a/content/Informatique/2013-05-09-fcron2cron.rst b/content/Informatique/2013-05-09-fcron2cron.rst
new file mode 100644
index 0000000..f48821a
--- /dev/null
+++ b/content/Informatique/2013-05-09-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: /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