溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

linux下的計(jì)劃任務(wù)——周期性執(zhí)行的定時(shí)任務(wù)是什么

發(fā)布時(shí)間:2020-11-10 10:53:18 來(lái)源:億速云 閱讀:314 作者:小新 欄目:建站服務(wù)器

這篇文章主要介紹了linux下的計(jì)劃任務(wù)——周期性執(zhí)行的定時(shí)任務(wù)是什么,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

用戶(hù)設(shè)置周期性計(jì)劃任務(wù)crontab

一般用戶(hù)想要設(shè)置周期性計(jì)劃任務(wù)的話(huà),需要使用crontab這個(gè)命令。和at一樣,crontab也有黑白名單,對(duì)于的配置文件分別是——/etc/cron.deny、/etc/cron.allow。

當(dāng)用戶(hù)設(shè)置了定時(shí)任務(wù),該任務(wù)就會(huì)以文本文件的方式記錄到/var/spool/cron目錄下。

# ll /var/spool/cron/
total 4
-rw------- 1 root root 98 Jul 28 03:58 root

關(guān)于crontab,我們只需要記住兩個(gè)命令

  • crontab -e 設(shè)置定時(shí)任務(wù)

  • crontab -l 查看定時(shí)任務(wù)

設(shè)置定時(shí)任務(wù)的格式如下:

基本格式:分       時(shí)    日期    月份    星期    命令
取值范圍:[0-59]  [0-23]  [1-31]   [1-12]   [0-7]

除此之外,我們還需要記幾個(gè)特殊字符的含義:

  • * 表示任意時(shí)刻都可以

  • , 表示分隔時(shí)間段的含義

  • - 表示連續(xù)一段時(shí)間

  • /n 表示每隔n單位間隔

下面通過(guò)幾個(gè)例子來(lái)看看上面特殊字符的用法:

# 每隔5分鐘,執(zhí)行下檢測(cè)內(nèi)存的腳本
*/n * * * * /root/script/check_memory.sh
# 每個(gè)月1號(hào)凌晨5點(diǎn)20分,重啟下服務(wù)器
20 5 1 * * /usr/sbin/reboot

系統(tǒng)的配置文件/etc/crontab、/etc/cron.d/*

關(guān)于周期性的計(jì)劃任務(wù),主要對(duì)應(yīng)的有三個(gè)地方的配置文件,分別是

  • /var/spool/cron/,針對(duì)用戶(hù)來(lái)設(shè)置的

  • /etc/crontab,針對(duì)系統(tǒng)的計(jì)劃任務(wù)

  • /etc/cron.d/ 針對(duì)某個(gè)軟件、系統(tǒng)的定時(shí)任務(wù),比如針對(duì)一個(gè)網(wǎng)站,可能會(huì)有多個(gè)定時(shí)任務(wù),那么建議在/etc/cron.d/目錄下,新建立一個(gè)配置文件

crontab -e是針對(duì)用戶(hù)級(jí)別設(shè)計(jì)的,對(duì)于系統(tǒng)級(jí)別的周期性任務(wù),建議寫(xiě)在/etc/crontal 文件中,或/etc/cron.d/目錄下。

下面看看/etc/crontab文件內(nèi)容

# cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
# * * * * * root /usr/bin/date  >> /root/cron.txt

可以看到,和crontab -e稍微有點(diǎn)區(qū)別,這里需要指定用戶(hù)名。

接下來(lái),我們?cè)賮?lái)看看/etc/cron.d/目錄下有哪些文件

# ll /etc/cron.d
total 8
-rw-r--r--. 1 root root 128 Aug  3  2017 0hourly
-rw-------  1 root root 235 Aug  3  2017 sysstat

假如,服務(wù)器上有一個(gè)網(wǎng)站,對(duì)于該網(wǎng)站,我們需要定時(shí)備份數(shù)據(jù)庫(kù)、網(wǎng)站文件,另外還需要定時(shí)處理些數(shù)據(jù),那么,我們就可以在/etc/cron.d/目錄下建立一個(gè)相關(guān)文件。我們?cè)倏纯?hourly文件內(nèi)容:

# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly

該腳本的意思是,每小時(shí)去執(zhí)行/etc/cron.hourly目錄下的腳本文件。

估計(jì)眼尖的朋友已經(jīng)發(fā)現(xiàn)了,除了cron.hourly目錄,還有cron.daily、cron.monthly、cron.weekly目錄。但是這三個(gè)目錄還是有點(diǎn)區(qū)別的,這三個(gè)目錄是anacron所執(zhí)行的。這個(gè)anacron表示喚醒未執(zhí)行的定時(shí)任務(wù)并執(zhí)行它。舉個(gè)例子,當(dāng)你使用crontab -e設(shè)置了定時(shí)任務(wù)后,因?yàn)殛P(guān)機(jī)或其他原因,時(shí)間過(guò)了單任務(wù)并沒(méi)執(zhí)行,那么就只能錯(cuò)過(guò)就錯(cuò)過(guò)了,但如果將腳本放置在/etc/cron.daily/目錄下,只要沒(méi)有被執(zhí)行,即使時(shí)間過(guò)了,它還是會(huì)被執(zhí)行。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享linux下的計(jì)劃任務(wù)——周期性執(zhí)行的定時(shí)任務(wù)是什么內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問(wèn)題就找億速云,詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI