VPS定時任務沒有按時執行的問題

2021-08-03 21:20:18 字數 1426 閱讀 1877

1.問題現象

最近使用vps的時候有記憶體洩漏問題,嚴重的時候vps會當機,這可能是我使用的一款開源軟體(kcptun)有bug所導致的,暫時找不到更好的軟體,我就想通過定時重啟vps的方法去釋放記憶體。定時重啟vps的命令用的是crontab,可以設定乙個重啟伺服器的任務:

(1)安裝crontab

yum install vixie-cron crontabs

chkconfig crond on

service crond start

(2)編輯定時任務設定

[root@localhost ~]# crontab -e

0 12 * * * /sbin/reboot

(3)重啟crontab

/etc/rc.d/init.d/crond stop

/etc/rc.d/init.d/crond start

(中午12點鐘重啟vps),可是到了12點鐘伺服器並沒有重啟。開始懷疑是crontab沒有正常啟動,反覆檢查並沒有發現問題。

2.問題分析

crontab任務執行依賴於時間,時間設定不對也可能導致任務無法正常執行。用「date」命令檢視當前系統時間

[root@localhost ~]# date

tue jul 18 00:00:30 clt 2017

發現vps上的時間和當前時間不對應。猜測時區可能不對,檢視當前時區:

[root@localhost ~]# date -r; date +%z  

tue, 18 jul 2017 01:30:59 -0400

-0400

果然是用了別的時區,正常情況我們使用的是+

0800(東八區),而vps用別的時區估計是因為伺服器所在的位置是別的位置。

3.修改vps的時區

[root@localhost ~]# cp /usr/share/zoneinfo/asia/shanghai /etc/localtime  

cp: overwrite `/etc/localtime'? y

再次檢視當前的時區是否正確:

[root@localhost ~]# date -r; date +%z  

tue, 18 jul 2017 13:34:58 +0800

+0800

檢視當前時間也和電腦的時間一致

[root@localhost ~]# date

tue jul 18 13:35:41 cst 2017

再次設定crontab的定時任務,vps可以按照設定的時間重啟了,至此問題完全解決。

oracle job 定時任務,定時執行

declare jobno number begin sys.dbms job.submit jobno,dayreport sysdate,trunc sysdate,mi 1 24 60 commit end 注 dayreport 為儲存過程名字 select from sys.user jo...

Mysql定時任務 定時執行操作

mysql屬於中小型資料庫系統,它的事件排程器event scheduler是在mysql 5.1才開始引入事件排程器是在 mysql 5.1 中新增的另乙個特色功能,可以作為定時任務排程器,取代部分原先只能用作業系統任務排程器才能完成的定時功能。事件排程器是定時觸發執行的,在這個角度上也可以稱作是...

Mysql定時任務 定時執行操作

mysql定時任務 定時執行操作 2010 02 12 來自 web技術之家 字型大小 大 中 小 摘要 本文介紹mysql定時任務 定時執行操作 mysql屬於中小型資料庫系統,它的事件排程器event scheduler是在mysql 5.1才開始引入事件排程器是在 mysql 5.1 中新增的...