家用住宅主机Linux Shell批量脚本运维多住宅主机

家里有多台Linux小主机(比如树莓派、旧笔记本刷Linux、NAS等)时,每次逐台登录执行命令非常低效。
用Shell脚本批量推送指令,能大幅节省重复操作的时间。
本文从零开始,教你如何搭建一套可复用的批量脚本环境。

准备工作:选一台跳板机并配好免密登录

你需要一台常开的主机作为跳板机(通常是主路由或一台NUC),其他所有要管理的主机都从这个跳板机SSH连接。

  1. 在跳板机上生成SSH密钥对(如果已有可跳过):
   ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519

按回车默认路径,不设密码。

  1. 将公钥复制到每一台被管主机:
   ssh-copy-id user@host_ip

需要输入一次每个主机的登录密码。
成功后再用 ssh user@host_ip 验证是否直接登录。

  1. 创建主机列表文件 /home/you/hosts.txt,每行一个IP地址或主机名:
   192.168.1.101
   192.168.1.102
   192.168.1.103

如果端口不同,也可以写成 192.168.1.101:2222,脚本里再拆分。

编写批量执行Shell脚本

核心思路:用 while read 循环读取列表,对每个主机执行你需要的命令。

以下示例检查所有主机的磁盘使用情况:

#!/bin/bash
# 批量检查磁盘使用率
HOSTS_FILE="/home/you/hosts.txt"
USER="your_username"
COMMAND="df -h | grep -v tmpfs"

while IFS= read -r host; do
    echo "========== $host =========="
    ssh -o ConnectTimeout=5 "$USER@$host" "$COMMAND"
    if [ $? -ne 0 ]; then
        echo "[ERROR] $host 连接失败或命令执行异常" >&2
    fi
done < "$HOSTS_FILE"

将上面内容保存为 batch_check.sh,执行 chmod +x batch_check.sh,然后 ./batch_check.sh 即可看到每台主机的磁盘空间。

关键点: 把 COMMAND 变量替换成你想批量运行的任何命令,例如 uptime、apt update && apt upgrade -y、systemctl restart nginx 等。
如果需要多行命令,最好先写成独立的远程脚本再复制执行。

避坑指南:新手最容易翻车的地方

  • SSH密钥权限:私钥文件必须为600权限:chmod 600 ~/.ssh/id_ed25519,否则SSH会拒绝使用。
  • 首次连接指纹确认:如果被管主机之前没有被跳板机连接过,脚本会卡住等待手动确认。解决方法有两个:一是在 ~/.ssh/config 添加 StrictHostKeyChecking no(安全风险低的内网可用),二是先在每台主机手动执行一次SSH连接确认指纹。
  • 命令执行结果:不是你期望的返回值:如果某台主机连接超时,脚本会继续跑下一台。给你代码里已经加了退出码判断,但最好在 COMMAND 后加 || echo "[FAIL]" 更明确。
  • 长时间命令:如果批量进行 apt upgrade,建议加上 DEBIAN_FRONTEND=noninteractive 避免交互弹窗。

效果验证:确认所有主机都执行成功

  1. 手动检查输出:脚本标准输出应显示正常结果,错误输出(stderr)重定向到屏幕或日志。可以统一追加日志:
   ./batch_check.sh 2>> error.log
  1. 如果被管主机数量少,也可以在各主机上检查对应服务状态:
   systemctl is-active your_service
  1. 利用 wc -l 统计输出行数,与主机列表行数对比,排查未响应的主机。

拓展思路:让脚本更灵活

  • 并发执行:在循环中加入 & 后台运行,最后加 wait。
  • 传递参数:将脚本改造成接受参数,比如要执行的命令通过第一个参数传入。
  • 记录日志:按主机名和时间命名日志文件,方便追溯。

如果你管理的主机数量增长到几十台,可以在此基础上套用 pdsh、ansible 等工具。
但Shell脚本始终是最轻量、零依赖的方案,适合家用机房场景。

分享到:
上一篇
外贸站宝塔面板网站服务器挖矿进程手动查杀清理步骤
下一篇
跨境独立站宝塔面板服务器宝塔面板Docker部署AI网关
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意