亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

你知道shell腳本超時(shí)之后,應(yīng)該怎么做嗎?

?在shell里會(huì)有一種不太常見的情況,就是腳本有時(shí)候會(huì)出現(xiàn)超時(shí)的現(xiàn)象。一般來說遇到這種問題,我們都會(huì)簡單粗暴的采用下面這種腳本來當(dāng)“超時(shí)看門狗“:

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

這個(gè)腳本搭配兩個(gè)變量使用的話,監(jiān)控一點(diǎn)小代碼還算OK,但是它的邏輯還是比較粗糙,比如如果在這個(gè)腳本執(zhí)行的時(shí)候,又有了一個(gè)新的process在后臺(tái)啟動(dòng),那么kill掉的就是新的process,而本應(yīng)該停止的腳本還是在后臺(tái)肆無忌憚的跑著。

為了不濫殺無辜,所以遇到這種情況,就要使用timeout命令,具體的用法請自行#man timeout,這個(gè)命令在centos 6里就是自帶的。

假設(shè)我們要ping www.baidu.com ,同時(shí)要求“若超過了5秒沒有反應(yīng),就停止這個(gè)任務(wù)”。那么就是用命令:#timeout?5s?ping?www.baidu.com,效果如圖:

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

從26秒到31秒,的確達(dá)到了5秒就跳出的效果。

牛刀小試結(jié)束,那么現(xiàn)在我們就來進(jìn)化一下我們之前的那個(gè)MQ腳本,之前在?http://chenx1242.blog.51cto.com/10430133/1884415? 里我曾經(jīng)寫過一個(gè)MQ腳本,但是那個(gè)MQ腳本有點(diǎn)理想化了,里面忘記了添加“超時(shí)監(jiān)控”以及“重啟失敗的話會(huì)發(fā)郵件提醒運(yùn)維人員”這兩個(gè)功能,在這里我們就把上面兩個(gè)短板補(bǔ)齊。

首先,我們先運(yùn)行一下看看這個(gè)MQ看門狗腳本需要運(yùn)行的時(shí)間:

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

從上面可見整個(gè)腳本運(yùn)行大約需要13秒,那么我們考慮到其他因素設(shè)定超時(shí)時(shí)間為20秒,執(zhí)行效果如圖:

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

返回碼是0,那么再看看如果因?yàn)槌瑫r(shí)而停止的返回碼是多少呢?

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

可見由于超時(shí)停止的返回碼是124(ctrl+c手動(dòng)退出的返回碼是130),那么整個(gè)腳本就很好寫了,如下:

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

然后在crontab里直接執(zhí)行這個(gè)腳本就好了。

補(bǔ)充說明之一,在文中測試timeout命令的時(shí)候,我使用了ping,其實(shí)這個(gè)是不嚴(yán)謹(jǐn)?shù)?,因?yàn)閡nix的ping默認(rèn)會(huì)無限重復(fù),所以#timeout 3s ping?www.baidu.com??不管有沒有網(wǎng)絡(luò)連接都會(huì)超時(shí)。這里最好的例子是看看#timeout 3s sleep 1#timeout 3s sleep 5的區(qū)別。

補(bǔ)充說明之二,在shell腳本里,timeout后面若跟函數(shù)的話是無效的!

最后的最后,如果您覺得本文對您升職加薪有幫助,那么請不吝贊助之手,刷一下下面的二維碼,贊助本人繼續(xù)寫更多的博文!

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

作者:蘇幕遮618

來源:http://chenx1242.blog.51cto.com/10430133/1950570


————廣告時(shí)間————

《馬哥Linux云計(jì)算及架構(gòu)師》課程,由知名Linux布道師馬哥創(chuàng)立,經(jīng)歷了8年的發(fā)展,聯(lián)合阿里巴巴、唯品會(huì)、大眾點(diǎn)評、騰訊、陸金所等大型互聯(lián)網(wǎng)一線公司的馬哥課程團(tuán)隊(duì)的工程師進(jìn)行深度定制開發(fā),課程采用 Centos7.2系統(tǒng)教學(xué),加入了大量實(shí)戰(zhàn)案例,授課案例均來自于一線的技術(shù)案例。

開課時(shí)間:11月06號

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?課程咨詢請長按即可咨詢Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

Linux運(yùn)維教程 | shell腳本執(zhí)行超時(shí)怎么辦?

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!