linux cron計畫任務

2022-08-24 01:06:11 字數 2701 閱讀 6766

$ 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

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 可以喚醒關機期間的工作任務

Linux計畫任務

1.at命令 指定乙個時間執行乙個任務。2.cron命令 根據乙個時間表自動執行任務。3.anacron命令 在乙個指定時間間隔錯過後自動執行任務。at命令 安排乙個任務在未來執行,需要乙個系統後台atd程序。4.如果這個程序沒有開啟,那麼執行 etc init.d atd restart chkc...

Oracle計畫任務

oracle計畫任務 每天零晨1 30執行乙個儲存過程 對涉及到 oracle 資料庫,需要定時執行的工作,可以考慮三個方法 1 用 oracle 的job 來完成2 寫個批處理檔案,用 windows 的計畫任務實現3 oracle 中建表,寫過程,外部寫監控程式呼叫 執行緒不斷檢查有沒有要執行的...

Linux 計畫任務

at命令可以在某一指定時間排程一次性作業命令格式 at q x l f file d v time引數含義 q使用指定的佇列來儲存at資料,預設儲存在a佇列,隊列表號為a z,a z總52個 l列出所有的at計畫任務,等同於atq命令 d刪除at計畫任務,等同於atrm v列出所有已經完成單尚未刪除...