真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux定時(shí)啟動(dòng)命令 linux啟動(dòng)定時(shí)任務(wù)

linux下怎么定時(shí)開(kāi)機(jī)

此功能需要在BIOS中設(shè)定,并且你的主板的高級(jí)電源管理設(shè)置必須支持這個(gè)功能,不過(guò)現(xiàn)在多數(shù)的主板全支持。

城口網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),城口網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為城口近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的城口做網(wǎng)站的公司定做!

(1)步驟一: 啟動(dòng)系統(tǒng)按DEL,進(jìn)入BIOS,然后選中 "POWER MANAGEMENT FEATURES" (電源管理設(shè)置),回車(chē)進(jìn)入.在電源窗口中找到"RESTORE ON AC/POWER LOSS"項(xiàng),按回車(chē),然后通過(guò)方向鍵設(shè)置其值為"POWER ON"。

(2)步驟二: 選中"RESUME ON RTC ALARM"并按回車(chē),接著通過(guò)方向鍵設(shè)置其值為"ENABLE"

(3)步驟三: 選中"RTC ALARM DATE"按回車(chē),然后將其值設(shè)定為"EVERYDAY",表示每天都進(jìn)行一樣的操作,按照同樣的方法,分別將"RTC ALARM HOURS""RTC ALARM MINUTE""RTM ALARM SECOND"設(shè)置為"12""30""00"。由于在linux系統(tǒng)下主板的時(shí)間與系統(tǒng)的時(shí)間不一致。這表示開(kāi)機(jī)時(shí)間為早上的"8:30:00",全部設(shè)置好后,按F10,保存并重新啟動(dòng).

Linux設(shè)置定時(shí)任務(wù)

《使用PSSH批量管理Linux》 一文中,已經(jīng)學(xué)習(xí)了使用pssh批量管理linux的技巧。而很多時(shí)候,我們需要定時(shí)執(zhí)行一些任務(wù),或者需要定時(shí)執(zhí)行一些批量任務(wù)。因此,本文就來(lái)研究一下linux設(shè)置定時(shí)任務(wù)的方法。

主要參考 Linux Crontab 定時(shí)任務(wù) 、 Linux定時(shí)任務(wù)Crontab命令詳解 和 Linux 定時(shí)任務(wù)詳解 。

cron(crond)是linux下用來(lái)周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個(gè)守護(hù)進(jìn)程。linux系統(tǒng)上面原本就有非常多的計(jì)劃性工作,因此這個(gè)系統(tǒng)服務(wù)是默認(rèn)啟動(dòng)的。crond進(jìn)程每分鐘會(huì)定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動(dòng)執(zhí)行該任務(wù)。另外,由于使用者自己也可以設(shè)置計(jì)劃任務(wù),所以,linux系統(tǒng)也提供了使用者控制計(jì)劃任務(wù)的命令:crontab命令。

crontab命令是cron table的簡(jiǎn)寫(xiě),它是cron的配置文件,也可以叫它作業(yè)列表,我們可以在以下文件夾內(nèi)找到相關(guān)配置文件。

linux下的任務(wù)調(diào)度分為兩類,系統(tǒng)任務(wù)調(diào)度和用戶任務(wù)調(diào)度。

系統(tǒng)任務(wù)調(diào)度:系統(tǒng)周期性所要執(zhí)行的工作,比如寫(xiě)緩存數(shù)據(jù)到硬盤(pán)、日志清理等。 /etc/crontab 文件就是系統(tǒng)任務(wù)調(diào)度的配置文件。

用戶任務(wù)調(diào)度:用戶定期要執(zhí)行的工作,比如用戶數(shù)據(jù)備份、定時(shí)郵件提醒等。用戶可以使用 crontab 工具來(lái)定制自己的計(jì)劃任務(wù)。所有用戶定義的crontab文件都被保存在 /var/spool/cron/crontabs/ 目錄中,其文件名與用戶名一致。

假設(shè)我們使用的是Ubuntu14.04.5 Server版,查看 /etc/crontab ,內(nèi)容為:

第一行SHELL變量指定了系統(tǒng)要使用哪個(gè)shell;第二行PATH變量指定了系統(tǒng)執(zhí)行 命令的路徑。

接下來(lái)的命令格式為:

m h dom mon dow user command

英文全拼為:

minute hour day month week user commond

注意, /var/spool/cron 目錄中的用戶調(diào)度任務(wù),沒(méi)有user一項(xiàng),因?yàn)槲募呀?jīng)代表了user。

