Bonjour,
C'est assez urgent, je cherche à faire un script qui redémmare automatiquement mes serveurs minecraft qui sont sur mon vps lorsque je démmare mon vps ou lorsqu'il crash. J'ai trouvé un script mais je ne sais pas si il permet de démmarer mes serveurs lorsque mon vps crash...
Soyer indulgent et comrenez que c'est mon premier vps...
Merci de votre aide!
C'est assez urgent, je cherche à faire un script qui redémmare automatiquement mes serveurs minecraft qui sont sur mon vps lorsque je démmare mon vps ou lorsqu'il crash. J'ai trouvé un script mais je ne sais pas si il permet de démmarer mes serveurs lorsque mon vps crash...
Code:
#!/usr/bin/env bash
##
## This script was created to start/stop/restart servers in screen sessions for Minecraft. You must edit the
## servers list and servers_directory to reflect your setup. You also need to have a run.sh for every server to start
## them with the options you want.
##
servers=("Hub" "Factions" "Prison" "Guild")
servers_directory=(/home/desktop/minecraft/) ### Must include trailing slash
restart_all() {
for server in "${servers[@]}"
do
echo "$server"
if screen -list | grep -q "$server"; then
echo "Stopping $server server.."
screen -S "$server" -X stuff "msgall &9Server is restarting...$(printf \\r)"
screen -S "$server" -X stuff "stop$(printf \\r)"
echo "$server server has stopped.."
fi
echo "Waiting 5 seconds for all servers to stop gracefully..."
sleep 5
cd "$servers_directory$server"
echo "Starting $server server.."
screen -dmS "$server" ./run.sh
done
}
start_all() {
for server in "${servers[@]}"
do
if screen -list | grep -q "$server"; then
echo "$server is already running! Skipping... "
else
echo "Starting $server server..."
cd "$servers_directory$server"
screen -dmS "$server" ./run.sh
fi
done
echo "All servers started"
}
stop_all() {
for server in "${servers[@]}"
do
echo "Stopping $server server.."
screen -S "$server" -X stuff "msgall &9Server is stopping...$(printf \\r)"
screen -S "$server" -X stuff "stop$(printf \\r)"
echo "$server server has stopped.."
done
}
start() {
if [[ " ${servers[@]} " =~ "$1" ]]; then
if screen -list | grep -q "$1"; then
echo "$1 is already running! Skipping... "
else
echo "Starting $1 server..."
cd "$servers_directory$1"
screen -dmS "$1" ./run.sh
fi
else
echo "Server isn't in the list ~ use: start SERVERNAME"
fi
}
stop() {
if [[ " ${servers[@]} " =~ "$1" ]]; then
screen -S "$1" -X stuff "msgall &9Server is stopping...$(printf \\r)"
screen -S "$1" -X stuff "stop$(printf \\r)"
echo "$! server has stopped.."
else
echo "Server isn't in the list ~ use: stop SERVERNAME"
fi
}
restart() {
if [[ " ${servers[@]} " =~ "$1" ]]; then
if screen -list | grep -q "$1"; then
echo "Stopping "$!" server.."
screen -S "$1" -X stuff "msgall &9Server is restarting...$(printf \\r)"
screen -S "$1" -X stuff "stop$(printf \\r)"
echo "$1 server has stopped.."
fi
echo "Waiting 5 seconds for $1 server to stop gracefully..."
sleep 5
cd "$servers_directory/$1"
echo "Starting $1 server.."
screen -dmS "$1" ./run.sh
else
echo "Server isn't in the list ~ use: restart SERVERNAME"
fi
}
case "$1" in
start-all)
echo "Starting all servers"
start_all
;;
stop-all)
echo "Stopping all servers"
stop_all
;;
restart-all)
echo "Restarting all servers"
restart_all
;;
start)
echo "Attempting to start server"
start $2
;;
stop)
echo "Attempting to stop server"
stop $2
;;
restart)
echo "Attempting to restart server"
restart $2
;;
*)
echo "No command specificed restarting all servers!"
restart_all
exit 1
esac
exit 0
Soyer indulgent et comrenez que c'est mon premier vps...
Merci de votre aide!