LOADING

shell脚本-批量主机执行命令(expect)

运维1个月前发布 杨帆舵手
11 0 0
广告也精彩
欢迎指数:
参与人数:

批量在多台主机上执行命令可以使用expect工具来实现。expect是一个用于自动化交互的工具,可以模拟用户的输入和响应。下面是一个简单的Shell脚本示例,演示如何使用expect来批量在多台主机上执行命令:

#!/usr/bin/expect
set username "your_username"
set password "your_password"
set command "your_command"
set hosts {
"host1" "192.168.1.1"
"host2" "192.168.1.2"
"host3" "192.168.1.3"
}
foreach {host ip} $hosts {
spawn ssh $username@$ip
expect {
"*password:" {
send "$passwordr"
expect "*$ "
send "$commandr"
expect "*$ "
send "exitr"
}
}
}

在上面的脚本中,你需要将"your_username"和"your_password"替换为实际的用户名和密码。"your_command"是要在主机上执行的命令。
hosts变量是一个包含主机名和IP地址的列表。你可以根据需要添加或删除主机,或者从其他位置加载主机列表。
脚本中的foreach循环遍历hosts列表,并使用spawn命令在每个主机上启动一个新的ssh会话。expect命令用于匹配不同的交互场景。在遇到"password:"时,脚本将自动发送密码并等待命令提示符("$ ")出现。然后,脚本发送要执行的命令,并再次等待命令提示符。最后,脚本发送"exit"命令退出ssh会话。
通过适当修改脚本中的变量和命令,你可以批量在多台主机上执行自定义的命令。
需要注意的是,使用expect工具时需要小心处理密码和敏感信息。建议在实际使用时采取安全措施,如使用SSH密钥进行身份验证,以避免密码泄露的风险。
希望以上示例能够帮助你理解如何使用expect工具来批量在多台主机上执行命令。根据实际需求,你可以根据这个示例进行定制和扩展。

<span>香港五网CN2网络云服务器链接:www.tsyvps.com</span>
<span>蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。</span>

此站内容质量评分请点击星号为它评分!

您的每一个评价对我们都很重要

很抱歉,这篇文章对您没有用!

让我们改善这篇文章!

告诉我们我们如何改善这篇文章?

© 版权声明
广告也精彩

相关文章

广告也精彩

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...