IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類(lèi)|軟件專(zhuān)題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)操作系統(tǒng)LINUX → linux at cron命令

linux at cron命令

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

  用戶(hù)使用at命令在指定時(shí)刻執(zhí)行指定的命令序列。也就是說(shuō),該命令至少需要指定一個(gè)命令、一個(gè)執(zhí)行時(shí)間才能夠正常運(yùn)行。at命令能夠只指定時(shí)間,也能夠時(shí)間和日期一起指定。需要注意的是,指定時(shí)間有個(gè)系統(tǒng)判別問(wèn)題。比如說(shuō):用戶(hù)現(xiàn)在指定了一個(gè)執(zhí)行時(shí)間:凌晨3:20,而發(fā)出at命令的時(shí)間是頭天晚上的20:00,那么究竟是在哪一天執(zhí)行該命令呢?假如用戶(hù)在3:20以前仍然在工作,那么該命令將在這個(gè)時(shí)候完成;假如用戶(hù)3:20以前就退出了工作狀態(tài),那么該命令將在第二天凌晨才得到執(zhí)行。下面是at命令的語(yǔ)法格式:

  at [-V] [-q 隊(duì)列] [-f 文檔名] [-mldbv] 時(shí)間

  at -c 作業(yè) [作業(yè)...]

  at允許使用一套相當(dāng)復(fù)雜的指定時(shí)間的方法,實(shí)際上是將POSIX.2標(biāo)準(zhǔn)擴(kuò)展了。他能夠接受在當(dāng)天的hh:mm(小時(shí):分鐘)式的時(shí)間指定。假如該時(shí)間已過(guò)去,那么就放在第二天執(zhí)行。當(dāng)然也能夠使用midnight(深夜),noon(中午),teatime(飲茶時(shí)間,一般是下午4點(diǎn))等比較模糊的詞語(yǔ)來(lái)指定時(shí)間。用戶(hù)還能夠采用12小時(shí)計(jì)時(shí)制,即在時(shí)間后面加上AM(上午)或PM(下午)來(lái)說(shuō)明是上午還是下午。

  也能夠指定命令執(zhí)行的具體日期,指定格式為month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必須跟在指定時(shí)間的后面。

  上面介紹的都是絕對(duì)計(jì)時(shí)法,其實(shí)還能夠使用相對(duì)計(jì)時(shí)法,這對(duì)于安排不久就要執(zhí)行的命令是很有好處的。指定格式為:now + count

  time-units ,now就是當(dāng)前時(shí)間,time-units是時(shí)間單位,這里能夠是

  minutes(分鐘)、hours(小時(shí))、days(天)、weeks(星期)。count是時(shí)間的數(shù)量,究竟是幾天,還是幾小時(shí),等等。

  更有一種計(jì)時(shí)方法就是直接使用today(今天)、tomorrow(明天)來(lái)指定完成命令的時(shí)間。下面通過(guò)一些例子來(lái)說(shuō)明具體用法。

  [例2] 指定在今天下午5:30執(zhí)行某命令。假設(shè)現(xiàn)在時(shí)間是中午12:30,1999年2月24日,其命令格式如下:

  at 5:30pm

  at 17:30

  at 17:30 today

  at now + 5 hours

  at now + 300 minutes

  at 17:30 24.2.99

  at 17:30 2/24/99

  at 17:30 Feb 24

  以上這些命令表達(dá)的意義是完全相同的,所以在安排時(shí)間的時(shí)候完萬(wàn)能夠根據(jù)個(gè)人喜好和具體情況自由選擇。一般采用絕對(duì)時(shí)間的24小時(shí)計(jì)時(shí)法能夠避免由于用戶(hù)自己的疏忽造成計(jì)時(shí)錯(cuò)誤的情況發(fā)生,例如上例能夠?qū)懗桑?/p>

  at 17:30 2/24/99

  這樣很清楚,而且別人也看得懂。

  對(duì)于at命令來(lái)說(shuō),需要定時(shí)執(zhí)行的命令是從標(biāo)準(zhǔn)輸入或使用-f選項(xiàng)指定的文檔中讀取并執(zhí)行的。假如at命令是從一個(gè)使用su命令轉(zhuǎn)換到用戶(hù)shell中執(zhí)行的,那么當(dāng)前用戶(hù)被認(rèn)為是執(zhí)行用戶(hù),任何的錯(cuò)誤和輸出結(jié)果都會(huì)送給這個(gè)用戶(hù)。但是假如有郵件送出的話,收到郵件的將是原來(lái)的用戶(hù),也就是登錄時(shí)shell的任何者。

 ?。劾?]

  $ at -f work 4pm + 3 days

  在三天后下午4點(diǎn)執(zhí)行文檔work中的作業(yè)。

  $ at -f work 10am Jul 31

  在7月31日上午10點(diǎn)執(zhí)行文檔work中的作業(yè)。

  在任何情況下,終極用戶(hù)都能夠使用這個(gè)命令。對(duì)于其他用戶(hù)來(lái)說(shuō),是否能夠使用就取決于兩個(gè)文檔:/etc/at.allow和/etc/at.deny。

  假如/etc/at.allow文檔存在的話,那么只有在其中列出的用戶(hù)才能夠使用at命令;假如該文檔不存在,那么將檢查/etc/at.deny文檔是否存在,在這個(gè)文檔中列出的用戶(hù)均不能使用該命令。假如兩個(gè)文檔都不存在,那么只有終極用戶(hù)能夠使用該命令;空的/etc/at.deny文檔意味著所有的用戶(hù)都能夠使用該命令,這也是默認(rèn)狀態(tài)。

  下面對(duì)命令中的參數(shù)進(jìn)行說(shuō)明。

  -V 將標(biāo)準(zhǔn)版本號(hào)打印到標(biāo)準(zhǔn)錯(cuò)誤中。

  -q queue 使用指定的隊(duì)列。隊(duì)列名稱(chēng)是由單個(gè)字母組成,合法的隊(duì)列名能夠由a-z或A-Z。a隊(duì)列是at命令的默認(rèn)隊(duì)列。

  -m 作業(yè)結(jié)束后發(fā)送郵件給執(zhí)行at命令的用戶(hù)。

  -f file 使用該選項(xiàng)將使命令從指定的file讀取,而不是從標(biāo)準(zhǔn)輸入讀取。

  -l atq命令的一個(gè)別名。該命令用于查看安排的作業(yè)序列,他將列出用戶(hù)排在隊(duì)列中的作業(yè),假如是終極用戶(hù),則列出隊(duì)列中的任何工作。

  命令的語(yǔ)法格式如下:

  atq [-V] [-q 隊(duì)列] [-v]

  -d atrm 命令的一個(gè)別名。該命令用于刪除指定要執(zhí)行的命令序列,語(yǔ)法格式如下:

  atrm [-V] 作業(yè) [作業(yè)...]

  -c 將命令行上所列的作業(yè)送到標(biāo)準(zhǔn)輸出。

 ?。劾?] 找出系統(tǒng)中任何以txt為后綴名的文檔,并且進(jìn)行打印。打印結(jié)束后給用戶(hù)foxy發(fā)出郵件通知取件。指定時(shí)間為十二月二十五日凌晨?jī)牲c(diǎn)。

  首先鍵入:

  $ at 2:00 12/25/99

  然后系統(tǒng)出現(xiàn)at>提示符,等待用戶(hù)輸入進(jìn)一步的信息,也就是需要執(zhí)行的命令序列:

  at> find / -name "*.txt"|lpr

  at> echo "foxy:All texts have been printed.You can take them over.Good day!River" |mail -s "job done" foxy

  輸入完每一行指令然后回車(chē),任何指令序列輸入完畢后,使用組合鍵結(jié)束at命令的輸入。這時(shí)候屏幕將出現(xiàn)如下信息:

  warning:command will be executed using /bin/sh.

  job 1 at 1999-12-25 02:00

  提醒用戶(hù)將使用哪個(gè)shell來(lái)執(zhí)行該命令序列。

  實(shí)際上假如命令序列較長(zhǎng)或經(jīng)常被執(zhí)行的時(shí)候,一般都采用將該序列寫(xiě)到一個(gè)文檔中,然后將文檔作為at命令的輸入來(lái)處理。這樣不容易出錯(cuò)。

  [例5] 上面的例子能夠修改如下:

  將命令序列寫(xiě)入到文檔/tmp/printjob,語(yǔ)句為:

  $ at -f /tmp/printjob 2:00 12/25/99

  這樣一來(lái),at命令將使用文檔中的命令序列,屏幕顯示如下:

  Warning:command will be executed using /bin/sh.

  job 2 at 1999-12-25 02:00

  /sbin/service crond start //啟動(dòng)服務(wù)

  /sbin/service crond stop //關(guān)閉服務(wù)

  /sbin/service crond restart //重啟服務(wù)

  /sbin/service crond reload //重新載入配置

  可以將這個(gè)服務(wù)在系統(tǒng)啟動(dòng)的時(shí)候也自動(dòng)啟動(dòng):

  在/etc/rc.d/rc.local這個(gè)腳本的末尾加上:

  /sbin/service crond start

  1.直接用crontab命令編輯

  cron服務(wù)提供crontab命令來(lái)設(shè)定cron服務(wù)的,以下是這個(gè)命令的一些參數(shù)與說(shuō)明:

  crontab -u //設(shè)定某個(gè)用戶(hù)的cron服務(wù),一般root用戶(hù)在執(zhí)行這個(gè)命令的時(shí)候需要此參數(shù)

  crontab -l //列出某個(gè)用戶(hù)cron服務(wù)的詳細(xì)內(nèi)容

  crontab -r //刪除沒(méi)個(gè)用戶(hù)的cron服務(wù)

  crontab -e //編輯某個(gè)用戶(hù)的cron服務(wù)

  比如說(shuō)root查看自己的cron設(shè)置:

  crontab -u root -l

  再例如,root想刪除fred的cron設(shè)置:

  crontab -u fred -r

  在編輯cron服務(wù)時(shí),編輯的內(nèi)容有一些格式和約定,輸入:

  引用:

  crontab -u root -e

  進(jìn)入vi編輯模式,編輯的內(nèi)容一定要符合下面的格式:

  */1 * * * * ls >> /tmp/ls.txt

  這個(gè)格式的前一部分是對(duì)時(shí)間的設(shè)定,后面一部分是要執(zhí)行的命令,如果要執(zhí)行的命令太多,可以把這些命令寫(xiě)到一個(gè)腳本里面,然后在這里直接調(diào)用這個(gè)腳本就可以了,調(diào)用的時(shí)候記得寫(xiě)出命令的完整路徑。時(shí)間的設(shè)定我們有一定的約定,前面五個(gè)*號(hào)代表五個(gè)數(shù)字,數(shù)字的取值范圍和含義如下:

  引用:

  分鐘?。?-59)

  小時(shí)?。?-23)

  日期?。?-31)

  月份?。?-12)

  星期?。?-6)//0代表星期天

  除了數(shù)字還有幾個(gè)個(gè)特殊的符號(hào)就是"*"、"/"和"-"、",",*代表所有的取值范圍內(nèi)的數(shù)字,"/"代表每的意思,"*/5"表示每5個(gè)單位,"-"代表從某個(gè)數(shù)字到某個(gè)數(shù)字,","分開(kāi)幾個(gè)離散的數(shù)字。以下舉幾個(gè)例子說(shuō)明問(wèn)題:

  引用:

  每天早上6點(diǎn)

  0 6 * * * echo "Good morning." >> /tmp/test.txt //注意單純echo,從屏幕上看不到任何輸出,因?yàn)閏ron把任何輸出都email到root的信箱了。

  每?jī)蓚€(gè)小時(shí)

  0 */2 * * * echo "Have a break now." >> /tmp/test.txt

  晚上11點(diǎn)到早上8點(diǎn)之間每?jī)蓚€(gè)小時(shí),早上八點(diǎn)

  0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt

  每個(gè)月的4號(hào)和每個(gè)禮拜的禮拜一到禮拜三的早上11點(diǎn)

  0 11 4 * 1-3 command line

  1月1日早上4點(diǎn)

  0 4 1 1 * command line

  2.編輯/etc/crontab 文件配置cron

  cron 服務(wù)每分鐘不僅要讀一次/var/spool/cron內(nèi)的所有文件,還需要讀一次/etc/crontab,因此我們配置這個(gè)文件也能運(yùn)用cron服務(wù)做一些事情。用crontab配置是針對(duì)某個(gè)用戶(hù)的,而編輯/etc/crontab是針對(duì)系統(tǒng)的任務(wù)。此文件的文件格式是:

  SHELL=/bin/bash

  PATH=/sbin:/bin:/usr/sbin:/usr/bin

  MAILTO=root //如果出現(xiàn)錯(cuò)誤,或者有數(shù)據(jù)輸出,數(shù)據(jù)作為郵件發(fā)給這個(gè)帳號(hào)

  HOME=/

  # run-parts

  01 * * * * root run-parts /etc/cron.hourly //每個(gè)小時(shí)去執(zhí)行一遍/etc/cron.hourly內(nèi)的腳

關(guān)鍵詞標(biāo)簽:linux,at cron命令

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 Tomcat9.0如何安裝_Tomcat9.0環(huán)境變量配置方法 多種操作系統(tǒng)NTP客戶(hù)端配置 多種操作系統(tǒng)NTP客戶(hù)端配置 Linux操作系統(tǒng)修改IP Linux操作系統(tǒng)修改IP

相關(guān)下載

    人氣排行 Linux下獲取CPUID、硬盤(pán)序列號(hào)與MAC地址 dmidecode命令查看內(nèi)存型號(hào) linux tc實(shí)現(xiàn)ip流量限制 安裝紅帽子RedHat Linux9.0操作系統(tǒng)教程 linux下解壓rar文件 lcx.exe、nc.exe、sc.exe入侵中的使用方法 Ubuntu linux 關(guān)機(jī)、重啟、注銷(xiāo) 命令 查看linux服務(wù)器硬盤(pán)IO讀寫(xiě)負(fù)載