[Bash] Script de serveur – Pastebin.com – Resoudre les problemes d’un serveur MineCraft
#! / bin / bash
# /etc/init.d/minecraft
# version 0.3.2 2011-01-27 (AAAA-MM-JJ)
### BEGIN INIT INFO
# Fournit: minecraft
# Required-Start: $ local_fs $ remote_fs
# Required-Stop: $ local_fs $ remote_fs
# Should-Start: $ network
# Should-Stop: $ network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description courte: serveur Minecraft
# Description: Démarre le serveur minecraft
### FIN INIT INFO
# Paramètres commencent
NOM D'UTILISATEUR="racine"
JMXPORT=25565
UN SERVICE='minecraft_server.jar'
MCPATH="/"
BACKUPPATH="/ backup"
CHECKSERVER="/ CheckServer"
JMXPWFILE="JMXPass.txt"
CRASHLOG_DB_PATH='/ Crashlogs'
JAVA_HOME="/ usr / local / lib / jrockit"
MEMORY_OPTS="-Xmx1G -Xms1G"
JAVA_OPTIONS="-XX: FlightRecorderOptions = defaultrecording = true, disque = true, référentiel = / home /$ USERNAME/ jfr /, maxage = 30m, settings = profile "
JMX_OPTIONS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl = false -Dcom.sun.management.jmxremote.port =$ JMXPORT -Dcom.sun.management.jmxremote.password.file =$ JMXPWFILE"
INVOCATION="Java $ MEMORY_OPTS $ JAVA_OPTIONS $ JMX_OPTIONS -pot $ SERVICE nogui "
BACKUPARCHIVEPATH=$ SAUVEGARDE/archiver
BACKUPDIR= $(rendez-vous amoureux +%b_%Y)
PORT= $(grep port-serveur server.properties | Couper -ré '=' -F 2)
si [[ -z "$ PORT" ]; puis
PORT=25565
Fi
# Fin des paramètres
si [[ $(qui suis je) != $ USERNAME ]; puis
su $ USERNAME -l -c "$ (readlink -f $ 0) $ * "
sortie $?
Fi
est en cours d'exécution() grep "^ \ s *$ pid\ s * $" > /dev/nul
revenir $?
mc_start() grep "^ \ s *$ screenpid "
mc_startmonitor()
si [[ -z $ CHECKSERVER ]; puis
écho "moniteur commencé"
/usr/poubelle/démon –prénom= minecraft_checkserver – $ JAVA_HOME/poubelle/Java -cp $ CHECKSERVER CheckServer localhost $ PORT
Fi
mc_saveoff()
si est en cours d'exécution; puis
écho "$ SERVICE est en cours d'exécution … suspendre enregistre "
mc_exec "Dites démarrage du serveur de sauvegarde. Serveur en lecture seule …"
mc_exec "sauver-off"
mc_exec "sauver tous"
synchroniser
sommeil dix
autre
écho "$ SERVICE ne courait pas. Ne pas suspendre sauve. "
Fi
mc_saveon()
si est en cours d'exécution; puis
écho "$ SERVICE est en cours d'exécution … réactiver les sauvegardes "
mc_exec "économiser sur"
mc_exec "Dites que la sauvegarde du serveur est terminée. Le serveur va en lecture-écriture …"
autre
écho "$ SERVICE ne courait pas. Ne pas reprendre les sauvegardes. "
Fi
mc_kill()
pid= $(chat $ MCPATH/java.pid)
écho "processus de terminaison avec pid $ pid"
tuer $ pid
pour (( je=0; je < dix; i ++ )); faire
est en cours d'exécution
mc_stop()
mc_stopmonitor()
si [[ -z $ CHECKSERVER ]; puis
/usr/poubelle/démon –prénom= minecraft_checkserver –Arrêtez
Fi
mc_backup() mkdir -p "$ SAUVEGARDE/$ BACKUPDIR"
rdiff-backup $ MCPATH "$ SAUVEGARDE/$ BACKUPDIR"
écho "Sauvegarde terminée"
mc_thinoutbackup()
si (($(rendez-vous amoureux +%H) == 0)) && (($(rendez-vous amoureux +%M) < 15)); puis
archivé= $(rendez-vous amoureux –rendez-vous amoureux="il y a 7 jours")
écho "Les sauvegardes de fluidification créées $ archivé en dehors"
archivedateunix= $(rendez-vous amoureux –rendez-vous amoureux="$ archivé" +%s)
archivesourcedir=$ SAUVEGARDE/$(rendez-vous amoureux –rendez-vous amoureux="$ archivé" +%b_%Y)
archivesource=$ archivesourcedir/rdiff-backup-data/incréments. $(rendez-vous amoureux –rendez-vous amoureux="$ archivé" +%Y-%m-%dT%H):0*.dir
archivesource= $(écho $ archivesource)
test archivé=$ BACKUPARCHIVEPATH/$(rendez-vous amoureux –rendez-vous amoureux="$ archivé" +%b_%Y)
si [[[[ ! -F $ archivesource ]]; puis
écho "Il n'y a rien a faire"
autre
tempdir= $(mktemp -ré)
si [[[[ ! $ tempdir = ~ ^/tmp ]]; puis
écho "tmp dir invalide $ tempdir"
autre
rdiff-backup $ archivesource $ tempdir
rdiff-backup –heure actuelle $ archivedateunix $ tempdir $ archivéest
rm -R "$ tempdir"
rdiff-backup –remove-old-than 7D –Obliger $ archivesourcedir
écho "terminé"
Fi
Fi
Fi
mc_exec()
si est en cours d'exécution; puis
écran -p 0 -S $(chat $ MCPATH/Nom de l'écran) -X des trucs "$ @$ (printf \ r)"
autre
écho "$ SERVICE ne courait pas. Ne pas exécuter de commande. "
Fi
mc_dumpcrashlogs()
si est en cours d'exécution; puis
cp $ MCPATH/rapports d'accident/ * $ CRASHLOG_DB_PATH
mv $ MCPATH/rapports d'accident/ * $ MCPATH/crash-reports.archive/
Fi
# Start-Stop here
Cas "1 $" dans
début)
si mc_start
puis
mc_startmonitor
Fi
;;
Arrêtez)
mc_stopmonitor
mc_stop
;;
redémarrer)
mc_stop
mc_start
;;
sauvegarde)
mc_saveoff
mc_backup
mc_saveon
mc_thinoutbackup
;;
exec)
décalage
mc_exec "$ @"
;;
dumpcrashlogs)
mc_dumpcrashlogs
;;
statut)
si est en cours d'exécution
puis
écho "$ SERVICE est en cours d'exécution."
autre
écho "$ SERVICE ne fonctionne pas."
Fi
;;
*)
écho "Usage: $ (readlink -f $ 0) start "
sortie 1
;;
esac
sortie 0
Commentaires
Laisser un commentaire