您好,登錄后才能下訂單哦!
距離上一次更新文章已經(jīng)過去一段時(shí)間了,小編在這段時(shí)間因?yàn)橐恍┈嵤?,加上身體生病不能及時(shí)更新文章,今天身體逐漸恢復(fù)就急忙來更新文章,今天思?jí)艚o大家?guī)淼木褪侨绾巫詣?dòng)化監(jiān)控我們的服務(wù)器一些基本的配置來保證我們應(yīng)用能更好的運(yùn)行以及做好性能瓶頸的預(yù)測(cè)!
今天主要內(nèi)容包含,Linux的基礎(chǔ)Shell編程的流程控制語句、cut的使用、grep的使用、以及awk的使用就可以實(shí)現(xiàn)我們所說的事情了!
以下所講命令配合不同的參數(shù)有不同的用處,思?jí)艚o大家講的都是一些為了實(shí)現(xiàn)所說功能的基礎(chǔ)使用,小伙伴們?nèi)绻敫玫氖褂靡韵旅羁梢詤⒖嘉臋n去嘗試配合不同參數(shù)來實(shí)驗(yàn)!
1)首先講一下Shell的流程控制語句if,格式為
if command;then
邏輯處理
else
邏輯處理
fi
以上需要注意的就是if最后的結(jié)尾要有一個(gè)fi。
2)cut的基本使用,它可以用一些規(guī)律性的分隔符去獲取某一行
for example : a:b 這樣一行字符串,我們想獲取a,那么我們可以這樣寫:cut -d ":" -f 1 它的意思為:使用:分割然后獲取第一行,-d后面接的就是用什么符號(hào)分割,題目上是" : ",當(dāng)然也能是" ;"等等,再后面的-f是我要打印輸出的第幾列
3)grep這個(gè)命令是強(qiáng)大的文本搜索工具,比如我們?cè)谝粋€(gè)文本里面想搜
for example:
我們先創(chuàng)建一個(gè)simengphp.txt,然后我們想獲取一下simengphp這個(gè)字符串這行,我們可以這樣操作
這樣我們就可以獲取到了simengphp這行
4)awk這個(gè)命令比較復(fù)雜,我們直接講怎么使用,awk '{print $i}' 意思為默認(rèn)使用空格(不規(guī)則的,cut要規(guī)則)或者制表符分割,后面配合例子來給大家講解
好了基本的命令給大家講完了,我們現(xiàn)在需要做的就是動(dòng)手去寫Shell腳本來去實(shí)現(xiàn)我們的功能了
首先第一個(gè)我們來寫監(jiān)控內(nèi)存的腳本,我們還要使用一條命令:free -h
這樣我們就看到了第一行內(nèi)存使用的狀況了:那我們想要的是free這列值來進(jìn)行監(jiān)控,那么我們就一步一步去獲取這行的值
1)先展示出來所有的,然后我們通過管道以此交給下一條命令去處理
2)我們使用grep這個(gè)命令獲取到我們想要的這樣
3)通過awk命令我們獲取到第四列然后并打印出來,$后面跟的是我們要打印的那列,print是和awk配合使用的,linux下print是不能單獨(dú)使用的
4)后面再通過cut這個(gè)命令使用M來切分值,就能獲取到了我們想要的值了
以上我們只是演示一下怎么獲取我們想要的值,后面我們就直接開始寫Shell腳本了:
我們運(yùn)行一下返回的是else里面的值,因?yàn)槲覀儎偛趴吹降氖?04,正好大于200因此沒有報(bào)警操作!
那監(jiān)控內(nèi)存的功能大家看明白了后面監(jiān)控硬盤空間的功能也是一樣的,我直接給大家上腳本了
以上就是我們通過Shell腳本來實(shí)現(xiàn)自動(dòng)化監(jiān)控內(nèi)存和使用硬盤空間的操作,然后我們通過定時(shí)任務(wù)去執(zhí)行相應(yīng)的腳本就可以了
腳本很粗糙,還有一些需要改進(jìn)的地方,希望小伙伴們研究明白之后可以去優(yōu)化一下然后去監(jiān)控你們的服務(wù)器吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。