jenkins調(diào)用shell命令事镣,執(zhí)行nmon思路:
1、jenkins系統(tǒng)管理處加上需要調(diào)用的服務(wù)器
2古劲、新建任務(wù)A斥赋,用于執(zhí)行shell命令
3、新建任務(wù)B产艾,用于將所有nmon報告統(tǒng)一轉(zhuǎn)移至.jenkins/workspace/B/report下(需要注意灿渴,任務(wù)B需要在任務(wù)A之后執(zhí)行,具體時間間隔胰舆,可自行控制骚露,小編設(shè)置時間為1小時)
4、發(fā)送郵件
5缚窿、定期刪除生成的nmon文件
一:jenkins系統(tǒng)管理處加上需要調(diào)用的服務(wù)器
進(jìn)入jenkins—>系統(tǒng)管理—>系統(tǒng)設(shè)置—>#Publish over SSH
二棘幸、新建任務(wù)A,用于執(zhí)行shell命令
jenkins—>新建任務(wù)—>構(gòu)建一個自由風(fēng)格的軟件項(xiàng)目—>構(gòu)建—>send files or execute commands over SSH
若涉及多個Linux服務(wù)器倦零,直接添加多個send files or execute commands over SSH即可
nmon命令如下:
nmon -s10 -c6 -f -m /root/nmon
-s10為每隔10s記錄一次误续,-c6為共記錄6次吨悍,/root/nmon為nmon監(jiān)控生成的報告地址
三、新建任務(wù)B蹋嵌,用于將所有nmon報告統(tǒng)一轉(zhuǎn)移至.jenkins/workspace/B/report下
由于執(zhí)行nmon命令后育瓜,nmon需要持續(xù)的進(jìn)行監(jiān)控,而我們的一個項(xiàng)目栽烂,暫時沒有發(fā)現(xiàn)有什么辦法可以構(gòu)建1小時后再進(jìn)行操作躏仇,因此采用了折中的辦法,即nmon監(jiān)控為項(xiàng)目A腺办,傳輸文件并發(fā)送報告焰手,為項(xiàng)目B,設(shè)置運(yùn)行時間為項(xiàng)目A運(yùn)行時間后一個小時(具體時間可以根據(jù)自己需求進(jìn)行更改)
兩臺服務(wù)器之間傳輸命令為:
scp 服務(wù)器A文件地址 服務(wù)器B用戶名@服務(wù)器BIP:服務(wù)器B文件地址(由服務(wù)器A向服務(wù)器B進(jìn)行傳輸)
傳輸過程中發(fā)現(xiàn)怀喉,每次傳輸都需要輸入服務(wù)器B的密碼书妻,因此需要我們設(shè)置為服務(wù)器A信任服務(wù)器B,跳過這一步驟躬拢。
建立A到B的信任關(guān)系
(1)Server1#ssh-keygen -t rsa
這個命令生成一個密鑰對:id_rsa(私鑰文件)和id_rsa.pub(公鑰文件)躲履。默認(rèn)被保存在~/.ssh/目錄下。
(2)公鑰添加到遠(yuǎn)程主機(jī)的 authorized_keys 文件中
將文件上傳到遠(yuǎn)程主機(jī)中
server1#scp /root/.ssh/id_rsa.pub root@192.168.1.237:/root/
SSH登陸到遠(yuǎn)程主機(jī)聊闯,將公鑰追加到 authorized_keys 文件中
server2#cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
(3)重啟生效
server2#service sshd restart
接下來是在jenkins中建立連接工猜,進(jìn)行操作,和步驟二類似馅袁,只是將nmon的執(zhí)行命令換成了scp命令而已域慷,因此不再贅述。
四汗销、發(fā)送郵件
項(xiàng)目B添加構(gòu)建后操作—>Editable Email Notification
選項(xiàng)正常添加即可犹褒,不會的可自行百度,需要注意的是弛针,attachments中的附件必須為該項(xiàng)目下的workspace目錄下內(nèi)容才能進(jìn)行發(fā)布叠骑,多個文件時,/*即可
結(jié)束