La gestion des tâches planifiées
Sous Gnu/Linux, la gestion des tâches planifiées peut être réalisée de nombreuses façons. Nous allons en voir quelques unes ci-dessous. Mais d’abord, nous allons nous attarder sur les possibilités offertes par la gestion des taches planifiées en ligne de commande sous Windows.
Sous Windows:
En plus du planificateur de tâche graphique que tout le monde connait, il existe différentes commandes plus ou moins évoluées donnant plus de possibilités que l’interface graphique, notamment ces 2 commandes: at et schtasks, celles-ci peuvent être lancées depuis un invité de commande (Win+R => cmd.exe).
AT est une commande très ancienne qui permet de planifier des taches journalières.
Ex: Planifier une tache à 9h10 tous les jours:
at 09:10 /EVERY:M,T,W,Th,F,Sa,Su "firefox.exe http://www.libre-astux.info"
SCHTASKS est la version évoluée d’AT, elle permet de regler bien plus finement les paramètres de la tache.
Ex: Planifier une tache toute les 30 minutes:
schtasks /create /tn "Afficher Libre-Astux" /sc minute /mo 30 /tr "firefox.exe http://www.libre-astux.info" /ru "SYSTEM"
Dans les 2 cas, la tâche crée sera exécutée par l’utilisateur SYSTEM sans demande de mot de passe (ni lors de la création, ni lors du déclenchement). Cela signifie que l’utilisation de ces commandes peut conduire à une élévation de privilèges pour l’application qui sera lancée par cette tâche. Au niveau facilité de modification, seule la tâche crée via la commande SCHTASKS sera modifiable directement via l’interface graphique du planificateur de tâches. Les 2 commandes lancées sans arguments affichent tout simplement la liste des tâches actuellement planifiées.
Sous Gnu/Linux:
Il existe différentes solutions pour planifier des tâches, notamment la crontab et la commande « at ».
Utilisation de la commande « at »:
La commande « at » permet de planifier une tâche ponctuelle. une tache pouvant être une commande, un script ou une liste de commandes.
Ex: Redémarrer le serveur X de façon brutale à 3hoo:
at 03:00 "kill -9 -1 "
Ex: Avec une liste de commande dans un fichier « MesCommandes » (une commande par ligne):
at 05:00 < MesCommandes
Les tâches saisies de cette manière le sont avec l’utilisateur logué, si vous désirez exécuter une tâche en tant qu’un autre utilisateur, veuillez utiliser la commande sudo -u user at … en remplaçant « user » par le nom de l’utilisateur désiré et « at … » par votre commande.
Si l’on désire planifier une tâche répétitive, on se tournera alors vers la crontab.
Pour ajouter une tache avec l’utilisateur courant, il suffit de saisir la commande crontab -e
puis d’ajouter la ligne concernant votre tache avec la syntaxe suivante:
# minutes heures jour_du_mois mois jour_de_la_semaine commande
Ex: Lancer la récupération d’une page web tous les jours à minuit:
0 0 * * * « wget http://www.libre-astux.info »
Ex: Lancer un backup tous les vendredis à 3h00:
0 3 * * 5 « /home/user/backup.sh »
Si l’on désire exécuter des scripts à intervalle régulier, il est également possible tout simplement de placer ceux-ci dans l’un des répertoires prévus à cet effet:
/etc/cron.daily pour une exécution journalière
/etc/cron.weekly pour une exécution hebdomadaire
/etc/cron.monthly pour une exécution mensuelle
Pour ceux qui ne sont pas fan de ligne de commandes, sachez qu’il existe également des utilitaires graphiques pour gérer les tâches planifiées. Un exemple, gnome-schedule.