返回介绍

Hack-69 Anacron 配置

发布于 2025-03-08 17:38:59 字数 2522 浏览 0 评论 0 收藏 0

Anacron 配置

anacroncron 在桌面系统中的软件.(其实桌面系统也有 cron.)

你可能会问,为什么要有一个桌面系统版本啊? 因为,桌面系统不是服务器,不需要也不可能 24 小时运行,所以 anacron 的意义就是在一个非 24 小时运行的机器上执行计划任务。

比如说,当你在笔记本上运行了一个每天晚上 11 点备份文件的脚本,但是你不可能确保每天晚上 11 点都会开机啊,那么备份就不会运行了么? 对于 cron 来说是的,因为过了那个点儿了,他就不会运行了,但是对于 anacron 来说就不是,因为他就是专门应付这种情况的,如果今天晚上 11 点没有运行备份脚本,那么当你再次启动计算机的时候,他就会立即执行这个备份脚本. 同样,如果系统待机也会是这样,当系统再次被唤起的时候就会执行那些本该执行却没有执行的计划任务。

Anacrontab 格式

正如 cron 的记录文件是 /etc/crontab 一样, anacron 也有一个记录文件 /etc/anacrontab .

/etc/anacrontab 的格式为:

period delay job-identifier command

第一个字段是 执行的周期 , 如果写 1,就表示每天执行,如果写 7 就代表每周执行,同理,如果写 30,就代表每月执行,当然,也可以是任意的阿拉伯数字。

第二个字段是 延迟执行的时间 , 这个是用来应付那些没有被正常执行的计划任务的,也就是说,如果一个任务没有被正常执行(关机待机等情况), 当再次开机后,需要延迟多长时间再次执行. 它的单位是分钟。

第三个字段是 任务的标识(zhi4) 符 , 每个文件都必须又一个独一无二的标识符,标识符文件保存在 /var/spool/anacron/ 目录下,每个文件记录着不同任务上次执行的时间,这也就解释的通为什么它可以在开机后执行那些没有被正常执行的任务了。

第四个字段是 要执行的命令 , 比如要执行一个脚本,就可以写" /bin/sh /root/bala/backup.sh ".

举个栗子

➤ cat /etc/anacrontab
7 15 test.daily /bin/sh /root/bala/backup.sh

每七天执行备份脚本,任务的标识符为 test.daily , 如果没有正常运行,则在开机后 15 分钟之后再次运行。

两个变量

START_HOURS_RANGERANDOM_DELAY

干什么用呢? 慢慢说。

上面的这个例子是,每天执行一个脚本,什么时候执行? 开机十五分钟之后执行. 但是,如果你的笔记本一周不关机怎么办? 难道备份脚本就不要执行了吗? 肯定不行啊. 所以这个时候就需要 /etc/anacrontab 里的变量( START_HOURS_RANGE ) 了。

默认的值是 3-22, 也就是凌晨 3 点到晚上 10 点,这个时间段所谓一个开机周期,如果过了这个周期,那 anacron 就会知道新的一天开始了。

上面提到的第二个变量也有点意思,刚才我们说到开机 15 分钟之后执行那个脚本,但是真实情况还要加点东西,加点什么呢? 加的就是这个 RANDOM_DELAY 内的分钟数,默认的 RANDOM_DELAY 值是 45, 也就是说,每个任务开启的时间是不确定的,是在用户指定的时间上在加 0-45 之间的一个数。

Cron Vs Anacron

CronAnacron
最小执行周期是分钟最小执行周期是天
任何用户都可以运行只允许超级用户运行
要求系统 7x24 小时运行,如果某个任务错过了执行时间,那么它将不会被执行不要求系统 7x24 小时运行. 如果某个计划任务没有被正常运行,那么他将在下次开机后再次运行
服务器桌面机或者笔记本

扩展阅读: Cron Vs Anacron

本书简介:

  • Linux 进阶技巧
  • 巧妙的命令组合
  • Bash 某些技巧
  • 一共一百零一个(包括充数的)
  • 最后有个奖励章(额外技巧)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文