TD n°1-Correction-
Exercice n°1
Que fait chacune des lignes crontab ci-dessous:
(a) 0 0 1,15 * * commande
(b) 30 2 1,15 * * /sbin/shutdown -r
(c) 15 3 * * 1 /usr/bin/backup
(d) 15 * * * * commande
(e) 30 7 * * 1-5 commande
(f) 0,15,30,45 15-19 1-15 7-9 1-5 commande
(g)0 2 1 * * find /tmp -atime 31 -exec rm -f {} \;
Correction
(a) exécution de la commande le premier jour et le quinzième jour de chaque mois à minuit
(b) provoquer un reboot de la machine le premier jour et le quinzième jour de chaque mois à 2h 30 du matin
(c) appeler un script de sauvegarde tous les lundis a 3 h 15 du matin
(d) exécution de la commande toutes les heures passées 15 minutes
(e) exécution de la commande tous les matins du lundi au vendredi à 7 h 30
(f) exécution de la commande tous les quarts d'heure de 15h à 19h du lundi au vendredi seulement en 1ère
quinzaine du troisième trimestre.
(g) Nettoyer le répertoire /tmp des vieux fichiers (non modifiés depuis 31 jours) et ceci tous les premier jour
de chaque mois, à 2 heures du matin
Exercice N°2
1. L'utilisateur toto désire ajouter toutes les 5 minutes un message "Bonjour" suivi de la date, dans le fichier
/tmp/bonjour.txt. Que doit-il ajouter dans sa crontab. (toto étant un utilisateur autorisé)
2. Rappelez le principe du contrôle d'accès à la commande « crontab » via les fichiers « cron.allow » et «
cron.deny »
3. Comment faire pour interdire l’utilisation du service cron à l’utilisateur toto ?
4. Le root veut enregistrer entre 9h à 17h, les jours ouvrables :
• toutes les heures, dans /var/log/processus.txt, tous les processus qui tournent sur la machine
• tous les 5 minutes, dans /var/log/qui.txt, tous les utilisateurs connectés
5. Que réalisent les commandes suivantes?
# at noon
at> /usr/local/bin/systemmaintenance
[Ctrl+D ]
▢Rien; Ces commandes ne sont pas valides.
▢Rien ; noon n’est pas une option valide de at.
▢Le script /usr/local/bin/systemmaintenance sera exécuté à midi
Correction
1. $ crontab -e
*/5 * * * * (echo -n Bonjour ! nous sommes le ;date ) >> /tmp/bonjour.txt
1 AU : 2019-2020
2. Pour limiter l'accès à Cron, vous pouvez utiliser les fichiers /etc/cron.allow et /etc/cron.deny. Ces fichiers
de contrôle d'accès utilisent le même format en définissant un nom d'utilisateur sur chaque ligne. N'oubliez
pas que les caractères d'espace ne sont pas autorisés dans ces fichiers.
Si le fichier cron.allow existe, seuls les utilisateurs répertoriés dans celui-ci seront autorisés à utiliser cron, et
le fichier cron.deny sera ignoré.
Si le fichier cron.allow n'existe pas, les utilisateurs répertoriés dans le fichier cron.deny ne seront pas
autorisés à utiliser Cron.
Le démon Cron n'a pas besoin d'être redémarré si les fichiers de contrôle d'accès sont modifiés. Les fichiers
de contrôle d'accès sont vérifiés chaque fois qu'un utilisateur tente d'ajouter ou de supprimer une tâche
Cron.
L'utilisateur root peut toujours utiliser Cron, peu importe les noms d'utilisateurs répertoriés dans les fichiers
de contrôle d'accès.
3. Ajouter toto dans /etc/cron.deny
4.
# crontab -e
0 9-17 * * 1-5 (ps aux ; echo "***************" ) >> /var/log/processus.txt
*/5 9-17 * * 1-5 who >> /var/log/qui.txt
5. Le script /usr/local/bin/systemmaintenance sera exécuté à midi
Exercice N°3
1. soit le script traitement.sh qui se trouve dans le home_directory de l’utilisateur user1 et ayant le
contenu ci-dessous:
#! /bin/bash
echo "salut ceci est un test de at">/dev/pts/0
user1 exécute la commande at now +1 minutes -f $HOME/traitement.sh
(a) Que se passe t-il ?
(b) Comment faire pour :
• lister les jobs programmés auparavant
• supprimer les jobs programmés auparavant
• visualiser le contenu d’un script associé à un job programmé auparavent
2. Rappelez le principe du contrôle d'accès à la commande « at » .
3. Quel est l’effet de la commande # echo user1>> /etc/at.deny
4. Que faut-il faire pour exécuter le script traitement se trouvant sous bin de votre répertoire de
connexion :
(a) Le Vendredi à 17h00
(b) La semaine prochaine au même moment
(c)Deux jours plus tard
Correction
1.
(a) le message « salut ceci est un test de at » sera affiché une minute après l’exécution de la
commande.
(b)
- at -l ou atq
- at -d num_job ou atrm num_job ou at -r num_job
- at -c num_job
2.Vous pouvez restreindre l'accès à la commande at à l'aide des fichiers /etc/at.allow et /etc/at.deny.
Ces fichiers de contrôle d'accès utilisent le même format en définissant un nom d'utilisateur sur chaque
ligne. N'oubliez pas que les espaces ne sont pas autorisés dans ces fichiers.
Si le fichier at.allow existe, seuls les utilisateurs répertoriés dans celui-ci seront autorisés à utiliser at ,
et le fichier at.deny sera ignoré.
Si le fichier at.allow n'existe pas, les utilisateurs répertoriés dans le fichier at.deny ne seront pas
autorisés à utiliser at.
2 AU : 2019-2020
Le démon at (atd) n'a pas besoin d'être redémarré si les fichiers de contrôle d'accès sont modifiés. Les
fichiers de contrôle d'accès sont lus chaque fois qu'un utilisateur tente d'exécuter la commande at.
3. Interdire l’accès à l’usage de la commande at à l’utilisateur user1
4.
at now + nombre période. La période peut valoir minutes, hours (heures), days (jours) ou weeks
(semaines). Le nombre indique simplement le nombre de ces unités qui doivent s'écouler avant
exécution de la commande.
(a) at 17:00 Fri -f $HOME/bin/traitement
(b) at now +1 weeks -f $HOME/bin/traitement
(c) at now +2 days -f $HOME/bin/traitement
3 AU : 2019-2020