https://blog.csdn.net/qq_38228830/article/details/80545004html
參考以上兩篇博客,通過實踐完成本身的定時任務python
crontab 命令用於安裝、刪除或者列出用於驅動cron後臺進程的表格。也就是說,用戶把須要執行的命令序列放到crontab文件中以得到執行,每一個用戶均可以有本身的crontab文件。如下是這個命令的一些參數與說明:
1)crontab -u /*設定某個用戶的cron服務*/
2)crontab -l /*列出某個用戶cron服務的詳細內容*/
3)crontab -r /*刪除某個用戶的cron服務*/
4)crontab -e /*編輯某個用戶的cron服務*/
參數名稱 含義 示例
-l 顯示用戶的Crontab文件的內容 crontabl –l
-i 刪除用戶的Crontab文件前給提示 crontabl -ri
-r 從Crontab目錄中刪除用戶的Crontab文件 crontabl -r
-e 編輯用戶的Crontab文件 crontabl -e
/etc/crontab文件語法以下:
Minute Hour Day Month Dayofweek command
分鐘 小時 天 月 天每星期 命令
每一個字段表明的含義及取值範圍以下:
Minute :分鐘(0-59),表示每一個小時的第幾分鐘執行該任務
Hour : 小時(1-23),表示天天的第幾個小時執行該任務
Day : 日期(1-31),表示每個月的第幾天執行該任務
Month : 月份(1-12),表示每一年的第幾個月執行該任務
DayOfWeek : 星期(0-6,0表明星期天),表示每週的第幾天執行該任務
Command : 指定要執行的命令(若是要執行的命令太多,能夠把這些命令寫到一個腳本里面,而後在這裏直接調用這個腳本就能夠了,調用的時候記得寫出命令的完整路徑)
在這些字段裏,除了「Command」是每次都必須指定的字段之外,其它字段皆爲可選字段,可視須要決定。對於不指定的字段,要用「*」來填補其位置。同時,cron支持相似正則表達式的書寫,支持以下幾個特殊符號定義:linux
「*」 ,表明全部的取值範圍內的數字;
「/」 , 表明」每」(「*/5」,表示每5個單位);
「-」 , 表明從某個數字到某個數字(「1-4」,表示1-4個單位);
「,」 ,分開幾個離散的數字;
舉例以下:正則表達式
5 * * * * ls /*指定每小時的第5分鐘執行一次ls命令*/
30 5 * * * ls /*指定天天的 5:30 執行ls命令*/
30 7 8 * * ls /*指定每個月8號的7:30分執行ls命令*/
50 7 * * * root run-parts /etc/cron.daily /*天天7:50以root 身份執行/etc/cron.daily目錄中的全部可執行文件*/ubuntu
1.執行以下命令添加任務ide
# crontab -e工具
# service cron restartui
linux中將一個腳本文件做爲一個計劃任務小結,以python腳本爲例:spa
1 建立腳本文件test.py,在文件開頭須要加上下面一行.net
#!/usr/bin/python
上面這行的做用是說明使用那個解釋器來執行該文件,若是不知道python解釋器在哪,可使用命令which python來查看
2 給該文件添加可執行的權限
chmod +x test.py
3 添加計劃任務
crontab -e
在文件中追加一行,*/2 * * * * /usr/bin/python /home/pc/work/ENV/project/test.py
保存退出,:wq
4 重啓cron服務
service cron restart
結束
執行報錯
ubuntu@ip-XXX:/var/log$ service cron restart ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to restart 'cron.service'. Authenticating as: Ubuntu (ubuntu) Password: polkit-agent-helper-1: pam_authenticate failed: Authentication failure ==== AUTHENTICATION FAILED === Failed to restart cron.service: Access denied See system logs and 'systemctl status cron.service' for details.
權限不足
sudo service crond restart
cron是一個linux下的定時執行工具,能夠在無需人工干預的狀況下運行做業。因爲Cron 是Linux的內置服務,但它不自動起來,能夠用如下的方法啓動、關閉這個服務:
/sbin/service crond start //啓動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啓服務
/sbin/service crond reload //從新載入配置