我想每天运行一次备份脚本,但我不想指定某个时间,每天只运行一次。我读到 @daily cron 属性每天 00:00 运行,但我不知道接收服务器是否会在此时启动。
是否可以配置cron
为每天只运行一次此脚本,而不管时间如何?或者运行脚本直到成功,然后第二天再试一次?
@reboot 是一个选项,但是发送端可能每天重新启动几次,在这种情况下会导致不必要的备份。
答案1
您可能想要使用 anacron。
从其手册页
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.
Ubuntu 社区 HowTo:https://help.ubuntu.com/community/CronHowto
使用 anacron:
只需将可执行脚本文件放在
/etc/cron.hourly
、/etc/cron.daily
或中/etc/cron.weekly
即可/etc/cron.monthly
。触摸脚本文件:
sudo touch /etc/cron.daily/scriptfile
(
cron.daily
如果这是一份日常工作)。
测试 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.
日志中的 Anacron 消息:
grep anacron /var/log/syslog
Anacron 在 中保存时间戳/var/spool/anacron/
。如果您从其中删除cron.daily
、cron.weekly
或cron.monthly
文件,anacron 将在下次启动时执行每日、每周或每月脚本。