• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Linux下實(shí)現(xiàn)定時任務(wù)綜述

      2017-11-21 21:15:20王繼敏
      科技視界 2017年21期
      關(guān)鍵詞:任務(wù)調(diào)度配置文件周期性

      王繼敏

      【摘 要】在Linux系統(tǒng)運(yùn)維過程中,經(jīng)常會遇到需要定時或周期性的執(zhí)行一些命令或腳本的情況,利用Linux系統(tǒng)提供的定時任務(wù)機(jī)制可以實(shí)現(xiàn)這一功能。對Linux下實(shí)現(xiàn)定時任務(wù)的幾種不同方式進(jìn)行探討,給出了在不同方式下實(shí)現(xiàn)定時任務(wù)的一些具體實(shí)例。

      【關(guān)鍵詞】Linux;定時任務(wù)

      0 引言

      在實(shí)際生產(chǎn)環(huán)境中,經(jīng)常需要定時或周期性的執(zhí)行一些命令或者腳本程序,如在指定時間對系統(tǒng)的用戶訪問量進(jìn)行統(tǒng)計、定期清理臨時文件、定期對日志文件進(jìn)行分析匯總等等。此時可以使用Linux提供的定時任務(wù)機(jī)制來滿足這種需求。這種定時任務(wù)可以分為需要周期性反復(fù)執(zhí)行的定時任務(wù)和僅執(zhí)行一次的定時任務(wù)兩類,本文分別對這兩種定時任務(wù)的實(shí)現(xiàn)給出描述,并簡要介紹在使用過程中需要注意的事項。

      本文所述的命令、配置文件等都基于RHEL6.3(Redhat Enterprise Linux 6.3),不同Linux發(fā)行版之間或許有細(xì)微的差別,這些差異不在本文的探討范圍之內(nèi)。

      1 一次性定時任務(wù)

      1.1 at簡介

      某些任務(wù)調(diào)度可能是突發(fā)的、臨時性的、一次性的任務(wù),如在凌晨某時刻對系統(tǒng)執(zhí)行一次升級。這種情況可以使用at命令實(shí)現(xiàn)。at既可以接收來自stdin的命令,也接收預(yù)先寫在文件中的命令。而at的定時任務(wù)能夠得以實(shí)現(xiàn),必須要事先啟動atd系統(tǒng)服務(wù)。[1]

      如果RHEL6.3是采用最小化方式安裝的,則at和atd都是沒有安裝的,可以通過以下命令安裝之。

      # yum install at

      接下來查看一下atd服務(wù)的狀態(tài),將其啟動。

      # service atd status

      atd is stopped

      顯示上面這條信息表示atd服務(wù)還沒有開啟,此時是無法執(zhí)行at定時任務(wù)的,通過以下命令將其開啟。

      # service atd start

      此后便可以使用at命令設(shè)置定時任務(wù)了。

      1.2 at語法及注意事項

      at命令的語法可以分為兩種形式,分別是:

      (1)at [-f] time

      (2)at [options]

      at命令的第一種形式會從stdin或者file文件讀取命令,將命令排入隊列,使其于指定時間(time)執(zhí)行,這里的時間既可以是絕對時間如12:00,也可以是相對時間如now+3 minutes等;第二種形式可以列出(使用-l選項)或者刪除(使用-d選項)隊列中的任務(wù)。設(shè)置成功的at計劃任務(wù)會在/var/spool/at下生產(chǎn)一個可執(zhí)行腳本。例如在凌晨2點(diǎn)對磁盤sdb1執(zhí)行一次磁盤檢查任務(wù):

      # at 2:00

      at> fsck /dev/sdb1

      需要注意的是,at的執(zhí)行與終端環(huán)境無關(guān),所有的standard output和standard error都會發(fā)送到執(zhí)行者的郵箱里,當(dāng)然前提是當(dāng)前主機(jī)已經(jīng)安裝并配置好了郵件系統(tǒng)。另外需要注意的是,at通過/etc/at.deny和/etc/at.allow提供了訪問控制措施,以決定哪些用戶可以使用調(diào)度服務(wù)。如果這兩個文件都不存在,則只有root管理員可以使用at;如果只有at.deny文件,而at.allow文件不存在,則除了黑名單之外的所有用戶都可以使用at;如果at.allow文件存在,則只有白名單用戶才可以使用at。

      2 周期性定時任務(wù)

      2.1 cron簡介

      另一類任務(wù)調(diào)度是例行性的,即每隔一定的周期要來辦的事項,這類定時任務(wù)需要使用cron來實(shí)現(xiàn)。Linux系統(tǒng)本身就有許多需要循環(huán)執(zhí)行的例行性任務(wù),如對日志文件進(jìn)行輪替(log rotate)、定期清理/tmp目錄下的臨時文件、定期建立locate數(shù)據(jù)庫等。Cron是一個系統(tǒng)服務(wù),即使RHEL6.3是最小化安裝,這個服務(wù)也是安裝和開啟的。例如下面這條命令:

      # service crond status

      crond (pid 1032) is running...

      上面一行輸出信息表示當(dāng)前定時器服務(wù)crond正在運(yùn)行。

      2.2 crontab命令及配置文件

      用戶可以使用crontab命令設(shè)定或者查看定時任務(wù)。該命令的主要用法如下:

      (1)crontab -l [-u usrer] 列出某個用戶cron服務(wù)的詳細(xì)內(nèi)容

      (2)crontab -r [-u usrer] 刪除某個用戶的cron服務(wù)

      (3)crontab -e [-u usrer] 編輯某個用戶的cron服務(wù)[2]

      例如,系統(tǒng)管理員想刪除Tom用戶的定時任務(wù),可以如下操作:

      # crontab -u Tom -r

      當(dāng)crontab使用-e參數(shù)時,會自動打開vi編輯器,可以按照規(guī)定語法格式編輯定時任務(wù)。其語法格式為:

      Minute Hour Day Month Week Command

      分鐘 小時 天 月 星期 命令

      其中Minute的取值范圍為0-59,Hour的取值范圍為0-23,Day的取值范圍為1-31,Month的取值為1-12,Week的取值為0-7(0和7都表示星期日),Command即為周期性執(zhí)行的命令或者腳本。

      在以上任何值中,星號(*)可以用來代表所有有效的值,譬如月份值中的星號意味著在滿足其它制約條件后每月都執(zhí)行該命令;整數(shù)間的短線(-)指定一個整數(shù)范圍,譬如1-4 意味著整數(shù)1、2、3、4;用逗號(,)隔開的一系列值指定一個列表,譬如3, 4, 6, 8標(biāo)明這四個指定的整數(shù);正斜線(/)可以用來指定間隔頻率,在范圍后加上 / integer意味著在范圍內(nèi)可以跳過 integer,譬如0-59/2 可以用來在分鐘字段定義每兩分鐘;間隔頻率值還可以和星號一起使用,例如,*/3 的值可以用在月份字段中表示每三個月運(yùn)行一次任務(wù);開頭為井號(#)的行是注釋,不會被處理。例如用戶Tom為自己安排一個定時任務(wù),每天刪除/home/Tom/log目錄下五天前的文件,可以如下編輯:

      0 2 * * * find /home/Tom/log -type f -mtime +5 -exec rm {} \;

      用戶編輯好的定時任務(wù),會保存在/var/spool/cron目錄下的一個和用戶名同名的文件中,這就是用戶級定時任務(wù)的配置文件。還有一類定時任務(wù)是系統(tǒng)級定時任務(wù),通常用于系統(tǒng)的例行性任務(wù)調(diào)度,這類定時任務(wù)的配置文件保存在/etc/crontab文件中,可以直接以root用戶身份打開編輯。其配置文件格式與用戶級定時任務(wù)配置文件的格式類似,只不過在Week和Command兩項之間,多了一個User項,即執(zhí)行者身份——定義該任務(wù)以什么用戶身份執(zhí)行。

      和at命令類似,也可以通過編輯/etc/cron.allow和/etc/cron.deny文件,來允許/禁止用戶設(shè)置定時任務(wù)。編輯完黑名單或者白名單后,需要重啟crond服務(wù)以使之生效。

      3 anacron機(jī)制

      無論是at定時任務(wù)還是cron定時任務(wù),都要求在指定的時刻系統(tǒng)必須是開機(jī)的。這對于生產(chǎn)環(huán)境中24小時不間斷運(yùn)行的服務(wù)器而言自然不是問題,但在一些桌面和工作站使用環(huán)境中則很難做到,如果在任務(wù)預(yù)定執(zhí)行的那一刻系統(tǒng)是關(guān)機(jī)的,則定時任務(wù)失效。而anacron就是為處理非24小時一直在線的Linux系統(tǒng)的定時任務(wù)而設(shè)計的。

      anacron并非是取代cron,而是cron的補(bǔ)充。anacron并不能指定在何時執(zhí)行某任務(wù),而是以天為單位或者開機(jī)后立刻檢查停機(jī)期間應(yīng)該但是沒有執(zhí)行的cron任務(wù),并將這些任務(wù)執(zhí)行一遍。

      4 結(jié)束語

      通過利用Linux系統(tǒng)提供的at和cron機(jī)制,可以方便的安排一些臨時性或周期性的任務(wù)在指定時間執(zhí)行,正確而合理的使用Linux的定時任務(wù)機(jī)制可以有效的提高系統(tǒng)運(yùn)維的效率。

      【參考文獻(xiàn)】

      [1]鳥哥.鳥哥的Linux私房菜基礎(chǔ)學(xué)習(xí)篇[M].第三版.北京:機(jī)械工業(yè)版社,2010:493-494.

      [2]陳素琴.Linux中的定時任務(wù)探討.現(xiàn)代計算機(jī),2010.11:70-71.endprint

      猜你喜歡
      任務(wù)調(diào)度配置文件周期性
      提示用戶配置文件錯誤 這樣解決
      搭建簡單的Kubernetes集群
      互不干涉混用Chromium Edge
      數(shù)列中的周期性和模周期性
      基于改進(jìn)NSGA-Ⅱ算法的協(xié)同制造任務(wù)調(diào)度研究
      基于時間負(fù)載均衡蟻群算法的云任務(wù)調(diào)度優(yōu)化
      忘記ESXi主機(jī)root密碼怎么辦
      一類整數(shù)遞推數(shù)列的周期性
      基于擴(kuò)頻碼周期性的單通道直擴(kuò)通信半盲分離抗干擾算法
      云計算環(huán)境中任務(wù)調(diào)度策略
      荥阳市| 巴南区| 喀喇沁旗| 金平| 长丰县| 长葛市| 会昌县| 广平县| 当雄县| 吉安市| 云龙县| 贵溪市| 同江市| 达尔| 古丈县| 正定县| 利川市| 巴马| 颍上县| 息烽县| 藁城市| 原平市| 新余市| 犍为县| 通州市| 永寿县| 财经| 西青区| 呼伦贝尔市| 来宾市| 双流县| 禹城市| 连山| 潮安县| 陈巴尔虎旗| 织金县| 繁昌县| 舞阳县| 八宿县| 广南县| 涪陵区|