cron任務詳解 持續更新

2021-07-14 02:12:35 字數 2749 閱讀 7604

常遇問題:

1. cron任務配置了, 可沒有效果, 日誌中也沒有報錯.

這種情況, 很可能是因為crond服務沒起來. 執行命令/etc/init.d/crond start, 啟動服務後, cron任務就能順利執行了. 如果沒有crond, yum安裝.

2. cron的格式錯誤, 詳見下面分解.

linux有乙個常用的功能, 就是cron定時任務. 在cron任務制定的時候, 遇到過不少瑣碎的問題, 現在就從cron任務的格式, 到遇到的各式問題, 做乙個總結. 該文章將持續更新, 希望可以幫助到朋友們…

cron任務的格式:

# man cron

name

crontab - maintain crontab files for individual users

synopsis

crontab [-u user] file

crontab [-u user] [-l | -r | -e] [-i] [-s]

-u: 指定要編輯的cron使用者, 如root下指定編輯lius使用者, 就是crontab -u lius; 不指定, 預設是當前使用者.

-l: 列出指定使用者, 或當前使用者的cron任務列表;

-r: 清空指定使用者或當前使用者所有的cron任務列表;

-e: 編輯指定使用者或當前使用者所有的cron任務列表;

-i: 在-r執行的時候, 加-i後, 選y/y才能執行操作, 避免誤操作而引起cron列表被清空.

上面引數裡面的兩個檔案:

files-

/etc/cron.allow

/etc/cron.deny

普通使用者同root一樣,可以執行cron程式, 但受到配置檔案的限制: /etc/cron.allow和/etc/cron.deny

1. root通過上面兩個配置檔案分配cron許可權; 如果使用者的名字出現在cron.allow檔案中,他就有權使用crontab命令;

2. 如果cron.allow檔案不存在,系統會檢查/etc/cron.deny, 確定是否這個使用者被拒絕使用cron;

3. 如果兩個檔案都存在,cron.allow有優先權;

4. 如果兩個檔案都不存在, 那麼只有超級管理員有許可權使用cron命令;

5. 如果cron.deny檔案為空檔案,所有的使用者都可以使用crontab.

cron任務的撰寫:

1. cron任務的撰寫, 可以通過vim修改配置檔案的形式. 配置檔案的位址在/var/spool/cron/目錄下面, 以使用者名稱命名的檔案, 如/var/spool/cron/root就是root使用者的cron任務配置檔案. 可以用vim來編輯, 儲存後自動生效.

2. cron任務可以用crontab -e的命令來編輯當前使用者的cron計畫. 如當前使用者為root, 執行crontab -e命令, 自動開啟/var/spool/cron/root檔案, 在裡面用vim相關的操作, 即可進行快速編輯和儲存.

crontab -e編輯的優點: 儲存任務計畫的時候, 如果cron任務裡面有語法錯誤, 是無法順利進行儲存的, 這樣方便我們及時修改, 避免cron任務的錯誤. 而直接編輯配置檔案的方法, 並不能實現這一功能…

cron任務的格式:

crontab -e開啟root使用者的cron任務配置檔案並編寫, 例項如下:

* 

* ** * command >[file | /dev/null] 2> [file | &1]

註解: 五個星號分別代表: 分, 時, 日, 月, 周; 各個時間的取值範圍:

分鐘 (0-59)

小時 (0-23)

日期 (1-31)

月份 (1-12)

星期 (0-6)//0代表星期天

cron任務例項:

# crontab -e

02 * * * /bin/bash /root/bak.sh > /root/bak.log 2> /root/bak_err.log

註解: 如上的意思, root使用者編輯乙個cron任務, 每天凌晨02:00, 執行/root目錄下的bak.sh指令碼, 標準輸出存入/root/bak.log; 出現任何錯誤資訊匯出到/root/bak_err.log裡面.

: 表示每, 5個都是」「的時候, 表示每月的每週的每天的每小時的每分鐘都執行一次cron任務.

每隔n小時執行一次的任務:

0 */n * * * /bin

/bash /root

/bak.sh > /root

/bak.log 2> /root

/bak_err.log

注意, 這裡的n, 24必須能被其整除, 數值分別是1, 2, 3, 4, 6, 8, 12; 如n=8, 表示每隔8小時的整點, 進行後面的任務, 即00:00, 08:00, 16:00執行cron任務.

每n分鐘執行一次任務:

*/n * * * * /bin

/bash /root

/bak.sh > /root

/bak.log 2> /root

/bak_err.log

注意, n要能被60整除, 因為這裡分鐘的取值是0-59, 而區間是整點60分鐘; 如n=5, 表示每5分鐘, 執行一次cron任務. 其餘都是」「, 意思上面有介紹, 就不詳述了. *n=1的時候, 與」*」的意思一樣, 可以省略.

cron設定定時任務詳解

定時任務cron job被用於安排那些需要被週期性執行的命令。利用它,你可以配置某些命令或者指令碼,讓它們在某個設定的時間內周期性地執行。cron 是 linux 或者類 unix 系統中最為實用的工具之一。cron 服務 守護程序 在系統後台執行,並且會持續地檢查 etc crontab檔案和 e...

Linux定時任務cron詳解

每天下午5點 差不多剛好是下班的時間 以root身份將 media station document book目錄下所有的doc檔案打包成book.tar.gz,並且存放在快閃儲存器 media disk中。最後儲存檔案並退出編輯器,該配置會自動生效。0 17 root tar czf media ...

cat命令詳解 持續更新

cat命令主要用來檢視檔案內容,建立檔案,檔案合併,追加檔案內容等功能。一 檢視檔案內容主要用法 1 cat f1.txt,檢視f1.txt檔案的內容 2 cat n f1.txt,檢視f1.txt檔案的內容,並且由1開始對所有輸出行進行編號 3 cat b f1.txt,檢視f1.txt檔案的內容...