国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux 定時任務(wù)調(diào)度(crontab)

這篇具有很好參考價值的文章主要介紹了Linux 定時任務(wù)調(diào)度(crontab)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、Crontab

Crontab命令用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。

可以使用Crontab定時處理離線任務(wù),比如每天凌晨2點更新數(shù)據(jù)等,經(jīng)常用于系統(tǒng)任務(wù)調(diào)度。

1.1 服務(wù)啟動和關(guān)閉

一般Linux系統(tǒng)中都會裝有Crontab,如果沒有安裝可以使用包管理工具安裝:

yum -y install vixie-cronyum -y install crontabs

Crontab服務(wù)的啟動和關(guān)閉命令如下:

service crond start 
# 啟動服務(wù)
service crond stop  
# 關(guān)閉服務(wù)
service crond restart   
# 重啟服務(wù)
service crond reload    
# 重新載入配置
service crond status    
# 查看crontab服務(wù)狀態(tài)

1.2 任務(wù)調(diào)度全局配置

crontab全局任務(wù)調(diào)度配置在如下的目錄:

cron.d/       cron.daily/   cron.deny     cron.hourly/  cron.monthly/ crontab       cron.weekly/
  • cron.daily是每天執(zhí)行一次的job

  • cron.weekly是每個星期執(zhí)行一次的job

  • cron.monthly是每月執(zhí)行一次的job

  • cron.hourly是每個小時執(zhí)行一次的job

  • cron.d是系統(tǒng)自動定期需要做的任務(wù)

  • crontab是設(shè)定定時任務(wù)執(zhí)行文件

  • cron.deny文件就是用于控制不讓哪些用戶使用Crontab的功能

1.3 用戶配置文件

每個用戶都有自己的crontab配置文件,使用crontab -e命令進(jìn)行編輯。保存后系統(tǒng)會自動存放與/var/spool/cron/目錄中,文件以用戶名命名。

linux的crontab服務(wù)每隔一分鐘去讀取一次/var/spool/cron,/etc/crontab,/etc/cron.d下面所有的內(nèi)容,crontab命令一覽:

  • crontab -e: 編輯當(dāng)前用戶的定時任務(wù)列表

  • crontab -l: 查看當(dāng)前用戶的定時任務(wù)列表

  • crontab -r: 刪除當(dāng)前用戶的定時任務(wù)列表

1.4 crontab定時任務(wù)格式

crontab每一條記錄為一個定時任務(wù),定時人遵循相應(yīng)的定義規(guī)則。

crontab服務(wù)開啟,# 運維,linux,服務(wù)器,運維

其中前面的6個星號表示的含義如下:

內(nèi)容含義說明:

項目 含義 范圍
第一個”*“ 一小時當(dāng)中的第幾分鐘 0-59
第二個”*“ 一天當(dāng)中的第幾小時 0-23
第三個”*“ 一個月當(dāng)中的第幾天 1-31
第四個”*“ 一年當(dāng)中的第幾月 1-12
第五個”*“ 一周當(dāng)中的星期幾 0-7(0和7都代表星期日)
第六個command 要執(zhí)行的命令 可以是系統(tǒng)命令,也可以是自己編寫的腳本文件

每一個星號部分可用下面的特殊符號:

特殊字符 代表意義
* 代表任何時刻都接受的意思!舉例來說,范例一內(nèi)那個日、月、周都是 * ,就代表著 **不論何月、何日的禮拜幾的 12:00 都運行后續(xù)命令 ** 的意思!
, 代表分隔時段的意思。舉例來說,如果要下達(dá)的工作是 3:00 與 6:00 時,就會是:0 3,6 * * * command 時間參數(shù)還是有五欄,不過第二欄是 3,6 ,代表 3 與 6 都適用?。ú荒芗涌崭瘢?/td>
- 代表一段時間范圍內(nèi),舉例來說, 8 點到 12 點之間的每小時的 20 分都進(jìn)行一項工作:20 8-12 * * * command 仔細(xì)看到第二欄變成 8-12 喔!代表 8,9,10,11,12 都適用的意思!
/n 那個 n 代表數(shù)字,亦即是『每隔 n 單位間隔』的意思,例如每五分鐘進(jìn)行一次,則:*/5 * * * * command 很簡單吧!用 * 與 /5 來搭配,也可以寫成 0-59/5 ,相同意思!

1.5 Crontab命令

1.5.1 命令格式

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

1.5.2 命令功能

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

1.5.3 命令參數(shù)

