jenkins调用shell命令,执行nmon思路:
1、jenkins系统管理处加上需要调用的服务器
2、新建任务A,用于执行shell命令
3、新建任务B,用于将所有nmon报告统一转移至.jenkins/workspace/B/report下(需要注意,任务B需要在任务A之后执行,具体时间间隔,可自行控制,小编设置时间为1小时)
4、发送邮件
5、定期删除生成的nmon文件
一:jenkins系统管理处加上需要调用的服务器
进入jenkins—>系统管理—>系统设置—>#Publish over SSH
二、新建任务A,用于执行shell命令
jenkins—>新建任务—>构建一个自由风格的软件项目—>构建—>send files or execute commands over SSH
若涉及多个Linux服务器,直接添加多个send files or execute commands over SSH即可
nmon命令如下:
nmon -s10 -c6 -f -m /root/nmon
-s10为每隔10s记录一次,-c6为共记录6次,/root/nmon为nmon监控生成的报告地址
三、新建任务B,用于将所有nmon报告统一转移至.jenkins/workspace/B/report下
由于执行nmon命令后,nmon需要持续的进行监控,而我们的一个项目,暂时没有发现有什么办法可以构建1小时后再进行操作,因此采用了折中的办法,即nmon监控为项目A,传输文件并发送报告,为项目B,设置运行时间为项目A运行时间后一个小时(具体时间可以根据自己需求进行更改)
两台服务器之间传输命令为:
scp 服务器A文件地址 服务器B用户名@服务器BIP:服务器B文件地址(由服务器A向服务器B进行传输)
传输过程中发现,每次传输都需要输入服务器B的密码,因此需要我们设置为服务器A信任服务器B,跳过这一步骤。
建立A到B的信任关系
(1)Server1#ssh-keygen -t rsa
这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。
(2)公钥添加到远程主机的 authorized_keys 文件中
将文件上传到远程主机中
server1#scp /root/.ssh/id_rsa.pub root@192.168.1.237:/root/
SSH登陆到远程主机,将公钥追加到 authorized_keys 文件中
server2#cat /root/id_rsa.pub >> /root/.ssh/authorized_keys
(3)重启生效
server2#service sshd restart
接下来是在jenkins中建立连接,进行操作,和步骤二类似,只是将nmon的执行命令换成了scp命令而已,因此不再赘述。
四、发送邮件
项目B添加构建后操作—>Editable Email Notification
选项正常添加即可,不会的可自行百度,需要注意的是,attachments中的附件必须为该项目下的workspace目录下内容才能进行发布,多个文件时,/*即可
结束