解決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

相關文章
相關標籤/搜索