在以上各個(gè)字段中,還可以使用以下特殊字符:

crontab命令格式為:

crontab [-u username] [file] [ -e | -l | -r ]

設(shè)置定時(shí)任務(wù)和時(shí)間緊密相關(guān),如果服務(wù)器的時(shí)區(qū)時(shí)間設(shè)置和本地不同,就不能保證計(jì)劃任務(wù)的正確執(zhí)行。所以使用crontab的第一步,是調(diào)節(jié)好服務(wù)器的時(shí)間。

下面參考 Ubuntu 16.04將系統(tǒng)時(shí)間寫(xiě)入到硬件時(shí)間BIOS ,對(duì)服務(wù)器時(shí)間進(jìn)行調(diào)節(jié)。

時(shí)間是有時(shí)區(qū)的,無(wú)論硬件時(shí)間還是操作系統(tǒng)時(shí)間。hwclock的時(shí)區(qū)在/etc/default/rcS文件中設(shè)置,里面有一個(gè)參數(shù)UTC,默認(rèn)值為yes,表示使用UTC時(shí)區(qū),如果設(shè)置為no,那表示使用osclock的時(shí)區(qū)。建議hwclock與osclock設(shè)置相同的時(shí)區(qū),也就是no。

1、查看服務(wù)器硬件時(shí)間

sudo hwclock -r ,看到的時(shí)間格式為: Wed 23 May 2018 11:02:17 AM HKT -0.031663 seconds

2、查看服務(wù)器系統(tǒng)時(shí)間

date ,看到的時(shí)間格式為: Wed May 23 11:02:41 HKT 2018

3、設(shè)置hwclock和osclock時(shí)區(qū)相同

sudo vim /etc/default/rcS ,找到:

修改為:

4、將系統(tǒng)時(shí)間寫(xiě)入硬件時(shí)間

sudo hwclock -w

5、修改系統(tǒng)時(shí)區(qū)

osclock的時(shí)區(qū)配置文件為/etc/timezone,不建議直接修改配置文件。

如果你想修改為CST時(shí)間,那么執(zhí)行 sudo tzselect 命令時(shí),選擇Asia-China-Beijing Time即可,這時(shí)會(huì)提示使用Asia/Shanghai時(shí)區(qū)。(ubuntu和centos通用)

6、設(shè)置即刻生效

執(zhí)行 date ,發(fā)現(xiàn)時(shí)區(qū)沒(méi)有變化,依然是HKT。

sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

sudo ntpdate time.windows.com

如果執(zhí)行ntpdate報(bào)錯(cuò):ntpdate[18409]: no server suitable for synchronization found ,那么就換一個(gè)時(shí)間同步工具。

sudo apt-get install rdate

sudo rdate -s time-b.nist.gov

再次執(zhí)行 date ,發(fā)現(xiàn)時(shí)區(qū)已經(jīng)變成了CST。

7、硬件時(shí)間同步

sudo hwclock -r ,發(fā)現(xiàn)硬件時(shí)間落后。

sudo hwclock -w ,再次把系統(tǒng)時(shí)間寫(xiě)入硬件時(shí)間,同步完成。

實(shí)例1:每分鐘、每小時(shí)、每天、每周、每月、每年執(zhí)行

實(shí)例2:每小時(shí)的第3和第15分鐘執(zhí)行

3,15 * * * * myCommand

實(shí)例3:在上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行

3,15 8-11 * * * myCommand

實(shí)例4:每隔兩天的上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行

3,15 8-11 */2 * * myCommand

實(shí)例5:每周一上午8點(diǎn)到11點(diǎn)的第3和第15分鐘執(zhí)行

3,15 8-11 * * 1 myCommand

實(shí)例6:每晚的21:30重啟smb

30 21 * * * /etc/init.d/smb restart

實(shí)例7:每月1、10、22日的4 : 45重啟smb

45 4 1,10,22 * * /etc/init.d/smb restart

實(shí)例8:每周六、周日的1 : 10重啟smb

10 1 * * 6,0 /etc/init.d/smb restart

實(shí)例9:每天18 : 00至23 : 00之間每隔30分鐘重啟smb

0,30 18-23 * * * /etc/init.d/smb restart

實(shí)例10:每星期六的晚上11 : 00 pm重啟smb

0 23 * * 6 /etc/init.d/smb restart

實(shí)例11:每一小時(shí)重啟smb

0 * * * * /etc/init.d/smb restart

實(shí)例12:晚上11點(diǎn)到早上7點(diǎn)之間,每隔一小時(shí)重啟smb

