linux cron计划任务
$ crontab -e
例如:每天兩點鐘執行
0 2 */1 * * /usr/bin/python /www/tbktsh/sendms.py?&> /dev/null?
01 * * * * root run-parts /etc/cron.hourly ?# 每小時執行/etc/cron.hourly內的腳本,"run-parts"這個參數是指執行文件夾下的所有文件,不加此參數則需要給出明確的執行腳本文件。
$ service crond restart ?or ?/etc/init.d/crond restart?# 重啟計劃任務
注意設置腳本文件的可執行權限哦,不然可能會不能正常執行。
centos7 執行命令:
# yum install crontabs
/bin/systemctl restart crond.service #重啟服務
/bin/systemctl status crond.service #查看crontab服務狀態
?
第一列代表分鐘(0-59)
第二列代表小時(0-23)
第三列代表天(1-31)
第四列代表月(1-12)
第五列代表周(0-6) 0表示周日
“*”代表所有的取值范圍內的數字。如果直接用“*”則相當于“*/1”
“/”代表每的意思
“*/5″表示每5個單位
“-”代表從某個數字到某個數字
“,”分散的數字
?
# Example of job definition:
# .—————- minute (0 – 59)
# | ?.————- hour (0 – 23)
# | ?| ?.———- day of month (1 – 31)
# | ?| ?| ?.——- month (1 – 12) OR jan,feb,mar,apr …
# | ?| ?| ?| ?.—- day of week (0 – 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | ?| ?| ?| ?|
# * ?* ?* ?* ?* ?command to be executed
?
如果已root身份直接使用crontab -e 則相當于編輯/var/spool/cron/root文件,這屬于用戶級別計劃任務。
如果設置系統級別計劃任務則編輯/etc/crontab。
cron會定時每分鐘掃描下/var/spool/cron/文件夾內的所有文件(每個用戶會有一個以用戶名命名的定時任務文件)和/etc/crontab文件。
用戶計劃任務與系統計劃任務的區別是給不同的人發送任務信息郵件,系統計劃任務是給系統管理員發送,用戶的計劃任務是給當前用戶發送任務信息郵件。
1.直接用crontab命令編輯
cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些參數與說明:
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除沒個用戶的cron服務
crontab -e //編輯某個用戶的cron服務
比如說root查看自己的cron設置:crontab -u root -l
再例如,root想刪除fred的cron設置:crontab -u fred -r
?
計劃日志相關
/var/log/cron 文件是所有計劃任務的執行記錄
/var/log/cron.1 ?/var/log/cron.2 ?/var/log/cron.3 ?/var/log/cron.4 這幾個文件是歸檔文件
當crond執行任務失敗時會給用戶發一封郵件,如果crond發郵件失敗了,則可通過mail日志查看,可以使用tail -f /var/spool/mail/root 即可查看具體的錯誤信息。
?
在crontab中的任務增加自己的日志,這樣出錯后,比較容易看到原因,把錯誤輸出和標準輸出都輸出到mylog.log中。
0 6 * * * /www/shservice/task.sh?>> /tmp/mylog.log 2>&1
0 23 */1 * * /usr/bin/python /data/www/pad_service/SX2Personalise/write.py &> /dev/null ? # 不輸出日志
0 23 */1 * * /usr/bin/python /data/www/pad_service/ClearTiYanRecord/updates.py >/var/log/crontab-tiyan_updates.log 2>&1 ? # 指定錯誤日志輸出位置
crontab中的輸出配置
crontab中經常配置運行腳本輸出為:>/dev/null 2>&1,來避免crontab運行中有內容輸出。
shell命令的結果可以通過‘> ’的形式來定義輸出
/dev/null 代表空設備文件
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout標準輸出,系統默認值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr標準錯誤
& 表示等同于的意思,2>&1,表示2的輸出重定向等同于1
那么重定向輸出語句的含義:
1>/dev/null 首先表示標準輸出重定向到空設備文件,也就是不輸出任何信息到終端,不顯示任何信息。
2>&1 表示標準錯誤輸出重定向等同于標準輸出,因為之前標準輸出已經重定向到了空設備文件,所以標準錯誤輸出也重定向到空設備文件。
?
補充知識:anacron 可以喚醒關機期間的工作任務
轉載于:https://www.cnblogs.com/weiok/p/5233704.html
總結
以上是生活随笔為你收集整理的linux cron计划任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 表单提交,以及标注。
- 下一篇: linux 其他常用命令