非服务器的定期校正时间 Anacron
与服务器不同,编程和办公用计算机不是连续24小时运行的。开关机的时间不固定,类似较时这样的任务无法保证运行。
对于这类机器,可以考虑使用 Anacron 进行设置。
在 Archlinux 中, Anacron 已经包含在 cronie 包中。
首先启动 cronie 服务:
systemctl enable cronie
systemctl start cronie
在/etc/cron.daily
新建文件 0time
。
cd /etc/cron.daily
touch 0time
chmod +x 0time
编辑文件0time
,内容如下:
#!/bin/sh
/usr/bin/ntpd -q -g
/usr/bin/hwclock -w
date > /tmp/checktime
-
0time
必须是可执行文件。文件名中不要含有空格等非常规字符。 -
0 代表执行顺序
-
date > /tmp/checktime
,使我们可以检查 tmp 目录下 checktime 文件的内容判断该定时任务何时被执行。
参考
-
Anacron 依赖于 cron 调用。具体内容可查看
/etc/cron.d/0hourly
与/etc/anacrontab
。 -
另提供几个NTP服务器地址(添加到
/etc/ntp.conf
):
# 国家授时中心服务器IP地址
server 210.72.145.44
# 上海交通大学网络中心NTP服务器地址, ntp.sjtu.edu.cn
server 202.120.2.101
# Microsoft
server time.windows.com
server 1.cn.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org