0 23-7/1 * * * /etc/init.d/smb restart

實(shí)例13:每月的4號(hào)與每周一到周三的11點(diǎn)重啟smb

0 11 4 * mon-wed /etc/init.d/smb restart

實(shí)例14:一月一號(hào)的4點(diǎn)重啟smb

0 4 1 jan * /etc/init.d/smb restart

實(shí)例15:每小時(shí)執(zhí)行/etc/cron.hourly目錄內(nèi)的腳本

01 * * * * root run-parts /etc/cron.hourly

run-parts這個(gè)參數(shù)了,如果去掉這個(gè)參數(shù)的話,后面就可以寫(xiě)要運(yùn)行的某個(gè)腳本名,而不是目錄名了。

目標(biāo):每分鐘查看一下ganglia的狀態(tài),并保存到/tmp/log/ganglia目錄。

1、創(chuàng)建/tmp/log/ganglia目錄

sudo mkdir -p /tmp/log/ganglia

sudo chmod a+w /tmp/log/ganglia

2、編輯crontab

crontab -e ,選擇編輯器為vim

3、在crontab文件中添加一行

4、查看crontab任務(wù)

crontab -l ,看到任務(wù)已經(jīng)添加成功。

5、等待了五分鐘,發(fā)現(xiàn)/tmp/log/ganglia目錄下啥也沒(méi)有。

sudo service cron status ,狀態(tài)正常。

sudo /etc/init.d/cron restart ,重啟cron試試。

又等待了五分鐘,發(fā)現(xiàn)/tmp/log/ganglia目錄下依然空空。

莫非是因?yàn)閜ssh沒(méi)有使用絕對(duì)路徑? whereis pssh ,找到pssh路徑為 /usr/lib/pssh ,修改crontab為:

然而,并沒(méi)有用。

還是查看下crontab日志吧!

以下主要參考 Ubuntu下用crontab 部署定時(shí)任務(wù) 。

1、編輯50-default.conf

sudo vim /etc/rsyslog.d/50-default.conf

2、把cron前的井號(hào)去掉,也就是修改為:

3、重啟rsyslog服務(wù)

sudo service rsyslog restart

4、重啟crontab服務(wù)

sudo service cron restart

5、查看crontab日志

less /var/log/cron.log

果然發(fā)現(xiàn)了問(wèn)題:

也就是說(shuō),命令確實(shí)按時(shí)執(zhí)行了,只不過(guò)沒(méi)有執(zhí)行完,被百分號(hào)截?cái)嗔?,?dǎo)致log文件沒(méi)有正常生成!

修改crontab為:

終于,log文件成功生成,nice!但是,文件內(nèi)容是空的!因?yàn)椋?/usr/lib/pssh 是一個(gè)目錄,不是pssh命令!真正的pssh命令是parallel-ssh,找到它的位置為 /usr/bin/parallel-ssh ,修改crontab:

至此,問(wèn)題圓滿解決。

實(shí)際使用的時(shí)候,一天獲取一次ganglia的狀態(tài)就夠了,所以crontab改成:

以上,每天執(zhí)行一次定時(shí)任務(wù),抓取ganglia的運(yùn)行狀態(tài)保存到日志文件中。緊接著,我們的目標(biāo)是使用腳本檢查當(dāng)天的日志文件,如果發(fā)現(xiàn)ganglia運(yùn)行異常,則產(chǎn)生一個(gè)錯(cuò)誤日志。

1、假設(shè)日志文件ganglia-20180524.log的內(nèi)容為:

2、參考 grep命令最經(jīng)常使用的功能總結(jié) ,編寫(xiě)腳本checkganglia.sh

3、執(zhí)行

chmod a+x checkganglia.sh

./checkganglia.sh

如果所有客戶機(jī)的ganglia運(yùn)行正常,就會(huì)輸出All services are runing!。如果有的客戶機(jī)ganglia進(jìn)程不存在,則會(huì)在/tmp/log/ganglia/目錄下生成當(dāng)天的錯(cuò)誤日志。

4、設(shè)置定時(shí)運(yùn)行

因?yàn)槿罩镜臋z查工作要在日志生成之后,所以時(shí)間上延后十分鐘。

上面的腳本,還有很多要改進(jìn)的地方。比如有的客戶機(jī)宕機(jī)了,上面的腳本檢查不出來(lái)。比如有的客戶機(jī)ganglia服務(wù)沒(méi)有啟動(dòng),那么具體是哪幾臺(tái)?針對(duì)這兩個(gè)問(wèn)題,下面進(jìn)行改進(jìn)。假設(shè)已經(jīng)知道客戶機(jī)的數(shù)量為10。

