linux下at命令詳解的簡單介紹

at命令nomailforroot怎么解決

at命令用法詳解

公司主營業(yè)務(wù):成都網(wǎng)站建設(shè)、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出歙縣免費做網(wǎng)站回饋大家。

在linux系統(tǒng)中你可能已經(jīng)發(fā)現(xiàn)了為什么系統(tǒng)常常會自動的進(jìn)行一些任務(wù)?這些任務(wù)到底是誰在支配他們工作的?

在linux系統(tǒng)如果你想要讓自己設(shè)計的備份程序可以自動在某個時間點開始在系統(tǒng)底下運行,而不需要手動來啟動它,又該如何處置呢?

這些例行的工作可能又分為一次性定時工作與循環(huán)定時工作,在系統(tǒng)內(nèi)又是哪些服務(wù)在負(fù)責(zé)?

還有,如果你想要每年在老婆的生日前一天就發(fā)出一封信件提醒自己不要忘記,linux系統(tǒng)下該怎么做呢?

今天我們主要學(xué)習(xí)一下一次性定時計劃任務(wù)的at命令的用法!

1.命令格式:at[參數(shù)][時間]

2.命令功能:在一個指定的時間執(zhí)行一個指定任務(wù),只能執(zhí)行一次,且需要開啟atd進(jìn)程(ps -ef|grep atd查看,開啟用/etc/init.d/atd start or restart;開機(jī)即啟動則需要運行chkconfig --level 2345 atd on)。

3.命令參數(shù):

-m 當(dāng)指定的任務(wù)被完成之后,將給用戶發(fā)送郵件,即使沒有標(biāo)準(zhǔn)輸出

-I atq的別名

-d atrm的別名

-v 顯示任務(wù)將被執(zhí)行的時間

-c 打印任務(wù)的內(nèi)容到標(biāo)準(zhǔn)輸出

-V 顯示版本信息

-q列隊 使用指定的列隊

-f文件 從指定文件讀入任務(wù)而不是從標(biāo)準(zhǔn)輸入讀入

-t時間參數(shù) 以時間參數(shù)的形式提交要運行的任務(wù)

at允許使用一套相當(dāng)復(fù)雜的指定時間的方法。它能夠接受在當(dāng)天的hh:mm(小時:分鐘)式的時間指定。

假如該時間已過去,那么就放在第二天執(zhí)行。

當(dāng)然也能夠使用midnight(深夜),noon(中午),teatime(飲茶時間,一般是下午4點)等比較模糊的 詞語來指定時間。

用戶還能夠采用12小時計時制,即在時間后面加上AM(上午)或PM(下午)來說明是上午還是下午。

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

上面介紹的都是絕對計時法,其實還能夠使用相對計時法,這對于安排不久就要執(zhí)行的命令是很有好處的。

指定格式為:now + count time-units ,

now就是當(dāng)前時間,time-units是時間單位,這里能夠是minutes(分鐘)、hours(小時)、days(天)、weeks(星期)。

count是時間的數(shù)量,究竟是幾天,還是幾小時,等等。 更有一種計時方法就是直接使用today(今天)、tomorrow(明天)來指定完成命令的時間。

time:時間格式,這里可以定義出什么時候要進(jìn)行 at 這項任務(wù)的時間,格式有:HH:MMx 04:00

在今日的 HH:MM 時刻進(jìn)行,若該時刻已超過,則明天的 HH:MM 進(jìn)行此任務(wù)。HH:MM YYYY-MM-DD ex 04:00 2009-03-17

強(qiáng)制規(guī)定在某年某月的某一天的特殊時刻進(jìn)行該項任務(wù)。 HH:MM[am|pm] [Month] [Date]ex 04pm March 17

也是一樣,強(qiáng)制在某年某月某日的某時刻進(jìn)行該項任務(wù) HH:MM[am|pm] + number [minutes|hours|days|weeks]

ex now + 5 minutes

ex 04pm + 3 days

就是說,在某個時間點再加幾個時間后才進(jìn)行該項任務(wù)。

inux at命令如何保存退出:輸入"at 指定的時間"之后回車,然后輸入要運行的命令,回車,按組合鍵Ctrl+D

4.使用實例:

4.1 三天后的下午5點鍾執(zhí)行/bin/ls

命令:at 5pm+3 days

[moiaopr@CNSZ443239 ~]$ at 5pm+3 days