-u user:用來設(shè)定某個用戶的crontab服務(wù),例如,“-u ixdba”表示設(shè)定ixdba用戶的crontab服務(wù),此參數(shù)一般有root用戶來運行。
file:file是命令文件的名字,表示將file做為crontab的任務(wù)列表文件并載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標(biāo)準(zhǔn)輸入(鍵盤)上鍵入的命令,并將它們載入crontab。
-e:編輯某個用戶的crontab文件內(nèi)容。如果不指定用戶,則表示編輯當(dāng)前用戶的crontab文件。
-l:顯示某個用戶的crontab文件內(nèi)容,如果不指定用戶,則表示顯示當(dāng)前用戶的crontab文件內(nèi)容。
-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認(rèn)刪除當(dāng)前用戶的crontab文件。
-i:在刪除用戶的crontab文件時給確認(rèn)提示。

二、crontab定時任務(wù)實例

2.1 時間頻次示例

注意,一般最好不要同時采用幾號和每周幾,可能會出現(xiàn)混淆;

時間表達(dá)式示例:

時間 含義
10 * * * * 命令 每小時的第10分鐘執(zhí)行一次命令
45 22 * * * 命令 在22點45分執(zhí)行命令
0 17 * * 1 命令 每周1的17點0分執(zhí)行命令
0 5 1,15 * * 命令 每月1日和15日的凌晨5點0分執(zhí)行命令
40 4 * * 1-5 命令 每周一到周五的凌晨4點40分執(zhí)行命令
*/10 4 * * * 命令 每天的凌晨4點,每隔10分鐘執(zhí)行一次命令
0 0 1,15 * 1 命令 每月1日和15日,每周1的0點0分都會執(zhí)行命令。 日和星期不是并且的關(guān)系,是或者的關(guān)系。
0 */10 * * * /usr/bin/curl http://www.baidu.com 每10分鐘定時請求一個地址
10 14 1 * * sh test.sh 每個月的1號 14:10 運行
*/1 * * * * sh test.sh 每分鐘運行一次命令
59 23 * * 1,2,3,4,5 sh test.sh 每個工作日23:59都進(jìn)行備份作業(yè)。
59 23 * * 1-5 sh test.sh 每個工作日23:59都進(jìn)行備份作業(yè)。
10 0 * * * sh test.sh 在 凌晨00:10運行

2.2 輸入輸出重定向

在上面更新數(shù)據(jù)定時任務(wù)的實例中,如果執(zhí)行update.sh的時候有錯誤信息輸出,會輸出到哪兒呢?

在沒有配置輸出重定向的時候,定時任務(wù)會見錯誤輸出到下面的文件:/var/log/mail/{$user},這是很不好的,我們往往需要把不同的腳本輸出到不同的日志文件,方便查看腳本的執(zhí)行情況,這個時候需要使用輸出重定向。

58 23 * * * sh /home/work/update.sh >> /home/work/log/update.log 2>&1

Linux中使用0-3作為文件描述符來表示標(biāo)準(zhǔn)流。

名稱 類型 文件描述符 操作
stdin 標(biāo)準(zhǔn)輸入 standard input 0 <,<<
stdout 標(biāo)準(zhǔn)輸出 standard output 1 >,>>
stderr 標(biāo)準(zhǔn)錯誤輸出 standard error output 2 2>,2>>

在上面的定時任務(wù)腳本中,update.sh后面的>>表示將輸出追加到update.log文件中,2>&1表示標(biāo)準(zhǔn)錯誤輸出重定向等同于標(biāo)準(zhǔn)輸出。

正確、錯誤日志的輸出是否寫入到文件方法:

  1. 不輸出任何內(nèi)容(建議使用方法一)
*/1 * * * * /root/XXXX.sh >/dev/null 2>&1 
或
*/1 * * * * /root/XXXX.sh &>/dev/null    //&表示任何內(nèi)容
  1. 將正確和錯誤日志都輸出到 /tmp/load.log
*/1 * * * * /root/XXXX.sh > /tmp/load.log 2>&1
  1. 只輸出正確日志到 /tmp/load.log
*/1 * * * * /root/XXXX.sh > /tmp/load.log
或
*/1 * * * * /root/XXXX.sh 1> /tmp/load.log    //1可以省略
  1. 只輸出錯誤日志到 /tmp/load.log
*/1 * * * * /root/XXXX.sh 2> /tmp/load.log

部分解釋:

