我正在努力测试几个我可以进入的服务器。我正在尝试编写一个python脚本,导致重启循环N次。我打电话给
os.system('reboot')
但是,我不确定如果服务器完成启动以继续执行后如何让脚本继续执行。服务器运行各种Linux发行版。任何帮助都会很棒。
答案 0 :(得分:1)
你提到解决方案不一定是在Python中,所以你可以只使用一个Bash脚本(假设你可以ping服务器):
#!/usr/bin/env bash
COUNTER=$1
SERVER=$2
COMMAND="sudo reboot"
SLEEP_DURATION=60
echo "Working on $SERVER $COUNTER times"
while (( $COUNTER > 0 )); do
ping -c 1 -t 5 $SERVER;
_ping_r=$?
if (( $_ping_r < 1 )); then
echo "Rebooting $SERVER"
ssh $SERVER $COMMAND;
let COUNTER=COUNTER-1
else
echo "Couldn't ping $SERVER. Taking a quick nap and trying again."
sleep 5
fi
sleep $SLEEP_DURATION;
done
echo "Done working on $SERVER"
将其保存为类似command_runner.sh
的内容,只需在可以通过SSH连接并在服务器上运行重启的工作站上通过./command_runner.sh 2 server.example.org
进行调用。
答案 1 :(得分:0)
您可以use Fabric
to ssh into several servers in parallel and to execute various commands there(即使是那些需要重启的命令 - 您可能需要在此类命令后明确断开fabfile.py
中所有服务器的连接。)