at /bin/ls

at

at

job 9 at 2016-11-24 17:00

4.2 明天17點鐘,輸出時間到指定文件內(nèi)

命令:at 17:20 tomorrow

[moiaopr@CNSZ443239 ~]$ at 17:20 tomorrow

at ls test01.txt

at

job 10 at 2016-11-22 17:20

4.3 計劃任務(wù)設(shè)定后,在沒有執(zhí)行之前我們可以用atq命令來查看系統(tǒng)沒有執(zhí)行工作任務(wù)

命令:atq

[moiaopr@CNSZ443239 ~]$ atq

3 2016-11-24 17:00 a moiaopr

10 2016-11-22 17:20 a moiaopr

9 2016-11-24 17:00 a moiaopr

4 2016-11-21 22:00 a moiaopr

5 2016-11-24 17:00 a moiaopr

4.4 顯示已經(jīng)設(shè)置的任務(wù)內(nèi)容

命令:at -c 8

[moiaopr@CNSZ443239 ~]$ atq

11 2016-11-21 16:55 a moiaopr

[moiaopr@CNSZ443239 ~]$ at -c 11

!/bin/sh

atrun uid=4010 gid=3020

mail moiaopr 0

umask 27

......

4.5 刪除已經(jīng)設(shè)置的任務(wù)

命令:atrm 7

[moiaopr@CNSZ443239 ~]$ atq

3 2016-11-24 17:00 a moiaopr

9 2016-11-24 17:00 a moiaopr

4 2016-11-21 22:00 a moiaopr

5 2016-11-24 17:00 a moiaopr

6 2016-11-22 17:00 a moiaopr

1 2016-11-24 17:00 a moiaopr

7 2016-11-21 16:37 a moiaopr

2 2016-11-24 17:00 a moiaopr

[moiaopr@CNSZ443239 ~]$ atrm 9

[moiaopr@CNSZ443239 ~]$ atrm 7

[moiaopr@CNSZ443239 ~]$ atrm 6

[moiaopr@CNSZ443239 ~]$ atrm 5

[moiaopr@CNSZ443239 ~]$ atrm 4

[moiaopr@CNSZ443239 ~]$ atq

3 2016-11-24 17:00 a moiaopr

1 2016-11-24 17:00 a moiaopr

2 2016-11-24 17:00 a moiaopr

5.atd的啟動與at運行的方式:

5.1 atd 的啟動

要使用一次性計劃任務(wù)時,我們的 Linux 系統(tǒng)上面必須要有負(fù)責(zé)這個計劃任務(wù)的服務(wù),那就是 atd 服務(wù)。

不過的方法很簡單,就是這樣:

并非所有的 Linux distributions都默認(rèn)會把他打開的,所以,某些時刻我們需要手動將atd 服務(wù)激活才行。

激活

命令:

/etc/init.d/atd start

/etc/init.d/atd restart

說明:

/etc/init.d/atd start 沒有啟動的時候,直接啟動atd服務(wù)

/etc/init.d/atd restart 服務(wù)已經(jīng)啟動后,重啟atd服務(wù)

5.2 配置一下啟動時就啟動這個服務(wù),免得每次重新啟動都得再來一次

命令:

chkconfig atd on

輸出:

[root@localhost /]# chkconfig atd on

[root@localhost /]#

5.3 at 的運行方式

既然是計劃任務(wù),那么應(yīng)該會有任務(wù)執(zhí)行的方式,并且將這些任務(wù)排進(jìn)行程表中。那么產(chǎn)生計劃任務(wù)的方式是怎么進(jìn)行的?

事實上,我們使用at這個命令來產(chǎn)生所要運行的計劃任務(wù),并將這個計劃任務(wù)以文字檔的方式寫入/var/spool/at/目錄內(nèi),該工作便能等待 atd 這個服務(wù)的取用與運行了。就這么簡單。不過,并不是所有的人都可以進(jìn)行 at 計劃任務(wù)。為什么? 因為系統(tǒng)安全的原因。很多主機(jī)被所謂的攻擊破解后,最常發(fā)現(xiàn)的就是他們的系統(tǒng)當(dāng)中多了很多的黑客程序,這些程序非常可能運用一些計劃任務(wù)來運行或搜集你的系統(tǒng)運行信息,并定時的發(fā)送給黑客。 所以,除非是你認(rèn)可的帳號,否則先不要讓他們使用 at 命令。那怎么達(dá)到使用 at 的可控呢?