/dev/null 代表空設(shè)備文件
> 代表重定向到哪里
1 表示stdout標(biāo)準(zhǔn)輸出,系統(tǒng)默認(rèn)值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr標(biāo)準(zhǔn)錯誤
& 表示等同于的意思,2>&1,表示2的輸出重定向等同于1

2.3 忽略輸入nohup

有時候我們還會看到在定時任務(wù)腳本前面有一個nohup的命令,該命令用于指定后面的腳本忽略輸入。

58 23 * * * nohup sh /home/work/update.sh >> /home/work/log/update.log 2>&1

2.4 后臺執(zhí)行&

無論是在控制臺直接執(zhí)行,還是在定時任務(wù)腳本中,我們在某一條命令的最后面加上&符號,表示當(dāng)前命令在后臺運行,不占用控制臺。

58 23 * * * nohup sh /home/work/update.sh >> /home/work/log/update.log 2>&1 &

這里需要注意,如果執(zhí)行的命令有等待輸入的交互,把這個命令使用&放在后臺運行時,它會一直等待輸入,但是有沒有輸入,就卡住不動了。

2.5 時間處理

再回顧上面的更新任務(wù),它是將每一天的運行結(jié)果都重定向到update.log文件,如果輸出比較多,我們就需要每一天輸出的不同的文件,可以通過在輸出目錄中指定日期用來分割。如下:

58 23 * * * nohup sh /home/work/update.sh >> /home/work/log/`update_"date +\%Y\%m\%d".log` 2>&1 &# 或者下面的形式58 23 * * * nohup sh /home/work/update.sh >> "/home/work/log/update_"date +\%Y\%m\%d".log" 2>&1 &

這里使用date函數(shù),需要注意的是,crontab里面的腳本命令和直接在命令行運行的腳本可能是不一樣的,尤其是date函數(shù)中的%需要轉(zhuǎn)義。

可以直接在命令行運行下面命令:

sh /home/work/update.sh >> /home/work/log/update_`date +"%Y%m%d".log` 2>&1 &

達(dá)到和定時任務(wù)里面相同的效果,都是輸出到update_20201120.log的文件。

但是如果直接在crontab中這樣配置,則無法識別,不會執(zhí)行該定時任務(wù)。下面的crontab任務(wù)是不會執(zhí)行的,date函數(shù)將會報錯。

58 23 * * * nohup sh /home/work/update.sh >> /home/work/log/`update_"date +%Y%m%d".log` 2>&1 &

附錄A

A.1 注意事項

  1. 新創(chuàng)建的cron job,不會馬上執(zhí)行,至少要過2分鐘才執(zhí)行。如果重啟cron則馬上執(zhí)行

  2. 當(dāng)crontab突然失效時,可以嘗試/etc/init.d/crond restart解決問題?;蛘卟榭慈罩究茨硞€job有沒有執(zhí)行/報錯tail -f /var/log/cron。

  3. 千萬別亂運行crontab -r。它從Crontab目錄(/var/spool/cron)中刪除用戶的Crontab文件。刪除了該用戶的所有crontab都沒了。文章來源地址http://www.zghlxwxcb.cn/news/detail-733558.html

A.2 參考博客

  • 『學(xué)了就忘』Linux系統(tǒng)定時任務(wù)

