公司在构建运维job平台时候,要求统一把所有的任务统一到jenkins上调用统一的脚本进行执行;因为出现了很多脚本不能以原来的方式继续运行了,只能通过类似远程交互式命令的方式;
关于shell的远程脚本执行命令,有eeoof的方式和expect的方式,这样就可以在jenkins的job看每天定时脚本执行的情况方便以对定时任务的监控和故障处理;
1、 eeooff方式:
#!/bin/bash
ssh root@$ip > /dev/null 2>&1 << eeooff ##输入你要链接的远程主机的IP地址
ls /tmp/ ##在远程主机需要执行的命令或者脚本
exit
eeooff
echo done!以上脚本只是个范例,并且两台机器做了ssh的key认证可以自动登陆;
2、 expect方式:
#!/bin/bash
user=root
pass='123QWE,。、'
ip='172.18.16.191'
/usr/local/bin/expect << EOF
set timeout 30
spawn ssh $user@$ip
expect {
"(yes/no)" {send "yes\r"; exp_continue}
"password:" {send "$pass\r"}
}
expect "root@*" {send "free -m\r"}
expect "root@*" {send "exit\r"}
expect eof
EOF此脚本通过远程登陆172.181.6.191主机然后悉尼港free -m查看服务器的内存;可以更改成自己的用户名和密码和主机放心使用;
以上脚本都经过测试可以正常使用;
在公司有大批量的主机这种方法就不适合,需要运行批量管理工具,批量管理主机的会在以后的ansiable运维批量处理中介绍。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




