shell脚本实现远程重启多个服务器

打印 上一主题 下一主题

主题 1740|帖子 1740|积分 5220

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
直接deepseek帮写脚本 remoteReboot.sh
#!/bin/bash
# 配置文件路径(格式:每行一个服务器地址)
SERVER_FILE="servers.list"
# 读取服务器列表
mapfile -t SERVERS < "$SERVER_FILE"
for server in "${SERVERS[@]}"; do
  echo "正在处理: $server"
  #ssh -o ConnectTimeout=5 "mission@$server" "sudo -A shutdown -r '系统筹划维护重启'"
  ssh -o ConnectTimeout=5 "mission@$server" "sudo -A reboot" 
  if [ $? -eq 0 ]; then
    echo "$server 重启筹划设置成功"
  else
    echo "$server 连接失败" >&2
  fi
done
上面注释的ssh -o ConnectTimeout=5 "mission@$server" "sudo -A shutdown -r '系统筹划维护重启'" 经测试,报错 sudo: 没有指定 askpass 程序,尝试设置 SUDO_ASKPASS
但我已经设置过了,而用下面的reboot则功能正常。
设置ssh主动登录免暗码
在本机上执行
# 天生密钥对(假如尚未天生)
ssh-keygen -t rsa
# 将公钥复制到目标服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.101
ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.1.102
再ssh user@192.168.1.101测试下是否免暗码成功,第一次不成功就先手动输入一次暗码
背面就不消再输入暗码了
在目标服务器,还要设置SUDO_ASKPASS 情况变量,如许远程登录时系统就会调用它指向的下令去输入暗码
vi  .bashrc
export SUDO_ASKPASS=/home/mission/StationPisPlayer/printpwd
/home/mission/StationPisPlayer/printpwd执行就会输出暗码
经测试有的机器照旧不行,照旧报错 sudo: 没有指定 askpass 程序,尝试设置 SUDO_ASKPASS
在目标服务器上sudo vi /etc/sudoers
user ALL=(ALL) NOPASSWD: /sbin/reboot
这里的user是服务器的用户名


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

缠丝猫

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表