当前位置: 首页 > news >正文

shell逐行读取文件 远程操作服务器

代码示例

while read ip; 
    do
        echo "uninstalling test programs in $line"        
        ssh root@$ip 'bash -s' < remote_remove_tool.sh
    done < installed_ips

总结

✅ 作用:

  • 逐行读取 installed_ips 文件中的 IP 地址
  • 通过 SSH 连接到远程服务器,执行 remote_remove_tool.sh 脚本
  • 用于批量卸载多个服务器上的测试程序

✅ 优化建议:

  • 使用 & 并行执行,提高速度
  • 检查 installed_ips 是否存在,避免脚本报错
  • 增加 SSH 连接超时判断,防止连接卡住

1. 并行执行,提高效率

while read line; do
    echo "uninstalling test programs in $line"
    ssh root@$line 'bash -s' < remote_remove_tool.sh &
done < installed_ips
wait
  • & 让 ssh 命令在后台运行,多个 SSH 任务可以并行执行。
  • wait 让脚本等待所有后台任务完成。

2. 检查 installed_ips 是否存在,避免报错

if [ ! -f installed_ips ]; then
    echo "Error: installed_ips 文件不存在"
    exit 1
fi

3. 检查 SSH 连接是否成功

while read line; do
    echo "uninstalling test programs in $line"
    ssh -o ConnectTimeout=5 root@$line 'bash -s' < remote_remove_tool.sh || echo "Failed to connect: $line"
done < installed_ips
  • -o ConnectTimeout=5 限制 SSH 连接超时为 5 秒,避免卡死。
  • || echo “Failed to connect: $line” 如果 SSH 失败,则输出失败日志。

相关文章:

  • AI绘画软件Stable Diffusion详解教程(6):文生图、提示词细说与绘图案例
  • 张驰咨询:用六西格玛重构动力电池行业的BOM成本逻辑
  • 国内支持Stable Diffusion模型的平台
  • Spring Boot如何利用Twilio Verify 发送验证码短信?
  • 安卓binder驱动内核日志调试打印开放及原理(第一节)
  • 玩转顺序表:用 C 语言实现数据的插入与删除
  • [vue] 缩放比适配问题
  • QT--事件系统
  • 智能合约安全指南 [特殊字符]️
  • 【音视频】封装格式与音视频同步
  • 六、Redis 高级功能详解:BitMap、HyperLogLog、Geo、Stream
  • 《用Python+PyGame开发双人生存游戏!源码解析+完整开发思路分享》
  • 【第13节】C++设计模式(行为模式)-Template(模板)模式
  • 【leetcode100】全排列
  • 【落羽的落羽 C++】C++入门基础:输入与输出,缺省参数,函数重载
  • FastGPT 源码:RRF、Rerank 相关代码
  • FastGPT 引申:基于 Python 版本实现 Java 版本 RRF
  • 源码编译安装httpd
  • 示例:在WPF中如何使用Segoe MDL2 Assets图标和使用该图标的好处
  • 算力100问☞第72问:算力与算法、数据的关系是什么?
  • 免费网站自助建站/百度秒收录神器
  • 国外做海报的网站/不受限制的搜索浏览器
  • 社科联网站建设情况汇报/网络营销推广策划步骤
  • 阿里巴巴怎样做网站/长沙网站推广seo
  • go搭建网站/免费网站入口在哪
  • 成都眉山网站建设/防疫测温健康码核验一体机