我們可以利用 /etc/at.allow 與 /etc/at.deny 這兩個文件來進(jìn)行 at 的使用限制。加上這兩個文件后, at 的工作情況是這樣的:

先找尋 /etc/at.allow 這個文件,寫在這個文件中的使用者才能使用 at ,沒有在這個文件中的使用者則不能使用 at (即使沒有寫在 at.deny 當(dāng)中);

如果 /etc/at.allow 不存在,就尋找 /etc/at.deny 這個文件,若寫在這個 at.deny 的使用者則不能使用 at ,而沒有在這個 at.deny 文件中的使用者,就可以使用 at 命令了。

如果兩個文件都不存在,那么只有 root 可以使用 at 這個命令。

透過這個說明,我們知道 /etc/at.allow 是管理較為嚴(yán)格的方式,而 /etc/at.deny 則較為松散 (因為帳號沒有在該文件中,就能夠運行 at 了)。在一般的 distributions 當(dāng)中,

由于假設(shè)系統(tǒng)上的所有用戶都是可信任的, 因此系統(tǒng)通常會保留一個空的 /etc/at.deny 文件,意思是允許所有人使用 at 命令的意思 (您可以自行檢查一下該文件)。

不過,萬一你不希望有某些使用者使用 at 的話,將那個使用者的帳號寫入 /etc/at.deny 即可! 一個帳號寫一行

linux中at的執(zhí)行結(jié)果放在哪里

之前說了使用crontab實現(xiàn)定時執(zhí)行任務(wù),假如我們只是想要讓特定任務(wù)運行一次,那么,這時候就要用到at監(jiān)控程序了。

一、at服務(wù)

cron是一個linux下 的定時執(zhí)行工具,可以在無需人工干預(yù)的情況下運行作業(yè)。

service atd start? ? //啟動服務(wù)

service atd ?stop? ???//關(guān)閉服務(wù)

service atd restart??//重啟服務(wù)

service atd reload? ?//重新載入配置

service atd status? ?//查看服務(wù)狀態(tài)?

二、at在配置文件:

at類似打印進(jìn)程,會把任務(wù)放到/var/spool/at目錄中,到指定時間運行它 。at命令相當(dāng)于另一個shell,運行at time命令時,它發(fā)送一個個命令,可以輸入任意命令或者程序。

三、參數(shù)詳解

at [-V] [-q x] [-f file] [-mldbv] time

at -c job ...

atq [-V] [-q x]

atrm [-V] job ...

-V : 印出版本編號?

-q : 使用指定的佇列(Queue)來儲存,at 的資料是存放在所謂的 queue 中,使用者可以同時使用多個 queue,而 queue 的編號為 a, b, c... z 以及 A, B, ... Z 共 52 個?

-m : 即使程序/指令執(zhí)行完成后沒有輸出結(jié)果, 也要寄封信給使用者?

-f file : 讀入預(yù)先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案后再一次讀入?網(wǎng)絡(luò)應(yīng)用

-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)?

-d : 刪除指定 (使用者也可以直接使用 atrm 而不用 at -d)?

-v : 列出所有已經(jīng)完成但尚未刪除的指定?

at命令執(zhí)行流程

# at 2:05 tomorrow

at/home/kyle/do_job

at Ctrl+D

AT Time中的時間表示方法

-----------------------------------------------------------------------

時 間 例子 說明

-----------------------------------------------------------------------

Minute? ? at now + 5 minutes? ?任務(wù)在5分鐘后運行

Hour? ?? ?at now + 1 hour? ?? ?任務(wù)在1小時后運行

Days? ?? ?at now + 3 days? ?? ?任務(wù)在3天后運行

Weeks? ???at now + 2 weeks? ???任務(wù)在兩周后運行

Fixed? ???at midnight? ?? ?? ? 任務(wù)在午夜運行

Fixed? ???at 10:30pm? ?? ?? ???任務(wù)在晚上10點30分

Fixed ? ? at?23:59 12/31/2018?任務(wù)在2018年12月31號23點59分

19. Linux的at定時任務(wù)調(diào)度

與crond不同的是,at任務(wù)調(diào)度是一次性的,而crond是重復(fù)性的

1.1 at命令是一次性定時計劃任務(wù),at的守護(hù)進(jìn)程atd會以后臺模式運行,檢查作業(yè)隊列來運行

