Automatiser les t�ches syst�me
---------------------------------------------------------------------------
Les t�ches, aussi appel�es jobs, peuvent �tre configur�es pour �tre ex�cut�es
automatiquement dans un laps de temps sp�cifi�, � une date sp�cifi�e
-------------------------------------------------------------------------------
Cron et Anacron
------------------------------------------------------------------------------
Cron et Anacron sont des d�mons pouvant planifier l'ex�cution de t�ches r�currentes
� un certain moment, d�fini par une heure exacte, un jour du mois, un jour de la
semaine et par une semaine.
-----------------------------------------------------------------------------------
------------
Installer Cron et Anacron
verification si les package existe d�ja sur le systeme
rpm -q cronie cronie-anacron
yum install cronie cronie-anacron
systemctl status [Link]
systemctl start [Link]
systemctl stop [Link]
systemctl disable [Link]
systemctl restart [Link]
Configurer les t�ches Anacron
-----------------------------------------------------------------------------------
-------------------
Configurer les t�ches Anacron
vim /etc/anacrontab
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
#period in days delay in minutes job-identifier command
1 5 [Link] nice run-parts /etc/[Link]
7 25 [Link] nice run-parts /etc/[Link]
@monthly 45 [Link] nice run-parts /etc/[Link]
-----------------------------------------------------------------------------------
-------------------------
Exemples de t�ches Anacron
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=30
# the jobs will be started during the following hours only
START_HOURS_RANGE=16-20
#period in days delay in minutes job-identifier command
1 20 dailyjob nice run-parts /etc/[Link]
7 25 weeklyjob /etc/[Link]
@monthly 45 monthlyjob ls /proc >> /tmp/proc
Toutes les t�ches d�finies dans ce fichier anacrontab sont retard�es de 6 � 30
minutes et peuvent �tre ex�cut�es entre 16h00 et 20h00.
La premi�re t�che d�finie est d�clench�e quotidiennement entre 16h26 et 16h50
(RANDOM_DELAY se trouve entre 6 et 30 minutes ; la propri�t� delay in minutes
ajoute 20 minutes). La commande sp�cifi�e pour cette t�che ex�cute tous les
programmes pr�sents dans le r�pertoire /etc/[Link]/ � l'aide du script run-
parts (les scripts run-parts acceptent un r�pertoire en tant qu'argument de ligne
de commande et ex�cutent s�quentiellement tous les programmes dans le r�pertoire).
Veuillez consulter la page man run-parts pour obtenir davantage d'informations sur
le script run-parts.
La seconde t�che ex�cute le script [Link] dans le r�pertoire /etc une fois
par semaine.
La troisi�me t�che ex�cute une commande, qui �crit le contenu de /proc sur le
fichier /tmp/proc (ls /proc >> /tmp/proc) une fois par mois.
-----------------------------------------------------------------------------------
----------------------
Configuration des t�ches Cron
Le fichier de configuration pour les t�ches cron est /etc/crontab, et peut
uniquement �tre modifi� par l'utilitasteur root. Le fichier contient ce qui suit :
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
Les trois premi�res lignes contiennent les m�mes d�finitions de variables qu'un
fichier anacrontab : SHELL, PATH, et MAILTO
La variable HOME d�finit le r�pertoire, qui sera utilis� comme r�pertoire personnel
lorsque des commandes ou scripts seront ex�cut�s par la t�che.
Les lignes restantes dans le fichier /etc/crontab repr�sentent les t�ches
planifi�es et se trouvent sous le format suivant :
minute hour day month day of week username command
Ce qui suit permet de d�finir le moment auquel la t�che doit �tre ex�cut�e :
minute � un entier de 0 � 59
hour � un entier de 0 � 23
day � un entier de 1 � 31 (doit �tre un jour valide si le mois est sp�cifi�)
month � un entier de 1 � 12 (ou l'abbr�vation du nom en anglais, par exemple �
jan � ou � feb �)
day of week � un entier de 0 � 7, o� soit 0, soit 7, correspond au dimanche (ou
l'abbr�viation du nom en anglais du jour de la semaine, par exemple � sun � ou �
mon �)
Ce qui suit permet de d�finir les autres propri�t�s des t�ches :
username � indique l'utilisateur sous lequel les t�ches doivent �tre ex�cut�es.
command � la commande devant �tre ex�cut�e.
La commande peut �tre une commande telle que ls /proc /tmp/proc, ou une
commande qui ex�cute un script personnalis�.
-----------------------------------------------------------------------------------
------------------------------------------------------
confguration d'un cron job
vim /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/[Link]
02 4 * * * root run-parts /etc/[Link]
22 4 * * 0 root run-parts /etc/[Link]
42 4 1 * * root run-parts /etc/[Link]
Pour toutes les valeurs ci-dessus, un ast�risque (� * �) peut �tre utilis� pour
indiquer toutes les valeurs valides. Par exemple, si vous d�finissez la valeur du
mois avec un ast�risque, la t�che sera ex�cut�e chaque mois selon les autres
valeurs.
Un tiret (� - �) entre nombres entiers indique une plage d'entiers. Par exemple, 1-
4 signifie les entiers 1, 2, 3, et 4.
Des valeurs s�par�es par des virgules (� , �) indiquent une liste. Par exemple,
3,4,6,8 indique exactement ces quatre entiers.
La barre oblique (� / �) peut �tre utilis�e pour sp�cifier des valeurs �tapes. La
valeur d'un entier sera ignor�e � l'int�rieur d'une plage suivant la plage avec les
/entier. Par exemple, la valeur minute d�finie par 0-59/2 indique chaque seconde
minute du champ minute. Des valeurs �tapes peuvent �galement �tre utilis�es avec un
ast�risque. Par exemple, si la valeur du mois est d�finie par */3, la t�che sera
ex�cut�e tous les trois mois.
Pour cr�er un crontab en tant qu'utilisateur sp�cifique, connectez-vous avec ce nom
d'utilisateur et saisissez la commande crontab -e pour modifier le crontab de
l'utilisateur avec l'�diteur sp�cifi� dans la variable d'environnement VISUAL ou
EDITOR. Le fichier utilise le m�me format que /etc/crontab. Lorsque les changements
crontab sont enregistr�s, le crontab est stock� selon le nom d'utilisateur, puis
�crit sur le fichier /var/spool/cron/username. Pour r�pertorier le contenu du
fichier crontab de l'utilisateur, veuillez utiliser la commande crontab -l.
Le r�pertoire /etc/cron.d/ contient des fichiers qui poss�dent la m�me syntaxe que
le fichier /etc/crontab. Seul l'utilisateur root est autoris� � cr�er et � modifier
des fichiers dans ce r�pertoire.
-----------------------------------------------------------------------------------
-------------------------------------------------------------------
exemple de fichier /etc/crontab
# record the memory usage of the system every monday
# at 3:30AM in the file /tmp/meminfo
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo
# run custom script the first day of every month at 4:10AM
10 4 1 * * /root/scripts/[Link]
-----------------------------------------------------------------------------------
------------------------------------------------------------------------
Contr�le de l'acc�s � cron
Pour limiter l'acc�s � Cron, vous pouvez utiliser les fichiers /etc/[Link]
et /etc/[Link]
Vous pouvez contr�ler les acc�s via les modules PAM (� Pluggable Authentication
Modules �). Les param�tres sont stock�s dans le fichier /etc/security/[Link].
Par exemple, apr�s avoir ajout� la ligne suivante au fichier, aucun utilisateur
autre que l'utilisateur root ne pourra cr�er de Crontabs :
-:ALL EXCEPT root :cron
-----------------------------------------------------------------------------------
----------------------------------------------------------------
exemple de tache scheduler avec crontab
sudo crontab -l
sudo crontab -e (ouvrir l'editeur par defaut ex: vim)
format d'u cron job
* * * * * /bin/execute/this/[Link]
signification du cron job
les 5 �toiles signifie
minute (from 0 to 59)
hour (from 0 to 23)
day of month (from 1 to 31)
month (from 1 to 12)
day of week (from 0 to 6) (0=Sunday)
exemple pr�cedent signifie
tout les minute
tout les heures
tout les jours du mois
tout les mois
tout les jours de la semaines
exemple d'execution tout les vendredi a 1h AM
0 1 * * 5 /bin/execute/this/[Link]
minute 0
heure 1
jours du mois *
mois *
jours de la semaine : 5 (friday)
-----------------------------------------------------------------------------------
-----------------------------
exemple de quelque execution
execution journali�re a 2h AM
0 2 * * * /bin/sh [Link]
execution de fois par jours a 5H AM et 5H PM
0 5,17 * * * /scripts/[Link]
execution chaque minute ( pour les job cyclique)
* * * * * /scripts/[Link]
execution tout les dimanche a 5h PM
* * * * * /scripts/[Link]
execution chaque 10 minute
*/10 * * * * /scripts/[Link]
execution pour des mois pr�cis
* * * jan,may,aug * /script/[Link]
execution pour des jours pr�cis a 5H PM
0 17 * * sun,fri /script/[Link]
execution chaque premier dimanche du mois a 2H AM
0 17 * * sun,fri /script/[Link]
execution chaque ann�e
@yearly /scripts/[Link]
execution chaque mois
@monthly /scripts/[Link]
execution chaque semaine
@weekly /bin/[Link]
execution chaque jour
@daily /scripts/[Link]
execution chaque heure
@hourly /scripts/[Link]
execution au demarrage
@reboot /scripts/[Link]
-----------------------------------------------------------------------------------
----------