linux cron计划任务
$ crontab -e
例如:每天兩點(diǎn)鐘執(zhí)行
0 2 */1 * * /usr/bin/python /www/tbktsh/sendms.py?&> /dev/null?
01 * * * * root run-parts /etc/cron.hourly ?# 每小時(shí)執(zhí)行/etc/cron.hourly內(nèi)的腳本,"run-parts"這個(gè)參數(shù)是指執(zhí)行文件夾下的所有文件,不加此參數(shù)則需要給出明確的執(zhí)行腳本文件。
$ service crond restart ?or ?/etc/init.d/crond restart?# 重啟計(jì)劃任務(wù)
注意設(shè)置腳本文件的可執(zhí)行權(quán)限哦,不然可能會(huì)不能正常執(zhí)行。
centos7 執(zhí)行命令:
# yum install crontabs
/bin/systemctl restart crond.service #重啟服務(wù)
/bin/systemctl status crond.service #查看crontab服務(wù)狀態(tài)
?
第一列代表分鐘(0-59)
第二列代表小時(shí)(0-23)
第三列代表天(1-31)
第四列代表月(1-12)
第五列代表周(0-6) 0表示周日
“*”代表所有的取值范圍內(nèi)的數(shù)字。如果直接用“*”則相當(dāng)于“*/1”
“/”代表每的意思
“*/5″表示每5個(gè)單位
“-”代表從某個(gè)數(shù)字到某個(gè)數(shù)字
“,”分散的數(shù)字
?
# 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 則相當(dāng)于編輯/var/spool/cron/root文件,這屬于用戶級(jí)別計(jì)劃任務(wù)。
如果設(shè)置系統(tǒng)級(jí)別計(jì)劃任務(wù)則編輯/etc/crontab。
cron會(huì)定時(shí)每分鐘掃描下/var/spool/cron/文件夾內(nèi)的所有文件(每個(gè)用戶會(huì)有一個(gè)以用戶名命名的定時(shí)任務(wù)文件)和/etc/crontab文件。
用戶計(jì)劃任務(wù)與系統(tǒng)計(jì)劃任務(wù)的區(qū)別是給不同的人發(fā)送任務(wù)信息郵件,系統(tǒng)計(jì)劃任務(wù)是給系統(tǒng)管理員發(fā)送,用戶的計(jì)劃任務(wù)是給當(dāng)前用戶發(fā)送任務(wù)信息郵件。
1.直接用crontab命令編輯
cron服務(wù)提供crontab命令來設(shè)定cron服務(wù)的,以下是這個(gè)命令的一些參數(shù)與說明:
crontab -u //設(shè)定某個(gè)用戶的cron服務(wù),一般root用戶在執(zhí)行這個(gè)命令的時(shí)候需要此參數(shù)
crontab -l //列出某個(gè)用戶cron服務(wù)的詳細(xì)內(nèi)容
crontab -r //刪除沒個(gè)用戶的cron服務(wù)
crontab -e //編輯某個(gè)用戶的cron服務(wù)
比如說root查看自己的cron設(shè)置:crontab -u root -l
再例如,root想刪除fred的cron設(shè)置:crontab -u fred -r
?
計(jì)劃日志相關(guān)
/var/log/cron 文件是所有計(jì)劃任務(wù)的執(zhí)行記錄
/var/log/cron.1 ?/var/log/cron.2 ?/var/log/cron.3 ?/var/log/cron.4 這幾個(gè)文件是歸檔文件
當(dāng)crond執(zhí)行任務(wù)失敗時(shí)會(huì)給用戶發(fā)一封郵件,如果crond發(fā)郵件失敗了,則可通過mail日志查看,可以使用tail -f /var/spool/mail/root 即可查看具體的錯(cuò)誤信息。
?
在crontab中的任務(wù)增加自己的日志,這樣出錯(cuò)后,比較容易看到原因,把錯(cuò)誤輸出和標(biāo)準(zhǔn)輸出都輸出到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 ? # 指定錯(cuò)誤日志輸出位置
crontab中的輸出配置
crontab中經(jīng)常配置運(yùn)行腳本輸出為:>/dev/null 2>&1,來避免crontab運(yùn)行中有內(nèi)容輸出。
shell命令的結(jié)果可以通過‘> ’的形式來定義輸出
/dev/null 代表空設(shè)備文件
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout標(biāo)準(zhǔn)輸出,系統(tǒng)默認(rèn)值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr標(biāo)準(zhǔn)錯(cuò)誤
& 表示等同于的意思,2>&1,表示2的輸出重定向等同于1
那么重定向輸出語句的含義:
1>/dev/null 首先表示標(biāo)準(zhǔn)輸出重定向到空設(shè)備文件,也就是不輸出任何信息到終端,不顯示任何信息。
2>&1 表示標(biāo)準(zhǔn)錯(cuò)誤輸出重定向等同于標(biāo)準(zhǔn)輸出,因?yàn)橹皹?biāo)準(zhǔn)輸出已經(jīng)重定向到了空設(shè)備文件,所以標(biāo)準(zhǔn)錯(cuò)誤輸出也重定向到空設(shè)備文件。
?
補(bǔ)充知識(shí):anacron 可以喚醒關(guān)機(jī)期間的工作任務(wù)
轉(zhuǎn)載于:https://www.cnblogs.com/weiok/p/5233704.html
總結(jié)
以上是生活随笔為你收集整理的linux cron计划任务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 表单提交,以及标注。
- 下一篇: Educational Codeforc