1.2 默認(rèn)情況下,atd守護(hù)進(jìn)程每60s檢查作業(yè)隊列,有作業(yè)時,會檢查作業(yè)運行時間,如果時間與當(dāng)前時間匹配,則運行此作業(yè)

1.3 at命令是一次性定時計劃任務(wù),執(zhí)行完一個任務(wù)后就不再執(zhí)行這個任務(wù)了

1.4 在使用at命令的時候,一定要保證atd進(jìn)程的啟動,可以使用相關(guān)指令查看

ps -ef | grep atd 可以檢查atd是否在運行

at [選項] [時間]

按兩次 ctrl+d 結(jié)束at命令的輸入

4.1 當(dāng)天的hh:mm(小時:分鐘),假如這個時間已經(jīng)過去,那么就第二天的這個時間執(zhí)行。例如04:00

4.2 模糊的詞語,例如midnight、noon、teatime(下午茶時間,16:00左右)

4.3 采用12小時計時制,例如8am

4.4 指定執(zhí)行命令的具體日期,格式為month dat(月 日)或者mm/dd/yy或者dd.mm.yy,指定的日期必須跟著寫在在指定時間的后面,例如:04:00 2021-3-1就是2021年3月1日凌晨4點整執(zhí)行

4.5 相對計時法,指定格式為now + count time-units,now就是當(dāng)前時間,time-units是時間單位,可以是minutes、hours、days、weeks。count是時間的數(shù)量,例如:now + 5 minutes

4.6 直接用today、tomorrow來指定完成命令的時間

5.1 2天后的下午5點,執(zhí)行/bin/ls /home指令

at 5pm + 2 days 按回車鍵

然后寫下那個時刻要執(zhí)行命令 /bin/ls /home

最后按兩次ctrl+d退出at指令

5.2 atq指令可以直接執(zhí)行,查看系統(tǒng)中待執(zhí)行的工作任務(wù)

5.3 明天17:00輸出時間到指定文件內(nèi) /root/date100.log

at 17:00 tomorrow 按回車鍵

date /root/date100.log

按兩次ctrl+d退出at指令的輸入

5.4 2分鐘后

at now + 2 minutes

5.5 刪除已經(jīng)設(shè)置的任務(wù),atrm 編號

可以用atq列出待執(zhí)行的任務(wù),列出后第一列就是job編號

linux.at 命令怎么用

一次性定時計劃任務(wù)的at命令的用法!

1.命令格式:

at[參數(shù)][時間]

2.命令功能:

在一個指定的時間執(zhí)行一個指定任務(wù),只能執(zhí)行一次,且需要開啟atd進(jìn)程(

ps -ef | grep atd查看, 開啟用/etc/init.d/atd start or restart; 開機(jī)即啟動則需要運行 chkconfig --level 2345 atd on)。

3.命令參數(shù):

-m 當(dāng)指定的任務(wù)被完成之后,將給用戶發(fā)送郵件,即使沒有標(biāo)準(zhǔn)輸出

-I atq的別名

-d atrm的別名

-v 顯示任務(wù)將被執(zhí)行的時間

-c 打印任務(wù)的內(nèi)容到標(biāo)準(zhǔn)輸出

-V 顯示版本信息

-q列隊 使用指定的列隊

-f文件 從指定文件讀入任務(wù)而不是從標(biāo)準(zhǔn)輸入讀入

-t時間參數(shù) 以時間參數(shù)的形式提交要運行的任務(wù) 《Linux就該這么學(xué)》

使用實例:

實例1:三天后的下午 5 點鍾執(zhí)行 /bin/ls

命令:

at 5pm+3 days

輸出:

[root@localhost ~]# at 5pm+3 days

at /bin/ls

at EOT

job 7 at 2013-01-08 17:00

[root@localhost ~]#

說明:

實例2:明天17點鐘,輸出時間到指定文件內(nèi)

命令:

at 17:20 tomorrow

輸出:

[root@localhost ~]# at 17:20 tomorrow

at date /root/2013.log

at EOT

job 8 at 2013-01-06 17:20

網(wǎng)頁題目:linux下at命令詳解的簡單介紹
文章位置:http://muchs.cn/article12/doecggc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、定制網(wǎng)站面包屑導(dǎo)航、移動網(wǎng)站建設(shè)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司