Linux 添加定時任務


crond 是linux下用來周期性的執行某種任務或等待處理某些事件的一個守護進程,與windows下的計划任務類似,當安裝完成操作系統后,默認會安裝此服務工具,並且會自動啟動crond進程,crond進程每分鍾會定期檢查是否有要執行的任務,如果有要執行的任務,則自動執行該任務。

Linux下的任務調度分為兩類,系統任務調度和用戶任務調度。

系統任務調度

系統周期性所要執行的工作,比如寫緩存數據到硬盤、日志清理等。在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件。

 

使用cat  /etc/crontab 查看文件內容。 有五顆星星星提示。每顆星對應的解釋以及很清楚了。

前四行是用來配置crond任務運行的環境變量

第一行SHELL變量指定了系統要使用哪個shell,這里是bash

第二行PATH變量指定了系統執行命令的路徑

第三行MAILTO變量指定了crond的任務執行信息將通過電子郵件發送給root用戶,如果MAILTO變量的值為空,則表示不發送任務執行信息給用戶

第四行HOME變量指定了在執行命令或者腳本時使用的主目錄。

下面的星號,星號(*):代表所有可能的值,如month字段為星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。

如果是具體的值,可以使用下面的符號匹配。

逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”

中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”

正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。

用戶任務調度

用戶定期要執行的工作,比如用戶數據備份、定時郵件提醒等。用戶可以使用 crontab 工具來定制自己的計划任務。所有用戶定義的crontab 文件都被保存在 /var/spool/cron目錄中。其文件名與用戶名一致。

crontab命令詳解

1.命令格式:

crontab [-u user] file

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

2.命令功能:

通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的單位可以是分鍾、小時、日、月、周及以上的任意組合。這個命令非常設合周期性的日志分析或數據備份等工作。

參數說明:

-u user:用來設定某個用戶的crontab服務,例如,“-u ixdba”表示設定ixdba用戶的crontab服務,此參數一般有root用戶來運行。

file:file是命令文件的名字,表示將file做為crontab的任務列表文件並載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標准輸入(鍵盤)上鍵入的命令,並將它們載入crontab。

-e:編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的crontab文件。

-l:顯示某個用戶的crontab文件內容,如果不指定用戶,則表示顯示當前用戶的crontab文件內容。

-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。

-i:在刪除用戶的crontab文件時給確認提示。

 

相關文件定義:

權限文件

文件:/etc/cron.deny

說明:該文件中所列用戶不允許使用crontab命令

文件:/etc/cron.allow

說明:該文件中所列用戶允許使用crontab命令

文件:/var/spool/cron/

說明:所有用戶crontab文件存放的目錄,以用戶名命名

crontab日志路徑

/var/log/cron

只會記錄是否執行了某些計划的腳本,但是具體執行是否正確以及腳本執行過程中的一些信息則linux會每次都發郵件到該用戶下

/var/spool/mail/root

 

.crontab箴言

1
2
3
4
5
6
7
8
9
10
11
1.環境變量問題,例如 crontab 不能識別Java的環境變量
     crontab 執行shell時,只能識別為數不多的環境變量,普通的環境變量是無法識別的,所以在編寫shell時,最好使用 export 重新聲明變量,確保腳本執行。
2.命令的執行最好用腳本
3.腳本權限加 /bin/sh ,規范路徑 /server/scripts
4.時間變量用反斜線轉義,最好用腳本
5.定時任務添加注釋
6.> /dev/null  2>&1   ==>&> /dev/null ,別隨意打印日志文件
7.定時任務里面的程序腳本盡量用全路徑
8.避免不必要的程序以及命令輸出
9.定時任務之前添加注釋
10.打包到文件目錄的上一級

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM