解决Centos crontab没有按时运行的问题

我装了centos,用一点一直没法搞定,就是定时关机。我只是想作这一件事:javascript

天天凌晨1点自动关机java

0 1 * * * shutdown now -h

然而,不管我如何设置,都是失败.
每当我睡了一觉,次日起床,发现机器还开着……我准备放弃了。
忽然发现,这样写的脚本是能够运行的python

* * * * * echo "hello world"

我只好改为写python脚原本完成centos

* * * * * python /etc/root/shutdown.py

大概是这个样子:code

#!/usr/bin/env python
#--coding:utf-8--
from datetime import datetime
import os
checkTime = datetime(2017,05,18,7,28)
currentTime = datetime.now().time()
currentTime = datetime(2017,05,18,currentTime.hour,currentTime.minute)
timeSpan = currentTime - checkTime
print(currentTime)
print(checkTime)
print(timeSpan)
print(timeSpan.total_seconds())
if timeSpan.total_seconds() > 0 and timeSpan.total_seconds() <120:
    os.system("shutdown now -h")

每分钟都去看看如今是凌晨1点多吗?若是是,就关机。。。
而后,始终以为哪里不对。crontab

修复方法

忽然想起来看看当前的时间ip

date

原来是时区的问题,默认的好像是UTC(如今我不记得了)
时区改为上海,就解决了。utf-8

timedatectl list-timezones | grep Asia
timedatectl set-timezone Asia/Shanghai
date
Fri May 19 22:27:01 CST 2017

原来,若是你的crontab也没有按时执行,你还得检查检查看看你当前的时区在哪里啊?ci

时间同步

为了时间不乱,仍是装上ntpd好了。get

wget http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p10.tar.gz
tar -zxvf ntp-4.2.8p10.tar.gz
cd ntp-4.2.8p10
./configure
make
make install

看看ntpd版本

ntpd --version

ntpd 4.2.8p10@1.3728-o Fri May 19 14:52:55 UTC 2017 (1)

试试crontab同步,每周一次就好了。

* * * * 0 ntpdate 0.asia.pool.ntp.org & hwclock -w

相关文章
相关标签/搜索