linux结束所有任务命令行,Linux基础命令(15)定时任务
釋放雙眼,帶上耳機(jī),聽(tīng)聽(tīng)看~!
crontad
Linux定時(shí)任務(wù)Crontab命令詳解
linux 系統(tǒng)則是由 cron (crond) 這個(gè)系統(tǒng)服務(wù)來(lái)控制的。Linux 系統(tǒng)上面原本就有非常多的計(jì)劃性工作,因此這個(gè)系統(tǒng)服務(wù)是默認(rèn)啟動(dòng)的。另 外, 由于使用者自己也可以設(shè)置計(jì)劃任務(wù),所以, Linux 系統(tǒng)也提供了使用者控制計(jì)劃任務(wù)的命令 :crontab 命令。
Linux crontab是用來(lái)定期執(zhí)行程序的命令。
當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。
crond 命令每分鍾會(huì)定期檢查是否有要執(zhí)行的工作,如果有要執(zhí)行的工作便會(huì)自動(dòng)執(zhí)行該工作。
注意:新創(chuàng)建的 cron 任務(wù),不會(huì)馬上執(zhí)行,至少要過(guò) 2 分鐘后才可以,當(dāng)然你可以重啟 cron 來(lái)馬上執(zhí)行。
而 linux 任務(wù)調(diào)度的工作主要分為以下兩類:
1、系統(tǒng)執(zhí)行的工作:系統(tǒng)周期性所要執(zhí)行的工作,如備份系統(tǒng)數(shù)據(jù)、清理緩存,在/etc目錄下有一個(gè)crontab文件,這個(gè)就是系統(tǒng)任務(wù)調(diào)度的配置文件。
2、個(gè)人執(zhí)行的工作:某個(gè)用戶定期要做的工作,例如每隔10分鐘檢查郵件服務(wù)器是否有新信,這些工作可由每個(gè)用戶自行設(shè)置
/etc/crontab文件包括下面幾行:
前三行是用來(lái)配置crond任務(wù)運(yùn)行的環(huán)境變量,第一行SHELL變量指定了系統(tǒng)要使用哪個(gè)shell,這里是bash,第二行PATH變量指定了系統(tǒng)執(zhí)行 命令的路徑,第三行MAILTO變量指定了crond的任務(wù)執(zhí)行信息將通過(guò)電子郵件發(fā)送給root用戶,如果MAILTO變量的值為空,則表示不發(fā)送任務(wù) 執(zhí)行信息給用戶,其他將在后續(xù)講到。
用戶所建立的crontab文件中,每一行都代表一項(xiàng)任務(wù),每行的每個(gè)字段代表一項(xiàng)設(shè)置,它的格式共分為六個(gè)字段,前五段是時(shí)間設(shè)定段,第六段是要執(zhí)行的命令段,格式如下:
minute hour day month week command
minute: 表示分鐘,可以是從0到59之間的任何整數(shù)。
hour:表示小時(shí),可以是從0到23之間的任何整數(shù)。
day:表示日期,可以是從1到31之間的任何整數(shù)。
month:表示月份,可以是從1到12之間的任何整數(shù)。
week:表示星期幾,可以是從0到7之間的任何整數(shù),這里的0或7代表星期日。
command:要執(zhí)行的命令,可以是系統(tǒng)命令,也可以是自己編寫(xiě)的腳本文件。
在以上各個(gè)字段中,還可以使用以下特殊字符:
星號(hào)(*):代表所有可能的值,例如month字段如果是星號(hào),則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作。
逗號(hào)(,):可以用逗號(hào)隔開(kāi)的值指定一個(gè)列表范圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數(shù)之間的中杠表示一個(gè)整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時(shí)間的間隔頻率,例如“0-23/2”表示每?jī)尚r(shí)執(zhí)行一次。同時(shí)正斜線可以和星號(hào)一起使用,例如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次
crond服務(wù)
安裝crontab:
yum install crontabs
服務(wù)操作說(shuō)明:
service crond start //啟動(dòng)服務(wù)
service crond stop //關(guān)閉服務(wù)
service crond restart //重啟服務(wù)
service crond reload //重新載入配置
service crond status //查看服務(wù)狀態(tài)
systemctl enable crond.service//設(shè)為開(kāi)機(jī)自啟
crontab命令詳解
1.命令格式:
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
2.命令功能:
通過(guò)crontab 命令,我們可以在固定的間隔時(shí)間執(zhí)行指定的系統(tǒng)指令或 shell script腳本。時(shí)間間隔的單位可以是分鐘、小時(shí)、日、月、周及以上的任意組合。這個(gè)命令非常設(shè)合周期性的日志分析或數(shù)據(jù)備份等工作。
3.命令參數(shù):
-u user:用來(lái)設(shè)定某個(gè)用戶的crontab服務(wù),例如,“-u ixdba”表示設(shè)定ixdba用戶的crontab服務(wù),此參數(shù)一般有root用戶來(lái)運(yùn)行。
file:file是命令文件的名字,表示將file做為crontab的任務(wù)列表文件并載入crontab。如果在命令行中沒(méi)有指定這個(gè)文件,crontab命令將接受標(biāo)準(zhǔn)輸入(鍵盤(pán))上鍵入的命令,并將它們載入crontab。
-e:編輯某個(gè)用戶的crontab文件內(nèi)容。如果不指定用戶,則表示編輯當(dāng)前用戶的crontab文件(可用于增加定時(shí)任務(wù))。
-l:顯示某個(gè)用戶的crontab文件內(nèi)容,如果不指定用戶,則表示顯示當(dāng)前用戶的crontab文件內(nèi)容。
-r:從/var/spool/cron目錄中刪除某個(gè)用戶的crontab文件,如果不指定用戶,則默認(rèn)刪除當(dāng)前用戶的crontab文件。
-i:在刪除用戶的crontab文件時(shí)給確認(rèn)提示。
實(shí)例
1.先用crontab -e編輯crond定時(shí)任務(wù),增加“* * * * * ls>/root/test/11.txt”指的是每分鐘執(zhí)行一次ls命令,并將輸出寫(xiě)入/root/test/11.txt,然后保存退出,用service crond restart重啟crond服務(wù)讓任務(wù)即時(shí)生效,等一會(huì)兒看見(jiàn)多出11.txt文件,cat文件可以看出ls的內(nèi)容。
2.每月每天的午夜 0 點(diǎn) 20 分, 2 點(diǎn) 20 分, 4 點(diǎn) 20 分….執(zhí)行 echo “haha”
20 0-23/2 * * * echo “haha”
3.下面再看看幾個(gè)具體的例子:
0 */2 * * * /sbin/service httpd restart 意思是每?jī)蓚€(gè)小時(shí)重啟一次apache
50 7 * * * /sbin/service sshd start 意思是每天7:50開(kāi)啟ssh服務(wù)
50 22 * * * /sbin/service sshd stop 意思是每天22:50關(guān)閉ssh服務(wù)
1 * * * * /home/bruce/backup 每小時(shí)的第一分執(zhí)行 /home/bruce/backup這個(gè)文件
00 03 * * 1-5 find /home “*.xxx” -mtime +4 -exec rm {} \; 每周一至周五3點(diǎn)鐘,在目錄/home中,查找文件名為*.xxx的文件,并刪除4天前的文件。
30 6 */10 * * ls 意思是每月的1、11、21、31日是的6:30執(zhí)行一次ls命令
腳本無(wú)法執(zhí)行問(wèn)題
如果我們使用 crontab 來(lái)定時(shí)執(zhí)行腳本,無(wú)法執(zhí)行,但是如果直接通過(guò)命令(如:./test.sh)又可以正常執(zhí)行,這主要是因?yàn)闊o(wú)法讀取環(huán)境變量的原因。
解決方法:
1、所有命令需要寫(xiě)成絕對(duì)路徑形式,如:?/usr/local/bin/docker。
2、在 shell 腳本開(kāi)頭使用以下代碼:
#!/bin/sh
. /etc/profile
. ~/.bash_profile
3、在?/etc/crontab?中添加環(huán)境變量,在可執(zhí)行命令之前添加命令?. /etc/profile;/bin/sh,使得好幾遍了生效
例如:20 03 * * * . /etc/profile;/bin/sh /var/www/runoob/test.sh
at
前言:
at命令是一次性定時(shí)計(jì)劃任務(wù),at的守護(hù)進(jìn)程atd會(huì)以后臺(tái)模式運(yùn)行,檢查作業(yè)隊(duì)列來(lái)運(yùn)行作業(yè)。atd守護(hù)進(jìn)程會(huì)檢查系統(tǒng)上的一個(gè)特殊目錄來(lái)獲取at命令的提交的作業(yè),默認(rèn)情況下,atd守護(hù)進(jìn)程每60秒檢查一次目錄,有作業(yè)時(shí),會(huì)檢查作業(yè)運(yùn)行時(shí)間,如果時(shí)間與當(dāng)前時(shí)間匹配,則運(yùn)行此作業(yè)。
注意:at命令是一次性定時(shí)計(jì)劃任務(wù),執(zhí)行完一個(gè)任務(wù)后不再執(zhí)行此任務(wù)了。
at命令格式
at?[選項(xiàng)]?[時(shí)間]
Ctrl?+?D??結(jié)束at命令的輸入
在使用at命令的時(shí)候,一定要保證atd進(jìn)程的啟動(dòng)。
[root@vms002?/]#?ps?-ef|grep?-v?grep|grep?atd
rpcuser????1550??????1??0?6月10?????????00:00:00?/usr/sbin/rpc.statd?–no-notify
root???????1552??????1??0?6月10?????????00:00:00?/usr/sbin/atd?-f
at命令參數(shù)
選項(xiàng)含義
-m當(dāng)指定的任務(wù)被完成后,將給用戶發(fā)送郵件,即使沒(méi)有標(biāo)準(zhǔn)輸出
-Iatq的別名
-datrm的別名
-v顯示任務(wù)將被執(zhí)行的時(shí)間
-c打印任務(wù)的內(nèi)容到標(biāo)準(zhǔn)輸出
-V顯示版本信息
-q 使用指定的隊(duì)列
-f 從指定文件讀入任務(wù)而不是從標(biāo)準(zhǔn)輸入讀入
-t 以時(shí)間參數(shù)的形式提交要運(yùn)行的任務(wù)
時(shí)間定義
at允許使用一套相當(dāng)復(fù)雜的指定時(shí)間的方法:
● 能夠接受在當(dāng)天的hh:mm(小時(shí):分鐘)式的時(shí)間指定。假如該時(shí)間已過(guò)去,那么就放在第二天執(zhí)行。 例如:04:00
● 能夠使用midnight(深夜),noon(中午),teatime(飲茶時(shí)間,一般是下午4點(diǎn))等比較模糊的詞語(yǔ)來(lái)指定時(shí)間。
● 能夠采用12小時(shí)計(jì)時(shí)制,即在時(shí)間后面加上AM(上午)或PM(下午)來(lái)說(shuō)明是上午還是下午。 例如:12pm
● 能夠指定命令執(zhí)行的具體日期,指定格式為month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必須跟在指定時(shí)間的后面。 例如:04:00 2009-03-1
● 能夠使用相對(duì)計(jì)時(shí)法。指定格式為:now + count time-units ,now就是當(dāng)前時(shí)間,time-units是時(shí)間單位,這里能夠是minutes(分鐘)、hours(小時(shí))、days(天)、weeks(星期)。count是時(shí)間的數(shù)量,幾天,幾小時(shí)。 例如:now + 5 minutes 04pm + 3 days
● 能夠直接使用today(今天)、tomorrow(明天)來(lái)指定完成命令的時(shí)間。
相關(guān)命令
1.at:在特定的時(shí)間執(zhí)行一次性的任務(wù);
2.atq:列出用戶的計(jì)劃任務(wù),如果是超級(jí)用戶將列出所有用戶的任務(wù),結(jié)果的輸出格式為:作業(yè)號(hào)、日期、小時(shí)、隊(duì)列和用戶名;
3.atrm:根據(jù)job number刪除at任務(wù);
4.batch:在系統(tǒng)負(fù)荷允許的情況下執(zhí)行at任務(wù),就是在系統(tǒng)空閑的情況下才執(zhí)行at任務(wù)。
創(chuàng)建at任務(wù)
創(chuàng)建at任務(wù)方式有兩種,從文件輸入和從控制臺(tái)輸入。以下分別用兩種方式創(chuàng)建1分鐘后將當(dāng)前時(shí)間寫(xiě)入 home/result 文件的命令
1、從文件輸入
2、從命令行輸入
注意此處的是ctrl+d 按鍵結(jié)束
atq 和 atrm命令
atq查看at定時(shí)隊(duì)列命令,atrm刪除某個(gè)定時(shí)任務(wù)命令.
總結(jié)
以上是生活随笔為你收集整理的linux结束所有任务命令行,Linux基础命令(15)定时任务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 第四套人民币什么时候退市?
- 下一篇: 庄家常见的几种出货方式?