到了這里,關(guān)于Linux 定時任務(wù)調(diào)度(crontab)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Linux】crontab 定時任務(wù)

    【Linux】crontab 定時任務(wù)

    當(dāng)你需要在Linux系統(tǒng)中定期執(zhí)行某些任務(wù)時,crontab(cron table)是一個非常有用的工具。它允許你根據(jù)預(yù)定的時間表創(chuàng)建和管理定時任務(wù)。 按照進(jìn)程的功能和運行的程序分類,進(jìn)程可劃分為兩大類。 系統(tǒng)進(jìn)程 :可以執(zhí)行 內(nèi)存資源分配和進(jìn)程切換等 管理工作;而且,該進(jìn)程的

    2024年02月10日
    瀏覽(28)
  • Linux Crontab命令定時任務(wù)

    1,crontab:是Linux,unix的定時任務(wù),需要系統(tǒng)安裝crontab程序,存儲的指定被守護(hù)進(jìn)程crond激活,每分鐘去檢查一次需要執(zhí)行的job, 2,新創(chuàng)建的cron任務(wù),不會馬上執(zhí)行,至少要過 2 分鐘后才可以,可以重啟 cron 來馬上執(zhí)行。 3,檢查是否安裝crontab: rpm -qa | grep crontab 4,全局配置文

    2024年02月16日
    瀏覽(23)
  • Linux crontab命令定時任務(wù)詳解

    Linux crontab命令定時任務(wù)詳解

    ????????crond是Linux系統(tǒng)中用來定期執(zhí)行命令或指定程序任務(wù)的一種服務(wù)或軟件,與Windows下的計劃任務(wù)類似。當(dāng)安裝完成操作系統(tǒng)后,默認(rèn)會安裝此服務(wù)工具,并且會自動啟動crond進(jìn)程。crond進(jìn)程每分鐘會定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動執(zhí)行該任

    2024年02月04日
    瀏覽(24)
  • Linux 定時任務(wù) crontab 用法學(xué)習(xí)整理

    Linux 定時任務(wù) crontab 用法學(xué)習(xí)整理

    lsb_release -a linux中crontab命令用于設(shè)置周期性被執(zhí)行的指令,該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。cron 系統(tǒng)調(diào)度進(jìn)程??梢允褂盟诿刻斓姆歉叻遑?fù)荷時間段運行作業(yè),或在一周或一月中的不同時段運行。cron是系統(tǒng)主要的調(diào)度

    2024年02月11日
    瀏覽(22)
  • Linux通過crontab定時執(zhí)行腳本任務(wù)

    Linux通過crontab定時執(zhí)行腳本任務(wù)

    在Linux中可以使用crontab來定時執(zhí)行腳本。crontab是一個用于管理定時任務(wù)的工具,可以讓在特定的時間間隔內(nèi)自動運行腳本或命令。 需求 : 在Linux中每分鐘寫入一條信息到指定文件中,使用 cron 來定期執(zhí)行一個寫入命令或腳本 首先,在 home 目錄下創(chuàng)建一個名為 testscript.sh 的腳

    2024年02月17日
    瀏覽(32)
  • 【Linux】Linux中Crontab(定時任務(wù))命令詳解及使用教程

    【Linux】Linux中Crontab(定時任務(wù))命令詳解及使用教程

    Crontab介紹: Linux crontab是用來crontab命令常見于Unix和類Unix的操作系統(tǒng)之中,用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。該詞來源于希臘語 chronos(χρ?νο?),原意是時間。通常,crontab儲存的指令被守護(hù)

    2024年02月08日
    瀏覽(17)
  • Linux的定時任務(wù)--CronTab 命令詳解及使用教程

    Linux的定時任務(wù)--CronTab 命令詳解及使用教程

    Linux crontab 是用來定期執(zhí)行程序的命令。(Nginx 日志切割,數(shù)據(jù)庫備份等) 當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會啟動此任務(wù)調(diào)度命令。 crond 命令每分鐘會定期檢查是否有要執(zhí)行的工作,如果有要執(zhí)行的工作便會自動執(zhí)行該工作。 注意:新創(chuàng)建的 cron 任務(wù),不會馬上執(zhí)行,至

    2024年02月16日
    瀏覽(24)
  • Linux學(xué)習(xí)筆記-Ubuntu下使用Crontab設(shè)置定時任務(wù)

    Linux學(xué)習(xí)筆記-Ubuntu下使用Crontab設(shè)置定時任務(wù)

    白衣沽酒綺羅生 百代繁華一朝都,誰非過客;千秋明月吹角寒,花是主人。 crontab命令常見于Unix和類Unix的操作系統(tǒng)之中,用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。該詞來源于希臘語 chronos(χρνο

    2024年02月04日
    瀏覽(18)
  • ubuntu環(huán)境下開啟定時任務(wù)crontab

    在工程化過程中遇到一個需求,需要在ubuntu環(huán)境下開啟一個定時任務(wù),定時執(zhí)行sh腳本,下面參考網(wǎng)上的解決方案記錄如下。 linux中crontab命令用于設(shè)置周期性被執(zhí)行的指令,該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。 可以使用

    2024年02月09日
    瀏覽(22)
  • Linux定時任務(wù)詳解&crontab -e 編輯之后如何保存并退出(Ubuntu)

    Linux定時任務(wù)詳解&crontab -e 編輯之后如何保存并退出(Ubuntu)

    1. 保存 操作命令如下: crontab -e 打開crontab的配置文件,并編輯完成 Ctrl + O 寫入內(nèi)容, 出現(xiàn) File name to Write ... ,輸入 Enter Ctrl +X 保存并輸出,保存完成 service cron restart , 重啟 crontab 定時任務(wù) 2. 驗證 兩種驗證方式: 使用 crontab -e 命令打開任務(wù)配置文件,此時可以看到剛才保

    2024年01月17日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包