问题描述
crontab中设置每天12:00启动任务,结果发现每天20:00才启动。
问题分析
明显是时区不一致造成的,所以需要从时区设置入手
解决方案
查看并修改 本地时区
查看: more /etc/localtime
备份: cp /etc/localtime /etc/localtime.bak
设置本地时区: cp -pf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改 Contab 时区: vim /etc/crontab
添加变量: CRON_TZ=Asia/Shanghai
TZ=Asia/Shanghai
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
CRON_TZ=Asia/Shanghai
TZ=Asia/Shanghai
For details see man 4 crontabs
Example of job definition:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * user-name command to be executed
重启服务
source /etc/crontab
systemctl restart crond
systemctl restart rsyslog
硬件时间修改
设置硬件时钟为本地时间,终端输入:timedatectl set-local-rtc yes,yes可写为no
发现时区不对,导致协调世界时间与本地时间一致,所以修改时区,终端输入:sudo timedatectl set-timezone ‘Asia/Shanghai’
硬件时间处没写值,终端输入sudo hwclock -r查看硬件时间
将硬件时间同步本地时间,硬件终端输入sudo hwclock -w
查询硬件时间,发现没有改成功,查询资料发现是NTP时间同步跟timedatectl修改时间不能共用,所以关闭NTP时间同步(终端输入:timedatectl set-ntp no)