參考 csplit命令 ,checkganglia.sh腳本修改為:

以上腳本,實(shí)現(xiàn)了當(dāng)客戶機(jī)數(shù)量不為10的時(shí)候,進(jìn)行報(bào)錯(cuò);當(dāng)客戶機(jī)ganglia服務(wù)沒(méi)有啟動(dòng)時(shí),進(jìn)行報(bào)錯(cuò),并且篩選出所有沒(méi)有啟動(dòng)ganglia的客戶機(jī)。

本文中,我們先學(xué)習(xí)了crontab的基礎(chǔ)知識(shí)和基本用法。然后通過(guò)監(jiān)控ganglia這一個(gè)應(yīng)用場(chǎng)景來(lái)具體學(xué)習(xí)crontab的詳細(xì)使用方法,包括查看cron日志的方法,crontab中命令轉(zhuǎn)義的方法,定時(shí)執(zhí)行腳本的方法,以及審閱日志腳本的編寫(xiě)和進(jìn)階。

至此,還不夠完美,因?yàn)槲覀冃枰刻斓卿浌芾頇C(jī)查看有沒(méi)有錯(cuò)誤日志。下一篇 Linux設(shè)置郵件提醒 中,我們將會(huì)研究linux設(shè)置郵件提醒的方法。審閱完日志后,如果腳本能夠給我們發(fā)送一封郵件,告知我們審閱的結(jié)果,那么我們就不必再每天查看錯(cuò)誤日志。

Linux crontab命令:開(kāi)啟定時(shí)任務(wù)

vixie-cron 軟件包是 cron 的主程序;

crontabs 軟件包是用來(lái)安裝、卸裝、或列舉用來(lái)驅(qū)動(dòng) cron 守護(hù)進(jìn)程的表格的程序。

chkconfig --level 345 crond on

定時(shí)任務(wù)設(shè)置

使用以下命令打開(kāi)配置文件,編輯文件,保存即可

示例:

linux corn 在線表達(dá)式:

注意:這里的定時(shí)表達(dá)式和java中的corn不是一樣的,具體分別不細(xì)說(shuō)了。

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

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

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

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

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

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

ps -ef | grep atd 可以檢查atd是否在運(yùn)行

at [選項(xiàng)] [時(shí)間]

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

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

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

4.3 采用12小時(shí)計(jì)時(shí)制,例如8am

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

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

4.6 直接用today、tomorrow來(lái)指定完成命令的時(shí)間

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

at 5pm + 2 days 按回車(chē)鍵

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

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

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

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

at 17:00 tomorrow 按回車(chē)鍵

date /root/date100.log

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

5.4 2分鐘后

at now + 2 minutes

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

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

linux下編寫(xiě)定時(shí)任務(wù)crontab

linux下的crontab服務(wù):

1、crontab 是用來(lái)讓使用者在固定時(shí)間或固定間隔執(zhí)行程序之用

在linux平臺(tái)上如果需要實(shí)現(xiàn)任務(wù)調(diào)度功能可以編寫(xiě)cron腳本來(lái)實(shí)現(xiàn)。

以某一頻率執(zhí)行任務(wù)

linux缺省會(huì)啟動(dòng)crond進(jìn)程,crond進(jìn)程不需要用戶啟動(dòng)、關(guān)閉。

crond進(jìn)程負(fù)責(zé)讀取調(diào)度任務(wù)并執(zhí)行,用戶只需要將相應(yīng)的調(diào)度腳本寫(xiě)入cron的調(diào)度配置文件中。

cron的調(diào)度文件有以下幾個(gè):

1. crontab

2. cron.d

3. cron.daily

4. cron.hourly

5. cron.monthly

6. cron.weekly

如果用的任務(wù)不是以hourly monthly weekly方式執(zhí)行,則可以將相應(yīng)的crontab寫(xiě)入到crontab 或cron.d目錄中。

示例:

每隔一分鐘執(zhí)行一次腳本 /opt/bin/test-cron.sh

可以在cron.d新建腳本 echo-date.sh

內(nèi)容為

*/1 * * * * root /opt/bin/test-cron.sh

2、cron是一個(gè)linux下的定時(shí)執(zhí)行工具,可以在無(wú)需人工干預(yù)的情況下運(yùn)行作業(yè)。由于Cron 是Linux的內(nèi)置服務(wù),如果它不自動(dòng)起來(lái),可以用以下的方法啟動(dòng)、關(guān)閉這個(gè)服務(wù):

