#1 Le 24/08/2016, à 01:39
- josran
[Résolu] Problème dans l'utilisation de anacron
Bonjour,
Je veux faire exécuter par anacron le script suivant enregistré sous /usr/local/bin/mkdir_variable.sh :
#!/bin/bash
PATH=/bin:/usr/bin:/usr/local/bin
NEWREP=$(date +"%Y-%m-%d_%T")
DEVICE=/mnt/Backup_Linux/SauveIci/
touch /home/moi/mon-script.stamp
NEWMOUNT=${DEVICE}/$NEWREP
Pour cela, j’ai créé hier le fichier /etc/anacrontab suivant :
# /etc/anacrontab: configuration file for anacron
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
1 5 tt-cron-daily ./mkdir_variable.sh
J’ai également vérifié le dernier timestamp de anacron :
root @ monpc /var/spool/anacron
└─ # ▶ cat cron.daily
20160823
Ainsi que le contenu de crontab :
└─ # ▶ crontab -l
# Edit this file to introduce tasks to be run by cron.
# m h dom mon dow command
* * * * * root anacron
Ce matin, 24/08/2016, je démarre mon PC et, après un peu plus d’une heure d’attente, je constate qu’aucun fichier mon-script.stamp ni aucun répertoire sous SauveIci n’ont été créés.
On ne trouve pas grand chose sur les forums (franco ou anglophones) qui décrive une mise en oeuvre aboutie de anacron. Si quelqu'un utilise anacron au quotidien, je le remercie par avance de me faire partager un peu de ses lumières.
Dernière modification par josran (Le 25/08/2016, à 14:57)
Hors ligne
#2 Le 24/08/2016, à 05:08
- Watael
Re : [Résolu] Problème dans l'utilisation de anacron
salut,
donne tes sources, s'il te plaît. quel(s) tuto(s) as-tu suivi ?
une crontab ne prend pas de nom d'utilisateur.
c'est marqué : m h dom dow command
il n'y a pas marqué usr !
et je ne vois pas l'intérêt d'appeler anacron toutes les minutes.
apparemment, ton fichier de conf est erroné.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#3 Le 24/08/2016, à 08:10
- josran
Re : [Résolu] Problème dans l'utilisation de anacron
Salut Watael,
J'ai lu ce tuto Planificateur de tâches.
Selon ce qu'on y lit, mon fichier de configuration anacrontab n'appelle pas anacron toutes les minutes parce que le chiffre 1 qu'il contient n'est pas un chiffre des minutes (à la différence d'avec une crontab) mais il exprime la périodicité en jours. Par ailleurs, tu sais sans doute qu'anacron, qui n'est pas un "démon", ne peut pas s'exécuter toutes les minutes.
A propos de crontab, on lit également dans ce tuto que "Ces crontabs ont une zone supplémentaire (en position 6) qui permet de spécifier le user qui doit lancer le script"; et l'exemple donné est le suivant :
17 * * * * root cd / && run-parts --report /etc/cron.hourly
En fait, j'étais obligé de mentionner l'utilisateur root parce que anacron ne peut être lancé que par le super utilisateur.
Merci de m'avoir répondu.
Dernière modification par josran (Le 24/08/2016, à 08:13)
Hors ligne
#4 Le 24/08/2016, à 11:19
- Watael
Re : [Résolu] Problème dans l'utilisation de anacron
relis l'article, car tu confonds les crontab utilisateurs, remplie avec crontab -e, et les crontab systèmes que l'on modifie directement avec un éditeur.
et quand je dis que tu appelles anacron toutes les minutes, je parle de la crontab que montres, et qui est une "crontab utilisateur" dans laquelle il n'y a pas de champs utilisateur.
tu nous montres 4 fichiers :
ton script
le fichier conf. d'anacron
le fichier màj d'anacron
et une crontab, dont je ne vois pas l'intérêt
anacron est exécuté au démarrage de la machine, et s'il y a lieu exécute les scripts inscrits dans le fichier de conf.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#5 Le 24/08/2016, à 11:35
- grandtoubab
Re : [Résolu] Problème dans l'utilisation de anacron
Salut
Pour qu'un script soir executé quotidiennement il faut qu'il soit dans /etc/cron.daily
# ls -alrt /etc/cron.daily
total 68
-rwxr-xr-x 1 root root 435 juin 13 2013 mlocate
-rwxr-xr-x 1 root root 355 oct. 17 2014 bsdmainutils
-rwxr-xr-x 1 root root 89 nov. 8 2014 logrotate
-rwxr-xr-x 1 root root 311 déc. 28 2014 0anacron
-rwxr-xr-x 1 root root 1293 déc. 31 2014 man-db
-rwxr-xr-x 1 root root 77 janv. 21 2015 apt-show-versions
-rw-r--r-- 1 root root 102 juin 11 2015 .placeholder
-rwxr-xr-x 1 root root 249 nov. 18 2015 passwd
-rwxr-xr-x 1 root root 1597 nov. 26 2015 dpkg
-rwxr-xr-x 1 root root 4125 déc. 15 2015 exim4-base
-rwxr-xr-x 1 root root 314 déc. 19 2015 aptitude
-rwxr-xr-x 1 root root 1526 juil. 14 10:00 apt-compat
lrwxrwxrwx 1 root root 37 août 3 01:18 google-chrome -> /opt/google/chrome/cron/google-chrome
pour etre executé chaque heure /etc/cron.hourly
# ls -alrt /etc/cron.hourly
total 20
-rw-r--r-- 1 root root 102 juin 11 2015 .placeholder
Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....
Hors ligne
#6 Le 24/08/2016, à 11:38
- Watael
Re : [Résolu] Problème dans l'utilisation de anacron
soit, mais ce n'est pas accessible à un simple utilisateur, et ce n'est parce qu'un utilisateur à les droits administrateur qu'il doit y mettre ses tâches perso.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#7 Le 24/08/2016, à 13:40
- grandtoubab
Re : [Résolu] Problème dans l'utilisation de anacron
soit, mais ce n'est pas accessible à un simple utilisateur, et ce n'est parce qu'un utilisateur à les droits administrateur qu'il doit y mettre ses tâches perso.
Ah le gag, le mec c'est son PC et il pourrait pas faire ce qu'il veut avec. On rêve
Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....
Hors ligne
#8 Le 24/08/2016, à 13:53
- Watael
Re : [Résolu] Problème dans l'utilisation de anacron
on essaie de donner les bonnes pratiques (best practices), après si le gars veut faire un rm -rf en root sur /
bien sûr, c'est son problème.
on lui aura quand même expliquer pourquoi ne pas le faire.
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#9 Le 25/08/2016, à 01:34
- josran
Re : [Résolu] Problème dans l'utilisation de anacron
Bonjour,
A la lecture de vos commentaires ainsi que de ce tuto Les jobs anacron, j'ai compris l'intérêt de suivre la piste montrée par grandtoubab : celle du répertoire /etc/cron.daily; d'autant plus, qu'avec Ubuntu 16.04, anacron est déjà lancé par cron.
Après avoir supprimé ma crontab utilisateur, j'ai donc modifié le fichier /etc/cron.daily/0anacron :
#!/bin/sh
#
# anacron's cron script
#
# This script updates anacron time stamps. It is called through run-parts
# either by anacron itself or by cron.
#
# The script is called "0anacron" to assure that it will be executed
# _before_ all other scripts.
# test -x /usr/sbin/anacron || exit 0
# anacron -u cron.daily
anacron
ainsi que le fichier /etc/anacrontab :
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
# These replace cron's entries
#1 5 cron.daily run-parts --report /etc/cron.daily
#7 10 cron.weekly run-parts --report /etc/cron.weekly
#@monthly 15 cron.monthly run-parts --report /etc/cron.monthly
1 1 tt-cron-daily ./mkdir_variable.sh
Résultat : aucune des actions de mon script (enregistré sous /usr/local/bin) n'est exécutée
#!/bin/bash
PATH=/bin:/usr/bin:/usr/local/bin
NEWREP=$(date +"%Y-%m-%d_%T")
DEVICE=/mnt/Backup_Linux/SauveIci/
touch /home/tt/mon-script.stamp
NEWMOUNT=${DEVICE}/$NEWREP
echo $NEWMOUNT
mkdir $NEWMOUNT
et, en plus, le fichier "timbre à date" d'anacron n'a pas bougé :
moi @ monpc /var/spool/anacron
└─ $ ▶ sudo cat cron.daily
20160823
dur, dur, anacron...
Hors ligne
#10 Le 25/08/2016, à 04:05
- Watael
Re : [Résolu] Problème dans l'utilisation de anacron
./mkdir_variable.sh
ici, anacron tente d'exécuter ton script dans un chemin relatif; mais relatif à quoi ?
autant les crontab utilisateurs se placent dans $HOME, autant pour anacron, je ne sais pas.
il faut donc, soit indiquer le chemin absolu du script, soit, puisqu'il est dans le $PATH, indiquer son nom seulement (comme tu appellerais crontab : sans aucun chemin).
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 25/08/2016, à 09:04
- grandtoubab
Re : [Résolu] Problème dans l'utilisation de anacron
Salut
le fichier 0anacron est lancé en premier pour "rattraper" le temps au demarrage du PC et permettre le lancement des scripts dans /etc/cron.daily meme si l'heure du demarrage du pc est postérieure a celle "normale' de lancement des scripts
ça assure que les scripts sont lancés sans avoir a attendre une journée entiere sans eteindre le pc, le a de anacron veut dire asynchrone
https://debian-handbook.info/browse/fr- … acron.html
casser le mecanisme anacron ne me semble pas une bonne idée pour le lancement des taches systeme prévues
Dernière modification par grandtoubab (Le 25/08/2016, à 09:12)
Linux tout seul sur HP Pavilion DV7 et Acer Aspire T650, Canon MG3650 en wifi
Debian 11 Bullseye Gnome/Xorg, Gnome/Wayland avec SDDM
https://bidouilledebian.wordpress.com/
ON M'A VU DANS LE VERCORS, SAUTER A L'ELASTIQUE..... J'AI DANS LES BOTTES DES MONTAGNES DE QUESTIONS....
Hors ligne
#12 Le 25/08/2016, à 14:56
- josran
Re : [Résolu] Problème dans l'utilisation de anacron
Bonjour Wataël et grandtoubab,
ça y est, ça marche : il a suffi que je remplace
./mkdir_variable.sh
par
/usr/local/bin/mkdir_variable.sh
Merci donc à Wataël pour cet ultime conseil qui fut décisif. Merci aussi à grandtoubab pour son plus récent conseil.
Pour être franc, je suis assez enclin à suivre le précepte du Sage qui a écrit : "Le mec c'est son PC et il pourrait pas faire ce qu'il veut avec. On rêve".
Hors ligne