Python脚本重启服务器N次

时间:2015-06-28 19:24:37

标签: python linux stress-testing

我正在努力测试几个我可以进入的服务器。我正在尝试编写一个python脚本,导致重启循环N次。我打电话给

os.system('reboot') 

但是,我不确定如果服务器完成启动以继续执行后如何让脚本继续执行。服务器运行各种Linux发行版。任何帮助都会很棒。

2 个答案:

答案 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中所有服务器的连接。)