/ / Python script para reiniciar el servidor N veces: python, linux, pruebas de estrés

Script de Python para reiniciar el servidor N veces: python, linux, pruebas de estrés

Estoy tratando de hacer una prueba de estrés en varios servidores en los que puedo ssh. Estoy tratando de escribir una secuencia de comandos de python que provoca un ciclo de reinicio para N veces. Yo lo llamo

os.system("reboot")

Pero, no estoy seguro de cómo hacer que el script continúe la ejecución una vez que el servidor haya terminado de iniciarse para continuar. Los servidores ejecutan varias distribuciones de Linux. Cualquier ayuda sería excelente.

Respuestas

1 para la respuesta № 1

Mencionó que la solución no tiene que estar en Python, por lo que puede usar un script Bash para esto (dado que puede hacer ping al servidor):

#!/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"

Guárdalo en algo como command_runner.sh y simplemente llamalo via ./command_runner.sh 2 server.example.org en una estación de trabajo que puede SSH y ejecutar el reinicio en el servidor.


0 para la respuesta № 2

Tú podrías utilizar Fabric ssh en varios servidores en paralelo y ejecutar varios comandos allí (incluso aquellos comandos que requieren reinicio - puede que necesite desconectar todos los servidores explícitamente en su fabfile.py después de tales órdenes).