/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

現(xiàn)在Cron這個(gè)服務(wù)已經(jīng)在進(jìn)程里面了,我們就可以用這個(gè)服務(wù)了

查看服務(wù)是否已經(jīng)運(yùn)行用 ps -ax | grep cron

3、crontab命令

查看該用戶下的crontab服務(wù)是否創(chuàng)建成功, 用 crontab -l 命令

命令 which php 查看linux下安裝的php的路徑

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

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

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

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

crontab -e //編輯某個(gè)用戶的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

任務(wù)調(diào)度的crond常駐命令crond 是linux用來(lái)定期執(zhí)行程序的命令。當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此 任務(wù)調(diào)度命令。crond命令每分鐘會(huì)定期檢查是否有要執(zhí)行的工作,如果有要執(zhí)行的工作便會(huì)自動(dòng)執(zhí)行該工作。

crontab命令選項(xiàng):

-u指定一個(gè)用戶

-l列出某個(gè)用戶的任務(wù)計(jì)劃

-r刪除某個(gè)用戶的任務(wù)

-e編輯某個(gè)用戶的任務(wù)

4、cron文件語(yǔ)法:

分 小時(shí) 日 月 星期 命令

0-59 0-23 1-31 1-12 0-6 command (取值范圍,0表示周日一般一行對(duì)應(yīng)一個(gè)任務(wù))

5、 新增調(diào)度任務(wù)

新增調(diào)度任務(wù)可用兩種方法:

1)、在命令行輸入: crontab -e 然后添加相應(yīng)的任務(wù),wq存盤(pán)退出。

2)、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應(yīng)的任務(wù)。

6、 查看調(diào)度任務(wù)

crontab -l //列出當(dāng)前的所有調(diào)度任務(wù)

crontab -l -u jp //列出用戶jp的所有調(diào)度任務(wù)

7、 刪除任務(wù)調(diào)度工作

crontab -r //刪除所有任務(wù)調(diào)度工作

8、 任務(wù)調(diào)度執(zhí)行結(jié)果的轉(zhuǎn)向

例1:每天5:30執(zhí)行l(wèi)s命令,并把結(jié)果輸出到/jp/test文件中

30 5 * * * ls /jp/test 21

注:21 表示執(zhí)行結(jié)果及錯(cuò)誤信息。

SHELL=/bin/bash

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

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

HOME=/ //使用者運(yùn)行的路徑,這里是根目錄

# run-parts

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

  02 4 * * * root run-parts /etc/cron.daily //每天執(zhí)行/etc/cron.daily內(nèi)的腳本

22 4 * * 0 root run-parts /etc/cron.weekly //每星期執(zhí)行 /etc/cron.weekly內(nèi)的腳本

42 4 1 * * root run-parts /etc/cron.monthly //每月去執(zhí)行/etc/cron.monthly內(nèi)的腳本

  大家注意”run-parts”這個(gè)參數(shù)了,如果去掉這個(gè)參數(shù)的話,后面就可以寫(xiě)::要運(yùn)行的某個(gè)腳本名,而不是文件夾名了。

總結(jié):

編寫(xiě)定時(shí)任務(wù)的兩種方式:1.sudo vim /etc/crontab 2. sudo crontab -e

查看定時(shí)任務(wù)的兩種方式:1.sudo cat /etc/crontab 2.sudo crontab -l

*/1 * * * * appuser cd /app/webserver/website/api-cb.chuchujie.com/master/current/script/ ./back_coupon.sh 2 10 /dev/null 21

查看定時(shí)任務(wù)是否運(yùn)行:

sudo tail -f /var/log/cron //定時(shí)任務(wù)日志(查看剛才設(shè)置的任務(wù)是否執(zhí)行)

注:腳本有可執(zhí)行權(quán)限

sh a.sh(不需要執(zhí)行權(quán)限)

./sh (需要執(zhí)行權(quán)限)

1.當(dāng)shell腳本具有可執(zhí)行權(quán)限時(shí),用sh filename與./filename執(zhí)行腳本是沒(méi)有區(qū)別的。./filename是因?yàn)楫?dāng)前目錄沒(méi)有在PATH中,所有"."是用來(lái)表示當(dāng)前目錄的。

Linux下定時(shí)任務(wù)(系統(tǒng)任務(wù)調(diào)度、用戶任務(wù)調(diào)度)crontab使用詳解

