Je souhaite exécuter un script de sauvegarde une fois par jour, mais je ne souhaite pas spécifier une heure donnée, juste une fois par jour. J'ai lu que l'attribut @daily cron est exécuté tous les jours à 00h00, mais je ne sais pas si le serveur de réception sera opérationnel à cette heure-ci.
Est-il possible de configurer cron
pour exécuter ce script une seule fois par jour, quelle que soit l'heure? Ou exécutez le script jusqu'à ce qu'il réussisse, puis réessayez le lendemain?
@reboot serait une option, mais l’expéditeur pourrait redémarrer plusieurs fois par jour, auquel cas des sauvegardes inutiles seraient nécessaires.
Vous voudrez peut-être utiliser l'anacron.
De sa page de manuel
NAME anacron - runs commands periodically SYNOPSIS anacron [-s] [-f] [-n] [-d] [-q] [-t anacrontab] [-S spooldir] [job] ... anacron [-S spooldir] -u [-t anacrontab] [job] ... anacron [-V|-h] anacron -T [-t anacrontab] DESCRIPTION Anacron can be used to execute commands periodically, with a frequency specified in days. Unlike cron(8), it does not assume that the machine is running continuously. Hence, it can be used on machines that aren't running 24 hours a day, to control daily, weekly, and monthly jobs that are usu‐ ally controlled by cron.
Le HowTo de la communauté Ubuntu: https://help.ubuntu.com/community/CronHowto
Utilisation d'anacron:
Il suffit de placer le fichier de script exécutable dans /etc/cron.hourly
, /etc/cron.daily
, /etc/cron.weekly
ou /etc/cron.monthly
.
Touchez le fichier de script:
Sudo touch /etc/cron.daily/scriptfile
(cron.daily
s'il s'agit d'un travail quotidien).
Test d'anacron:
Sudo anacron -f -d
-f Force execution of the jobs, ignoring the timestamps. -d Don’t fork to the background. In this mode, Anacron will output informational messages to standard error, as well as to syslog. The output of jobs is mailed as usual.
Messages Anacron dans le journal:
grep anacron /var/log/syslog
Anacron conserve les horodatages dans le /var/spool/anacron/
. Si vous supprimez les fichiers cron.daily
, cron.weekly
ou cron.monthly
, anacron exécutera des scripts quotidiens, hebdomadaires ou mensuels au prochain démarrage.
Utilisez @daily comme vous êtes, mais ajoutez également @reboot. @reboot exécutera le script au démarrage.
@reboot /full_path/to/script
Voir buntu wiki cron pour plus d'informations.