創建定時任務的目的就是擺脫人為對程式重覆性地運行。 0. 首先用下麵的指令檢查你是否安裝crontab, 如果沒有的話按下麵的方式進行安裝 minute: 表示分鐘,可以是從0到59之間的任何整數。 hour:表示小時,可以是從0到23之間的任何整數。 day:表示日期,可以是從1到31之間的任何整 ...
創建定時任務的目的就是擺脫人為對程式重覆性地運行。
0. 首先用下麵的指令檢查你是否安裝crontab,
crontab -l
如果本身就有的話,那麼出現如下指令
LC_CTYPE="zh_CN.utf-8"
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
如果沒有的話按下麵的方式進行安裝
apt-get install cron
方式有下麵兩種:
1.crontab
-e指令
直接在終端輸入crontab
-e,進入nano編輯器的編輯界面,它相對vi,vim編輯器來說更友好,簡單。
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
7 15 * * * /usr/bin/python2.7 /home/mabo/Desktop/camera.py
需要註意一行的前面如果希望它執行的話,是不可以有#號的
m h dom mon dow command 分別是(minute; hour; day of month; month; day of week)的縮寫
minute: 表示分鐘,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。
command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件
[Note]:需要註意的是在編寫command指令之前要在終端進行測試是否能夠執行。後面會具體說
星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”。
中杠(-):可以用整數之間的中杠表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”。
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。
2.用編輯器打開 /etc/crontab
二選一即可
sudo nano /etc/crontab
sudo vi /etc/crontab
# m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$ 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$ 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$ # 17 16 * * * mabo /usr/bin/python2.7 /home/mabo/Desktop/camera.py
打開之後如上圖所示,最下麵的一行是我自己寫的定時任務。這裡與第一種方法有個不同的是這個用戶(user)級別的問題。
常見問題:
Q:定時任務不執行?
A: 遇到這種情況首先應該檢查程式是否有問題,你可能會想,在pycharm中運行的都沒有問題,但是現在你用的是IDE,所以你需要將上述的command指令全部複製到終端上,看是否運行成功,不是的話根據提示來解決問題,直到運行沒有問題。
上面的方法已經能夠解決很大一部分問題了,在排除了程式中的錯誤之後,如果你使用的是第二種方法,那麼你可以將root修改為你的普通用戶,重新執行。
Q:定時任務常用相關指令?
A:
crontab -l //查看設置的所有定時任務
service crond start //啟動服務 service crond stop //關閉服務 service crond restart //重啟服務
Q:怎麼查看我的定時任務執行情況?
A:
下麵二選一即可
sudo nano /var/log/cron.log
sudo vi /var/log/cron.log
在日誌里,你可以看到你所設置的定時任務的運行情況。經過多次實踐發現,正常的運行時,在日誌裡面只會出現和你command指令相同的指令,有其它多餘的指令都會導致定時任務失敗。根據這多餘的指令來排除錯誤