用 cron 定時執行任務

2021-04-17 13:17:56 字數 2811 閱讀 3328

用 cron 定時執行任務galeki post in

基礎知識

假如你有一些任務要定期執行,比如清理磁碟、刪除過期檔案、傳送郵件和提醒,這個時候可以用 cron 來幫你。

首先是安裝,大多數發行版都預裝了,gentoo下的cron有許多種實現,可以用 emerge --search cron 來檢視,這裡用 vixie-cron,因為功能比較完整,命令語法也比較通用。

# emerge vixie-cron

之後要啟動 cron 服務:

# /etc/init.d/vixie-cron start

別忘了把 cron 加入到啟動指令碼中:

# rc-update add vixie-cron default

完成安裝。

通過 /etc/crontab 檔案,可以設定系統定期執行的任務,當然,要想編輯這個檔案,得有root許可權。

讓我們開啟 /etc/crontab,看看cron的語法:

# for vixie cron #

# $header: /var/cvsroot/gentoo-x86/sys-process/vixie-cron/files/crontab-3.0

.1-r4,v 1.1

2005/03/04

23:59:48 ciaranm exp $ #

## global variables

shell=/bin/bash

path=/sbin:/bin:/usr/sbin:/usr/bin

mailto=root

home=/

# check scripts in cron.hourly, cron.daily, cron.weekly and cron.monthly

0  *  * * *     root    rm -f /var/spool/cron/lastrun/cron.hourly

13  * * *     root    rm -f /var/spool/cron/lastrun/cron.daily

154  * *

6     root    rm -f /var/spool/cron/lastrun/cron.weekly

3051 * *     root    rm -f /var/spool/cron/lastrun/cron.monthly

*/ 10  *  * * *  root   

test -x /usr/sbin/run-crons && /usr/sbin/run-crons 

以上是乙個預設的/etc/crontab檔案,7~11行設定了執行任務時特定環境變數的值,mailto=root 指出出錯資訊發給root。

真正描述執行的任務在 14~18 行,每行代表了乙個定期執行的任務,從前到後,分為3部分:

第一部分,一堆奇怪的數字和星號,這部分描述任務的執行週期和時間,後面我們將詳細解釋。

第二部分,上面的檔案全部是 "root",描述了執行任務時的使用者。

第三部分,為需要執行的完整命令。

第一部分分為5個小部分,沒部分可以是數字或者星號,分別代表了分鐘、小時、日期、月份、周,讓我們來看乙個例子:

07   *    *   *    root    mpg123 ~/wakeup.***

分 時 日 月 周

星號,即代表不限制,上面的例子就是:每天的7點0分,都將執行mpg123 ~/wakeup.***,放首歌,把自己從睡夢中叫醒~

以下是各部分的取之範圍:

分鐘0~59

小時0~23

日期1~31

月份1~12

周0~6

其中周的範圍0~6,0代表星期天,1~6代表周一~週六。

04  * *

0     root    emerge --sync && emerge -ud world             

#每週日凌晨4點,更新系統02

1 * *     root    rm -f /tmp/*             

#每月1號凌晨2點,清理/tmp下的檔案08

6 #每年5月6日給robin發信祝他生日快樂

假如,我想每隔2分鐘就要執行某個命令,或者我想在每天的6點、12點、18點執行命令,諸如此類的週期,可以通過 「 / 」 和 「 , 」 來設定:

*/ 2   *   *   *   *           root      ...............     

#每兩分鐘就執行........06,

12,18   *   *   *    root      ...............     

#每天6點、12點、18點執行........

上面我們提到的 /etc/crontab 檔案,只能指定系統定期執行的命令,如果使用者想設定自己定期需要執行的命令的話,就要用到crontab命令,編輯自己的crontab檔案。

首先,使用者必須隸屬於cron組才可以用crontab命令,可以用下面的命令把使用者加入到cron組中:

# gpasswd -a galeki cron

crontab命令主要有3個引數:

-l  : 列出使用者的crontab的內容。

-r  : 刪除使用者的crontab的內容。

執行crontab -e,將自動開啟編輯器,你可以編輯自己的crontab檔案,語法和 /etc/crontab 檔案一樣,不同的只是,不必再指出執行的使用者,編輯後儲存即可。

crontab -l用來檢視自己的crontab檔案內能,crontab -r刪除自己的crontab。

Ubuntu定時執行任務 cron

ubuntu系統中可以使用cron來定時的執行一些任務,如資料庫備份。cron簡介 在linux系統中,計畫任務一般都是由cron承擔,cron是linux系統預設自帶的,開機就自動啟動。當cron啟動後,它會讀取它的所有配置檔案 全域性性配置檔案 etc crontab,以及每個使用者的計畫任務配...

linux下用cron定時執行任務的方法

名稱 crontab 使用許可權 所有使用者 使用方式 crontab file u user 用指定的檔案替代目前的crontab。crontab u user 用標準輸入替代目前的crontab.crontab 1 user 列出使用者目前的crontab.crontab e user 編輯使用...

centos7 定時執行任務 cron

centos7 定時執行任務可以傳送curl請求也可以直接執行指令碼 在centos7如果不出意外在你的 var spool cron root 這個檔案裡面去設定 0 0 usr bin curl 這個是用curl的方式定時去請求頁面,表示每小時的整點執行一次,網上都是這麼寫的,但是我的不起作用,...