jenkins調(diào)用shell命令,執(zhí)行nmon思路:
1、jenkins系統(tǒng)管理處加上需要調(diào)用的服務(wù)器
2、新建任務(wù)A,用于執(zhí)行shell命令
3、新建任務(wù)B,用于將所有nmon報(bào)告統(tǒng)一轉(zhuǎn)移至.jenkins/workspace/B/report下(需要注意,任務(wù)B需要在任務(wù)A之后執(zhí)行,具體時(shí)間間隔,可自行控制,小編設(shè)置時(shí)間為1小時(shí))
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)建一個(gè)自由風(fēng)格的軟件項(xiàng)目—>構(gòu)建—>send files or execute commands over SSH

若涉及多個(gè)Linux服務(wù)器,直接添加多個(gè)send files or execute commands over SSH即可
nmon命令如下:
nmon -s10 -c6 -f -m /root/nmon
-s10為每隔10s記錄一次,-c6為共記錄6次,/root/nmon為nmon監(jiān)控生成的報(bào)告地址
三、新建任務(wù)B,用于將所有nmon報(bào)告統(tǒng)一轉(zhuǎn)移至.jenkins/workspace/B/report下
由于執(zhí)行nmon命令后,nmon需要持續(xù)的進(jìn)行監(jiān)控,而我們的一個(gè)項(xiàng)目,暫時(shí)沒(méi)有發(fā)現(xiàn)有什么辦法可以構(gòu)建1小時(shí)后再進(jìn)行操作,因此采用了折中的辦法,即nmon監(jiān)控為項(xiàng)目A,傳輸文件并發(fā)送報(bào)告,為項(xiàng)目B,設(shè)置運(yùn)行時(shí)間為項(xiàng)目A運(yùn)行時(shí)間后一個(gè)小時(shí)(具體時(shí)間可以根據(jù)自己需求進(jìn)行更改)
兩臺(tái)服務(wù)器之間傳輸命令為:
scp 服務(wù)器A文件地址 服務(wù)器B用戶名@服務(wù)器BIP:服務(wù)器B文件地址(由服務(wù)器A向服務(wù)器B進(jìn)行傳輸)
傳輸過(guò)程中發(fā)現(xiàn),每次傳輸都需要輸入服務(wù)器B的密碼,因此需要我們?cè)O(shè)置為服務(wù)器A信任服務(wù)器B,跳過(guò)這一步驟。
建立A到B的信任關(guān)系
(1)Server1#ssh-keygen -t rsa
這個(gè)命令生成一個(gè)密鑰對(duì):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
接下來(lái)是在jenkins中建立連接,進(jìn)行操作,和步驟二類(lèi)似,只是將nmon的執(zhí)行命令換成了scp命令而已,因此不再贅述。
四、發(fā)送郵件
項(xiàng)目B添加構(gòu)建后操作—>Editable Email Notification
選項(xiàng)正常添加即可,不會(huì)的可自行百度,需要注意的是,attachments中的附件必須為該項(xiàng)目下的workspace目錄下內(nèi)容才能進(jìn)行發(fā)布,多個(gè)文件時(shí),/*即可
結(jié)束