ubuntu定時執行任務
cron是一個Linux下的後臺進程,用來定期的執行一些任務。
查看cron是否運行
ps -ef | grep cron
並沒有運行, 所以需要啓動cron
啓動cron
sudo service cron start
編輯crontab文件,保存需要定時執行的命令
sudo crontab -e
我的crontab文件如下所示,可以看到我有兩個定義執行的命令,
-
第一個從cron表達式中可以看到每晚3點中會執行下start.sh的腳本。
這個其實是我的內網穿透服務, 因爲他總是莫名其妙的斷開,所以我搞個定時任務重啓下
-
第二個是我使用python獲取服務器的公網ip的腳本
因爲我的ubuntu服務器是樹莓派放在家裏。 剛好我家裏的電信寬帶有公網ip,但是ip是變化的。所以我寫個python腳本來定時獲取自己的公網ip並給我自己發送郵件,在配置下路由器的端口映射,這樣我就可以在公司遠程直接ssh連接我的樹莓派了。其實上面截圖的操作我都是直接連接我樹莓派操作的。
重啓cron服務
sudo service cron restart
ok了。 接下來就會按照你的設置來定時執行任務了
cron表達式詳解
* * * * * command
分 時 天 月 周 命令
在線表達式驗證網站: https://cron.qqe2.com/
常用表達式例子
(1)0 0 2 1 * ? * 表示在每月的1日的凌晨2點調整任務
(2)0 15 10 ? * MON-FRI 表示週一到週五每天上午10:15執行作業
(3)0 15 10 ? 6L 2002-2006 表示2002-2006年的每個月的最後一個星期五上午10:15執行作
(4)0 0 10,14,16 * * ? 每天上午10點,下午2點,4點
(5)0 0/30 9-17 * * ? 朝九晚五工作時間內每半小時
(6)0 0 12 ? * WED 表示每個星期三中午12點
(7)0 0 12 * * ? 每天中午12點觸發
(8)0 15 10 ? * * 每天上午10:15觸發
(9)0 15 10 * * ? 每天上午10:15觸發
(10)0 15 10 * * ? * 每天上午10:15觸發
(11)0 15 10 * * ? 2005 2005年的每天上午10:15觸發
(12)0 * 14 * * ? 在每天下午2點到下午2:59期間的每1分鐘觸發
(13)0 0/5 14 * * ? 在每天下午2點到下午2:55期間的每5分鐘觸發
(14)0 0/5 14,18 * * ? 在每天下午2點到2:55期間和下午6點到6:55期間的每5分鐘觸發
(15)0 0-5 14 * * ? 在每天下午2點到下午2:05期間的每1分鐘觸發
(16)0 10,44 14 ? 3 WED 每年三月的星期三的下午2:10和2:44觸發
(17)0 15 10 ? * MON-FRI 週一至週五的上午10:15觸發
(18)0 15 10 15 * ? 每月15日上午10:15觸發
(19)0 15 10 L * ? 每月最後一日的上午10:15觸發
(20)0 15 10 ? * 6L 每月的最後一個星期五上午10:15觸發
(21)0 15 10 ? * 6L 2002-2005 2002年至2005年的每月的最後一個星期五上午10:15觸發
(22)0 15 10 ? * 6#3 每月的第三個星期五上午10:15觸發