有人知道如何仅用一行 bash 代码(通过循环自身)重启计算机吗?详细信息将从文本文件中获取,即每台计算机的 IP 地址。当脚本获取计算机的 IP 地址时,它将进入并重启计算机。我该怎么做。
答案1
选项 1# 使用 for 循环
for host in $(< inputfile.txt );
do
ssh $host shutdown -r now
done
选项 2# 使用 xargs
xargs -n1 -I{} echo ssh {} shutdown -r now < inputfile.txt
注意:你需要SSH 无密码登录或者它会询问输入文件中列出的每个主机的密码
答案2
#!/usr/bin/env bash
for SERVER in `cat servers.lst`
do
ssh -tttq -o StrictHostKeyChecking=no -o CheckHostIP=no -o ConnectTimeout=5 $SERVER "sudo su -c 'uname -n;uptime;reboot' "
done