Je veux qu'une commande spéciale soit lancée tous les jours, mais je ne veux pas la mettre dans le fichier /etc/cron.d/ car c'est un utilisateur spécifique!
pg@pipoTower: ~$ crontab -l
# m h dom mon dow command
0 0 * * * updatedb -l 0 -o ~/.externalharddisk.db -U /var/autofs/removable/usbData
La commande crontab -e
qui place le fichier dans /var/spool/cron/crontabs/userName
mais je ne sais pas pourquoi ce n'est pas appelé par l'anacron ....
usr@Tower: ~/$ cat /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
J'ai trouvé deux solutions pour cela ...
Option 1: Exécuter le script cron.daily en tant qu'utilisateur non root
Les scripts dans /etc/cron.daily
seront exécutés en tant que root, mais ce dernier n'a pas besoin d'un mot de passe pour s'exécuter en tant que quelqu'un d'autre. Alors mettez un script qui fait quelque chose comme ça:
su myuser -c "/home/myuser/dostuff.sh"
Le principal inconvénient si vous devez être root pour le configurer.
Option 2: Configurer un anacron personnel
Créez vos propres répertoires de script anacron, par exemple ~/.anacron/daily
, ~/.anacron/weekly
et ~/.anacron/monthly
. Mettez vos scripts quotidiens dans le répertoire quotidien.
Créez ensuite votre propre fichier anacrontab, par exemple, ~/.anacron/anacrontab
. Et faites le dire ceci:
1 5 cron.daily run-parts --report /home/myuser/.anacron/daily
7 10 cron.weekly run-parts --report /home/myuser/.anacron/weekly
@monthly 15 cron.monthly run-parts --report /home/myuser/.anacron/monthly
Créez également un répertoire de spool pour votre tâche anacron, par exemple ~/.anacron/spool
.
Enfin, vous devez faire exécuter Anacron. Utilisez un travail cron fréquent pour cela. Exécutez crontab -e
et ajoutez
* * * * * /usr/sbin/anacron -t /home/myuser/.anacron/anacrontab -S /home/myuser/.anacron/spool
Anacron s’exécutera avec votre configuration toutes les minutes et si un travail est dû, Anacron l’exécutera. Vous pouvez le rendre moins fréquent si vous le souhaitez, chaque heure peut être suffisante pour la plupart des utilisateurs.