記錄一則Linux任務(wù)調(diào)度異常
????有一臺(tái)測(cè)試服務(wù)器的任務(wù)調(diào)度設(shè)置本沒(méi)問(wèn)題,腳本也沒(méi)問(wèn)題,但始終都啟動(dòng)不起來(lái)。
我確定我寫(xiě)的是全路徑格式,所以全路徑不應(yīng)該出現(xiàn)問(wèn)題。腳本也無(wú)異常,表達(dá)式也是生成出來(lái)的也不該有錯(cuò)。
????所以這個(gè)問(wèn)題糾結(jié)了我很久。
首先確定我的運(yùn)行腳本無(wú)異常。手動(dòng)執(zhí)行后可用。
查看一下Linux的版本。
uname -a

3. 查看一下Linux的發(fā)行版
cat /proc/version

4. 查看cron任務(wù)調(diào)度在linux中的配置
cat /etc/crontab

MAILTO=root:這個(gè)字段說(shuō)明了當(dāng)/etc/crontab文件中的例行性命令發(fā)生錯(cuò)誤時(shí),會(huì)將錯(cuò)誤信息或屏幕顯示的信息傳遞給誰(shuí)?由于root無(wú)法在客戶端收信,因此,可以將這個(gè)email改成自己普通用戶帳號(hào)。?
注意:基本上,/etc/crontab支持兩種輸入指令的方式,一種是直接以指令形式輸入,一種則是以目錄形式輸入。
5. 確定我的腳本開(kāi)頭含有腳本環(huán)境變量#!/bin/bash
6. 確定任務(wù)調(diào)度中是全路徑編寫(xiě)的
7. 不斷嘗試cron啟動(dòng),本身應(yīng)該一天執(zhí)行一次的任務(wù),讓我改成了5秒執(zhí)行一次。?然后看到了 cron日志中的錯(cuò)誤.
tail -f /var/log/cron

實(shí)際有3個(gè)錯(cuò)誤,但是此時(shí)我截圖只截圖到了2個(gè)錯(cuò)誤。
分別是
WRONG FILE OWNER (/etc/cron.d/sysstat)
此錯(cuò)誤代表Linux的cron任務(wù)調(diào)度中的sysstat文件并不歸屬于root用戶
(root) COMD(? sh /home/mes/weback/weback.sh)
此錯(cuò)誤代表cron表達(dá)式中的? 問(wèn)號(hào)莫名其妙被歸屬到了命令行之中,本身是cron表達(dá)式的內(nèi)容?
我懷疑是這個(gè)發(fā)行版的問(wèn)題 。切,絕對(duì)不是我表達(dá)式寫(xiě)錯(cuò)了。
所以后續(xù)操作的時(shí)候我都將cron表達(dá)式中的?給刪除掉了。目前還在觀察。
針對(duì)WRONG FILE OWNER (/etc/cron.d/sysstat)錯(cuò)誤的解決辦法如下所示。
查看/etc/cron.d/sysstat文件的歸屬權(quán)
ls?/etc/cron.d/sysstat -lh
將/etc/cron.d/sysstat文件的所屬組進(jìn)行更改。
chown root:root /etc/crontab
重啟crond任務(wù)調(diào)度
systemctl reload crond.service
查看crond任務(wù)調(diào)度狀態(tài)
systemctl status crond.service
=====至此就解決了當(dāng)前的問(wèn)題,即先刪掉了?問(wèn)號(hào),再配置了一下文件所屬權(quán)。
其他有關(guān)crond命令如下所示。
systemctl start crond.service
systemctl stop crond.service
其次記錄一下crontab相關(guān)的命令。
crontab 是 crond任務(wù)調(diào)度的模板命令,很多文章都提到了crontab -e命令是修改任務(wù)調(diào)度內(nèi)容。如下所示。

crontab -r 刪除任務(wù)調(diào)度
任務(wù)調(diào)度執(zhí)行效果成不成功 注意查看/var/log/cron 文件。
另外要注意的是:crontab 會(huì)進(jìn)行語(yǔ)法檢查。如果不通過(guò)的語(yǔ)法不允許進(jìn)行使用。如果沒(méi)有指定crontab表達(dá)式的編輯器,則linux需要用戶指定一下,此時(shí)只需要使用vim即可。
不管是crontab -e 還是 /etc/crontab 修改哪個(gè)文件都可修改任務(wù)調(diào)度,修改之后不需重啟crond服務(wù)器,同樣可以進(jìn)行執(zhí)行(一般linux發(fā)行版都沒(méi)問(wèn)題)。