Linux定時任務 計畫任務Cron實用問答

2021-09-20 15:21:50 字數 2891 閱讀 7235

1. 定時任務種類

linux下分為系統任務排程和使用者任務排程兩種。

系統任務排程支援兩種方式。乙個是集中式的,配置檔案位於/etc/crontab檔案,但建議不要直接編輯。

乙個位於/etc/cron.d/目錄下面,支援多個檔案。一般安裝某些軟體的時候會在這個目錄下自動配置一些定時任務。

2. 定時任務寫法

# ┌───────────── minute (0 - 59)

# │ ┌───────────── hour (0 - 23)

# │ │ ┌───────────── day of the month (1 - 31)

# │ │ │ ┌───────────── month (1 - 12)

# │ │ │ │ ┌───────────── day of the week (0 - 6) (sunday to saturday;

# │ │ │ │ │ 7 is also sunday on some systems)

# │ │ │ │ │

# │ │ │ │ │

# * * * * * (user) command to execute

# minute hour dayofmonth month dayofweek (user) command

* * * * * user1 /bin/echo "sample cmd1" >> /tmp/etc_crontab_d

minute: 表示分鐘,可以是從0到59之間的任何整數。

hour:表示小時,可以是從0到23之間的任何整數。

dayofmonth:表示日期,可以是從1到31之間的任何整數。

month:表示月份,可以是從1到12之間的任何整數。

dayofweek:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日。

command:要執行的命令,可以是系統命令,也可以是自己編寫的指令碼檔案。

user: 如果是系統定時任務,需要指明執行定時任務的使用者id,如果是使用者定時任務,則不需要本項。

在以上各個欄位中,還可以使用以下特殊字元:

星號(*):代表所有可能的值,例如month欄位如果是星號,則表示在滿足其它欄位的制約條件後每月都執行該命令操作。

逗號(,):可以用逗號隔開的值指定乙個列表範圍,例如,「1,2,5,7,8,9」

中槓(-):可以用整數之間的中槓表示乙個整數範圍,例如「2-6」表示「2,3,4,5,6」

正斜線(/):可以用正斜線指定時間的間隔頻率,例如「0-23/2」表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute欄位,表示每十分鐘執行一次。

3. 檢視系統級定時任務內容

cat /etc/crontab
下面是輸出例子

4. 檢視使用者定時任務

crontab -l
5. 編輯使用者定時任務
crontab -e
6. 刪除使用者定時任務

最好在刪除之前做好備份。備份物件位置參考《定時任務配置檔案位置》。本方法慎用。

crontab -r
7. 定時任務啟動、關閉,重啟,重載入

服務操作說明:

service crond start //啟動服務

service crond stop //關閉服務

service crond restart //重啟服務

service crond reload //重新載入配置

新建立的cron job,不會馬上執行,至少要過2分鐘才執行。如果重啟cron則馬上執行。

8. 定時任務執行狀態

檢視cron服務狀態:

service crond status
#正常情況下輸出結果例子

crond (pid 3290) is running...

#非正常情況下輸出結果例子

● crond.service

loaded: not-found (reason: no such file or directory)

active: inactive (dead)

9. 日誌檔案位置

預設的日誌輸出到:

/var/log/syslog

可以使用下面的命令得到所有cron日誌:

grep cron /var/log/syslog
如果有簡單配置,可以把cron的日誌單獨輸出到下面的檔案:

/var/log/cron

10. 定時任務配置檔案位置

11. 啟用日誌檔案(ubuntu)

ubuntu的情況下,編輯下面的檔案,可以將原本輸出到syslog裡面的cron執行日誌輸出到cron.log裡面。

/etc/rsyslog.d/50-default.conf

nano /etc/rsyslog.d/50-default.conf
...

#cron.* /var/log/cron.log

...

去掉上面的那一行的#,就可以為cron建立自己的日誌檔案。

注意還要重啟一下syslog,才能起作用。

service rsyslog restart

Linux定時任務計畫

linux定時任務計畫 在使用linux系統時,我們有時會需要讓系統在某個時間去執行特定的任務,這時就需要去了解linux提供的定時任務功能 種類linux的定時任務分為兩種 單一型和迴圈型 單一型 at atd啟動 at 是乙個可以處理僅執行一次就結束的命令,執行at時,必須開啟atd服務.使用 ...

Linux定時任務計畫

linux定時任務計畫 在使用linux系統時,我們有時會需要讓系統在某個時間去執行特定的任務,這時就需要去了解linux提供的定時任務功能 種類linux的定時任務分為兩種 單一型和迴圈型 單一型 at atd啟動 at 是乙個可以處理僅執行一次就結束的命令,執行at時,必須開啟atd服務.使用 ...

Linux定時(計畫)任務

1 概念 未來的某時間點執行一次某任務或者週期性的執行某個任務,執行結果會通過郵件的形式傳送給使用者 2 可將其分為兩類 1 定點執行一次某任務 at,batch 2 週期性的執行某任務 crontab 1.1 使用者及系統定時任務 crond是linux下用來週期性的執行某種任務或等待處理某些事件...