暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

shell远程执行交互式脚本

原创 雪狼sunny 2022-01-04
2221

公司在构建运维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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论