crond是Linux下用來(lái)周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個(gè)守護(hù)進(jìn)程,與windows下的計(jì)劃任務(wù)類似,在CentOS Linux release 7.2.1511中默認(rèn)是開(kāi)機(jī)啟動(dòng)的,大家可以使用命令:systemctl status crond進(jìn)行查看。 crond進(jìn)程定期(每分鐘)檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動(dòng)執(zhí)行該任務(wù)。用戶在cron表

(也被稱為crontab文件)指定了定時(shí)任務(wù),crontab也就是我們常見(jiàn)的定時(shí)任務(wù)設(shè)置命令。Linux下的任務(wù)調(diào)度分為兩類,系統(tǒng)任務(wù)調(diào)度和用戶任務(wù)調(diào)度。

系統(tǒng)任務(wù)調(diào)度 :系統(tǒng)周期性所要執(zhí)行的工作,比如寫(xiě)緩存數(shù)據(jù)到硬盤(pán)、日志清理等。/etc/crontab文件就是系統(tǒng)任務(wù)調(diào)度的配置文件。

用戶任務(wù)調(diào)度 :用戶定期要執(zhí)行的工作,比如用戶數(shù)據(jù)備份、定時(shí)郵件提醒等。用戶可以使用 crontab 工具來(lái)定制自己的計(jì)劃任務(wù)。所有用戶定義的crontab文件都被保存在/var/spool/cron目錄中。其文件名與用戶名一致,使用者權(quán)限文件如下:

通過(guò)以上幫助信息,我們可以知道crond是執(zhí)行任務(wù)計(jì)劃的一個(gè)守護(hù)進(jìn)程。在使用crontab之前我們可以根據(jù)幫助信息來(lái)設(shè)置相關(guān)選項(xiàng),一般情況下我們都使用默認(rèn)值。

1.建立演示賬號(hào)crontab。

2.星號(hào)(*)使用舉例。

以上例子中完整演示了crontab從建立到執(zhí)行的過(guò)程?!? 0 * * * echo "GeekDevOps"”表示在每天00:05執(zhí)行命令:echo "GeekDevOps"。后面的星號(hào)表示只要前面條件滿足都執(zhí)行。例子中的-u選項(xiàng)指定了用戶:crontab,-l選項(xiàng)列舉了相關(guān)用戶的用戶任務(wù)調(diào)度,不指定用戶則默認(rèn)為root。執(zhí)行結(jié)果默認(rèn)寫(xiě)入到用戶mail目錄下的相關(guān)文件中。

3.逗號(hào)(,)的使用舉例。

現(xiàn)在我們已經(jīng)把用戶切換到crontab下,因此無(wú)需額外指定-u選項(xiàng)相關(guān)內(nèi)容。“3 2,6,8 * * *”表示每天的02:03:00、06:03:00、08:03:00分別執(zhí)行一次命令:ls /usr/local。

4.減號(hào)(-)的使用舉例。

例子中的“0 2-6 * * 6 df -h /”表示用戶crontab在每周六的02:00、03:00、04:00、05:00、06:00執(zhí)行命令:df -h / 。

5.斜杠(/)的使用舉例。

例子中表示每隔2分鐘執(zhí)行一次命令:echo "GeekDevOps"/root/GeekDevOps.txt。

6.crontab的使用非常簡(jiǎn)單,很容易理解,只要在取值范圍內(nèi)設(shè)置執(zhí)行的值基本是沒(méi)有問(wèn)題的。現(xiàn)在我們要?jiǎng)h除已經(jīng)設(shè)置的這些定時(shí)任務(wù)。

例子中,選項(xiàng)-r表示刪除所有定時(shí)任務(wù)。選項(xiàng)-i表示在刪除前進(jìn)行再次確定,輸入y或者Y才能真正刪除。

7.備份我們?cè)O(shè)置的用戶任務(wù)調(diào)度配置文件。

8.系統(tǒng)任務(wù)調(diào)度的使用舉例。

系統(tǒng)任務(wù)調(diào)度與用戶任務(wù)調(diào)度不一樣,需要直接在/etc/crontab里面配置,如果需要指定用戶,還需要在執(zhí)行命令前指定用戶名。通過(guò)crontab -l 命令是查看不到系統(tǒng)任務(wù)調(diào)度任務(wù)的。


名稱欄目:linux定時(shí)啟動(dòng)命令 linux啟動(dòng)定時(shí)任務(wù)
本文地址:http://weahome.cn/article/hhojdj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部