本篇主要介紹linux定時任務命令crontab的用法,crontab是定時任務的命令,而crond則是定時任務的啟動服務。crontab的定時任務分為系統任務和使用者任務,其實二者沒有太大的區別。
安裝在centos中crond預設是安裝好的,如果沒有安裝的話執行以下操作
安裝crond啟動yum -y install vixie-cron
yum -y install crontabs
加入開啟啟動服務
chkconfig crond on
在centos中crond服務預設是自動啟動的,如果沒有啟動可以手動啟動,具體方法如下。
檢視定時任務是否啟動系統任務排程service crond status
將定時任務加入系統自動啟動服務
chkconfig crond on
啟動定時任務服務
service crond start
注意:系統定時任務在命令前必須指定使用者,一般系統定時任務會使用root使用者來執行,系統定時任務還可以配置定時任務的路徑,但是要使用「run-parts」,例如每個小時執行資料夾下面的定時任務,使用者定時任務不能指定資料夾。
00 * * * * root run-parts /etc/cron.hourly使用者任務排程
使用者的定時任務可以通過執行crontab命令來建立,乙個使用者只會生成乙個定時任務檔案會以使用者名稱命名,使用者定義的定時任務都儲存在「/var/spool/cron」目錄下,使用者任務排程和系統任務排程的時間段是一樣的,唯一的區別就是使用者任務排程不需要指定使用者名稱,而且也不能使用run-parts引數指定目錄。
crontab命令選項
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
crontab任務格式
crontab分別有五個時間段,以空格隔開分別如下:
minute hour day month week command 順序:分 時 日 月 周其中:
在以上各個欄位中,還可以使用以下特殊字元:
其它限制:
/etc/cron.deny 該檔案中所列使用者不允許使用crontab命令/etc/cron.allow 該檔案中所列使用者允許使用crontab命令注意:預設的使用者的shell,path,mailto,home是沒有定義的,可以單獨定義使用者的這幾個變數否則可能會出現使用者找不到一些使用者軟體的命令,具體的定義方法可以參考系統任務的定義,主要還是shell、path。預設的使用者的這幾個變數資訊如下:/var/spool/cron/ 所有使用者crontab檔案存放的目錄,以使用者名稱命名
x-cron-env:
x-cron-env:
x-cron-env:
x-cron-env:
x-cron-env:
例如我定義的使用者定時任務:
shell=/bin/bash上面定義了每天的1點到6點和13點到18點,每隔5分鐘執行命令。path=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/mysql/bin
mailto=chen
home=/data/backup*/5 01-06,13-18 * * * ./userbackup.sh test
注意:時間範圍01-06是指01:00-06:59,命令後面可以使用「;」連線多個命令
定時任務很實用,而且實用方法也很多,有興趣可以慢慢研究。
linux定時任務 at定時任務
at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...
linux定時任務
crontab 設定定時任務 crontab 可以根據分鐘 小時 日期 月份 星期的組合來設定定時任務的自動執行 要使用該服務必須啟動 crond 服務,檢視 crond 服務有沒有啟動,執行命令 servicecrond status 一些任務事例,幫助理解 3020 root back.sh 每...
linux 定時任務
如果想要半夜在linux上備份oracle使用定時命令是最好不過的啦,下面整理了一下linux上的定時任務,可以參考一下 包括一次性的定時at,和長期的定時cron。cron設定 cron長期定時 cron是linux的內建服務,不會自動啟動 service crond start stop sta...