Linux定時呼叫之crond

2021-07-25 17:50:44 字數 2375 閱讀 1443

一、crond介紹

crond是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。

crond 是linux的內建服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:

/bin/systemctl status crond.service //檢視服務當前狀態

/bin/systemctl start crond.service//啟動服務

/bin/systemctl stop crond.service //關閉服務

/bin/systemctl restart crond.service //重啟服務

/bin/systemctl reload crond.service //重新載入配置

也可以將這個服務在系統啟動的時候自動啟動:

在/etc/rc.d/rc.local這個指令碼的末尾加上:/bin/systemctl start crond.service

1.直接用crontab命令編輯

cron服務提供crontab命令來設定cron服務,以下是這個命令的一些引數與說明:

$> crontab -u root -l

$> crontab -u username -e

$> crontab -u username -r

-u //指定使用者,一般root使用者在執行這個命令的時候需要此引數(如省略,則預設為當前登入使用者)

-l //列出cron服務

-r //刪除cron服務

-e //編輯cron服務

每次編輯完某個使用者的cron設定後,cron自動在/var/spool/cron下生成乙個與此使用者同名的檔案,此使用者的cron資訊都記錄在這個檔案中,這個檔案不可以直接編輯,只可用crontab -e 來編輯。cron啟動後每過乙份鐘讀一次這個檔案,檢查是否要執行裡面的命令。因此此檔案修改後不需要重新啟動cron服務。

二、設定任務

執行命令:crontab  -e  (或者vi/etc/crontab),再輸入定時排程任務即可。語法如下:

# run-parts  

01 * * * * root run-parts /etc/cron.hourly  

02 4 * * * root run-parts /etc/cron.daily  

22 4 * * 0 root run-parts /etc/cron.weekly  

42 4 1 * * root run-parts /etc/cron.monthly  

以上cron命令格式為:* * * * * [root run-parts] command

前面五個*號代表時間,用數字,數字的取值範圍和含義如下:

第乙個*:分鐘 (0-59)[整數]

第二個*:小時(0-23)[整數]

第三個*:日期(1-31)[整數(必須是指定月份的有效日期)]

第四個*:月份(1-12)[整數(或如jan或feb簡寫的月份)]

第五個*:星期(0-7)[0或7用來描述週日(或用sun或mon簡寫來表示)]

command:需要執行的命令(可用as ls /proc >> /tmp/proc或 執行自定義指令碼的命令)

root:以root使用者身份來執行

run-parts:表示後面跟著的是乙個資料夾,要執行的是該資料夾下的所有指令碼

注意"run-parts"這個引數,如果去掉這個引數,後面就可以寫要執行的某個指令碼名,而不是資料夾名。

除了數字還有幾個個特殊的符號就是"*"、"/"和"-"、",":

*代表所有的取值範圍內的數字;

"/"代表步進設定;"*/5"表示每5個單位;如0-59/2定義每兩分鐘執行一次;如0-12/2定義上午的偶數點執行;

"-"代表從某個數字到某個數字;

","分開幾個離散的數字。

三、舉例說明

舉例說明,三個任務排程:

[root@localhost documents]# crontab –e

或者[root@localhost documents]# vim/etc/crontab #寫入該處也可.

* * * * * echo "hello, world!">>  /home/ym/documents/crondtest.txt

* * * * * /home/yuanmin/documents/myfun1.sh>>  /home/ym/documents/cron.log

*/2 * * * * /home/yuanmin/documents/myfun1.sh>>  /home/ym/documents/cron_1.log

以上分別為:每1分鐘呼叫乙個shell命令結果輸出至指定檔案;每1分鐘呼叫乙個shell指令碼結果輸出至指定檔案;每2分鐘呼叫乙個shell指令碼結果輸出至指定檔案;

注:排程最小時間單位為分鐘,以上都在整分鐘時進行。

定時呼叫之setTimeout

settimeout 語法規則 window.settimeout 呼叫函式,延時時間 1 這個window在呼叫的時候可以省略 2 這個延時時間單位是毫秒,但是可以省略,如果省略預設就是0 3 這個呼叫函式可以直接寫函式還可以直接寫函式名 還有乙個寫法 函式名 4 頁面中可能會有多個定時器,我們經...

Linux 定時crond使用

因為之前工作中使用的時候沒有做記錄,這裡簡單記下使用。參考1 linux定時執行shell指令碼檔案 參考2 使用shell指令碼或命令列 新增crontab 定時任務 命令介紹 crontab l 定時任務列表 crontab e 編輯定時任務 sbin service crond start 啟...

Linux定時任務(crond)

1 crond定義 crond是linux系統中用來定期執行命令或指定程式的一種服務或軟體。1 linux系統自身定期執行的任務 輪詢系統日誌 備份資料等 2 使用者執行的任務 定時更新同步時間 資料備份等 2 crond命令語法 定時任務的命令是crontab,其守護程序是crond 服務執行的程...