解決Centos crontab沒有按時運行的問題


我裝了centos,用一點一直無法搞定,就是定時關機。我只是想做這一件事:

每天凌晨1點自動關機

0 1 * * * shutdown now -h

然而,無論我如何設置,都是失敗.
每當我睡了一覺,第二天起床,發現機器還開着……我准備放棄了。
突然發現,這樣寫的腳本是可以運行的

* * * * * echo "hello world"

我只好改成寫python腳本來完成

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

大概是這個樣子:

#!/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點多嗎?如果是,就關機。。。
然后,始終覺得哪里不對。

修復方法

突然想起來看看當前的時間

date

原來是時區的問題,默認的好像是UTC(現在我不記得了)
時區改成上海,就解決了。

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

原來,如果你的crontab也沒有按時執行,你還得檢查檢查看看你當前的時區在哪里啊?

時間同步

為了時間不亂,還是裝上ntpd好了。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM