Script shell du serveur Minecraft · GitHub – Resoudre les problemes d’un serveur MineCraft

Author: Titanfall —

Short summary: #!/ bin / bash # auteur original: Relliktsohg # Un grand merci à Maine pour sa sauvegarde incrémentale # Merci à endofzero pour sa routine de mise à jour améliorée # # Installation: # – Copiez le script dans votre dossier de serveur Minecraft. # – Autoriser l'exécution du script (chmod + x minecraft.sh) # […]

Quick overview

Site
Tutos GameServer
Canonical URL
https://tutos-gameserver.fr/2019/05/03/script-shell-du-serveur-minecraft-%c2%b7-github-resoudre-les-problemes-dun-serveur-minecraft/
LLM HTML version
https://tutos-gameserver.fr/2019/05/03/script-shell-du-serveur-minecraft-%c2%b7-github-resoudre-les-problemes-dun-serveur-minecraft/llm
LLM JSON version
https://tutos-gameserver.fr/2019/05/03/script-shell-du-serveur-minecraft-%c2%b7-github-resoudre-les-problemes-dun-serveur-minecraft/llm.json
Manifest
https://tutos-gameserver.fr/llm-endpoints-manifest.json
Estimated reading time
10 minutes (599 seconds)
Word count
1994

Key points

Primary visual

Script shell du serveur Minecraft · GitHub

 – Resoudre les problemes d’un serveur MineCraft
Main illustration associated with the content.

Structured content

#!/ bin / bash

# auteur original: Relliktsohg

# Un grand merci à Maine pour sa sauvegarde incrémentale

# Merci à endofzero pour sa routine de mise à jour améliorée

#

# Installation:

# – Copiez le script dans votre dossier de serveur Minecraft.

# – Autoriser l'exécution du script (chmod + x minecraft.sh)

# – Vérifiez les droits de l'utilisateur du script. Chaque dossier spécifié dans la configuration doit être disponible.

# – Editez le script pour le configurer (voir la section configurer)

# – Plus de détails: http://www.minecraftforum.net/topic/37290-another-shell-script/

#

# Usage:

# ./minecraft.sh

# – Sans argument, le script reprendra l'écran du serveur. (Si vous voulez fermer

# l'écran sans arrêter le serveur, utilisez CTRL + A puis appuyez sur D pour détacher l'écran)

#

# statut ./minecraft.sh

# – Vous indique si le serveur est en cours d'exécution ou non.

#

# ./minecraft.sh start [force]

# – Démarre le serveur. Si vous savez que votre serveur ne fonctionne pas, mais que le script le croit, utilisez la commande

# options de force.

#

# ./minecraft.sh stop [force]

# – S'explique

#

# ./minecraft.sh redémarrer [warn]

# – Si l'option warn est spécifiée, un avertissement 30s & 10s s'affichera avant le redémarrage.

#

# Journaux ./minecraft.sh [clean]

# – Analyse les journaux dans plusieurs fichiers, regroupés dans un dossier nommé avec la date de la journalisation.

# Si l'option de nettoyage est spécifiée, les dossiers les plus anciens seront déplacés dans le dossier de sauvegarde.

# Encore une fois, cette commande devrait poser problème avant le redémarrage du serveur.

#

# ./minecraft.sh sauvegarde [clean]

# – Affiche un message aux joueurs si le serveur est en ligne, arrête l'écriture de morceaux, crée un

# archives datées et sauvegarde le dossier du monde. Si l'option de nettoyage est spécifiée, le programme sera supprimé.

# archives plus anciennes.

#

# ./minecraft.sh cartographie

# – Affiche un message aux joueurs si le serveur est en ligne, arrête l'écriture de morceaux, initie

# Le script de cartographie de c10t. Je recommande fortement que MAPS_PATH soit un dossier public Internet.

#

# ./minecraft.sh mise à jour

# – Arrête le serveur s'il est en ligne, sauvegarde les anciens binairies, télécharge les derniers binaires de

# mincraft.net et redémarre le serveur.

# Configuration

MC_PATH = / home / minecraft

SERVERMOD = 0

RUNECRAFT = 0

SCREEN_NAME ="Minecraft"

MEMALOC = 512

DISPLAY_ON_LAUNCH = 1

WORLD_NAME ="monde"

BKUP_PATH =$ MC_PATH/ sauvegarde

BKUP_DAYS_INCR = 2

BKUP_DAYS_FULL = 5

BACKUP_FULL_LINK =$ BKUP_PATH/$ WORLD_NAME_full.tgz

BACKUP_INCR_LINK =$ BKUP_PATH/$ WORLD_NAME_incr.tgz

CARTO_PATH =$ MC_PATH/ carto

MAPS_PATH = / var / www / minecraftMaps

LOG_TDIR = / var / www / minecraftLogs

LOGS_DAYS = 7

# Fin de configuration

si [[[[$ SERVERMOD -eq 1 ]

puis

si [[[[-e $ MC_PATH/ journaux /*.log.lck]

puis

ONLINE = 1

autre

ONLINE = 0

Fi

autre

si [[[[-e $ MC_PATH/server.log.lck]

puis

# ps -e | grep java | wc -l

ONLINE = 1

autre

ONLINE = 0

Fi

Fi

afficher()

écran -R $ SCREEN_NAME

serveur_launch()

écho "Lancer le serveur minecraft …"

si [[[[$ SERVERMOD -eq 1 ]

puis

CD $ MC_PATH; écran -m -d -S $ SCREEN_NAME java -Xmx$ MEMALOCM -Xms$ MEMALOCM -Djava.net.preferIPv4Stack = true -jar Minecraft_Mod.jar nogui; dormir 1

autre

CD $ MC_PATH; écran -m -d -S $ SCREEN_NAME java -Xmx$ MEMALOCM -Xms$ MEMALOCM -Djava.net.preferIPv4Stack = true -jar minecraft_server.jar nogui; dormir 1

Fi

arrêt_serveur()

écho "Arrêt du serveur minecraft …"

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "arrêter. r"`"; dormir 5

si [[[[$ # -gt 0]

puis

Cas 1 $ dans

################################################## ###############

"statut")

si [[[[$ ONLINE -eq 1 ]

puis

écho "Le serveur Minecraft semble en ligne."

autre

écho "Le serveur Minecraft semble hors ligne."

Fi;;

################################################## ###############

"début")

si [[[[$ ONLINE -eq 1 ]

puis

écho "Le serveur semble déjà fonctionner!"

Cas 2 $ dans

"Obliger")

tuer `ps -e | grep java | cut -d " " -f 1`

rm -fr $ MC_PATH/*.log.lck 2> / dev / null / ;;

esac

autre

serveur_launch

si [[[[$ DISPLAY_ON_LAUNCH -eq 1 ]

puis

afficher

Fi

Fi;;

################################################## ###############

"Arrêtez")

si [[[[$ ONLINE -eq 1 ]

puis

arrêt_serveur

autre

Cas 2 $ dans

"Obliger")

tuer `ps -e | grep java | cut -d " " -f 1`

rm -fr $ MC_PATH/*.log.lck 2> / dev / null / ;;

*)

écho "Le serveur semble être hors ligne …";;

esac

Fi;;

################################################## ###############

"redémarrer")

si [[[[$ ONLINE -eq 1 ]

puis

Cas 2 $ dans

"prévenir")

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "dit le serveur va redémarrer dans 30s! r"`"; dormir 20

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "Dites que le serveur va redémarrer dans 10s! r"`"; dormir 10 ;;

esac

arrêt_serveur

Fi

serveur_launch

si [[[[$ DISPLAY_ON_LAUNCH -eq 1 ]

puis

afficher

Fi;;

################################################## ###############

"les journaux")

mkdir -p $ LOG_TDIR

CD $ LOG_TDIR

Cas 2 $ dans

"nettoyer")

DATE =$ (date +% d-% m –date "$ LOGS_DAYS il y a jour")

si [[[[-e journaux$ DATE ]

puis

mkdir -p $ BKUP_PATH/ journaux

mv logs-$ DATE $ BKUP_PATH/ journaux /

Fi

;;

esac

DATE =$ (date +% d-% m)

LOG_NEWDIR = logs-$ DATE

si [[[[-e $ LOG_TDIR/$ LOG_NEWDIR ]

puis

rm $ LOG_TDIR/$ LOG_NEWDIR/*

autre

mkdir $ LOG_TDIR/$ LOG_NEWDIR

Fi

DATE =$ (date +% d-% m-% Hh% M)

LOG_TFILE = logs-$ DATE.bûche

si [[[[$ SERVERMOD -eq 1 ]

puis

si [[[[$ ONLINE -eq 1 ]

puis

LOG_LCK =$ (nom de base $ MC_PATH/ journaux /*.log.lck .log.lck)

écho "Trouvé un journal verrouillé: $ LOG_LCK"

autre

LOG_LCK =""

Fi

CD $ MC_PATH/ journaux /

pour je dans *

faire

si [[[[$ i ! = $ LOG_LCK.log.lck] # skip du fichier lck

puis

chat $ i >> $ LOG_TDIR/$ LOG_NEWDIR/$ LOG_TFILE

si [[[[$ i ! = $ LOG_LCK.log] # Si vous ne supprimez pas le fichier journal, si le service est en route

puis

rm $ i

Fi

Fi

terminé

autre

CD $ MC_PATH

chat serveur.log >> $ LOG_TDIR/$ LOG_NEWDIR/$ LOG_TFILE

Fi

si [[[[-e $ LOG_TDIR/ip-list.log]

puis

chat $ LOG_TDIR/ip-list.log | Trier | uniq > $ LOG_TDIR/templist.log

Fi

chat $ LOG_TDIR/$ LOG_NEWDIR/$ LOG_TFILE | egrep '[0-9]+ .[0-9]+ .[0-9]+ .[0-9]+. + connecté' | sed -e 's /.* [INFO] s // g' -e 's / [//t/g[//t/g[//t/g[//t/g' -e 's /:.*// g' >> $ LOG_TDIR/templist.log

chat $ LOG_TDIR/templist.log | Trier | uniq -w 4 > $ LOG_TDIR/ip-list.log

rm $ LOG_TDIR/templist.log

chat $ LOG_TDIR/$ LOG_NEWDIR/$ LOG_TFILE | egrep 'connecté | connexion perdue' | sed -e 's /.* ([0-9] 2 :[0-9] 2 :[0-9] 2 ). [INFO]. ([a-zA-Z0-9_] 1, ). 1, connecté / 1 t 2: connecté / g' -e 's /.* ([0-9] 2 :[0-9] 2 :[0-9] 2 ). [INFO]. ([a-zA-Z0-9_] 1, ). Connexion perdue. * / 1 t 2: déconnecté / g' >> $ LOG_TDIR/$ LOG_NEWDIR/ connexions-$ DATE.bûche

chat $ LOG_TDIR/$ LOG_NEWDIR/$ LOG_TFILE | egrep '| [CONSOLE]' | sed -e 's /.* ([0-9] 2 :[0-9] 2 :[0-9] 2 ). [INFO]./1 / g' >> $ LOG_TDIR/$ LOG_NEWDIR/bavarder-$ DATE.bûche

chat $ LOG_TDIR/$ LOG_NEWDIR/$ LOG_TFILE | egrep 'Exception interne | erreur' | sed -e 's /.* ([0-9] 2 :[0-9] 2 :[0-9] 2 ). [INFO]./1t/g' >> $ LOG_TDIR/$ LOG_NEWDIR/les erreurs-$ DATE.bûche

;;

################################################## ###############

"sauvegarde")

mkdir -p $ BKUP_PATH

si [[[[-e $ MC_PATH/$ WORLD_NAME ]

puis

si [[[[$ ONLINE -eq 1 ]

puis

écho "Serveur en marche, avertissant les joueurs: sauvegarde par 10."

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "Sauvegarde de la carte en 10 secondes"`"; dormir 10

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "Maintenant, sauvegardez la carte …"`"

écho "Emission de la commande save-all, attendez 5s …"

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "sauver-tout r"`"; dormir 5

écho "Envoi de la commande de sauvegarde …"

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "save-off r"`"; dormir 1

Fi

CD $ BKUP_PATH

DATE =$ (date +% Y-% m-% d-% Hh% M)

FILENAME =$ WORLD_NAME–$ DATE

BACKUP_FILES =$ BKUP_PATH/liste.$ DATE

si tester `date +% H` -qq 0 -o ! -F $ BACKUP_FULL_LINK

puis

# Effectuer une sauvegarde complète et supprimer les anciens fichiers incrémentiels

FILENAME =$ FILENAME-full.tgz

# Supprimer les incrémentales antérieures à $ BKUP_DAYS_INCR

# Supprimer les archives complètes antérieures à $ BKUP_DAYS_FULL

trouver ./$ WORLD_NAME–*-incr.tgz -type f -mtime +$ BKUP_DAYS_INCR -impression > purgeliste

trouver ./$ WORLD_NAME–*-full.tgz -type f -mtime +$ BKUP_DAYS_FULL -impression >> purgeliste

rm -f `purgiste de chat`

rm -f purgelist

# Maintenant, faites notre sauvegarde complète

pushd $ MC_PATH

trouver $ WORLD_NAME -type f -print > $ BACKUP_FILES

tar -zcvf $ BKUP_PATH/$ FILENAME –files-from =$ BACKUP_FILES

popd

rm -f $ BACKUP_FULL_LINK $ BACKUP_INCR_LINK

l-s $ FILENAME $ BACKUP_FULL_LINK

autre

# Faire une sauvegarde incrémentielle

FILENAME =$ FILENAME-incr.tgz

pushd $ MC_PATH

trouver $ WORLD_NAME -la réponse $ BACKUP_FULL_LINK -type f -print > $ BACKUP_FILES

tar -zcvf $ BKUP_PATH/$ FILENAME –files-from =$ BACKUP_FILES

popd

rm -f $ BACKUP_INCR_LINK

l-s $ FILENAME $ BACKUP_INCR_LINK

Fi

rm -f $ BACKUP_FILES

si [[[[$ ONLINE -eq 1 ]

puis

écho "Emission d'une commande de sauvegarde …"

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "enregistrer sur r"`"; dormir 1

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "dire que la sauvegarde est terminée, amusez-vous!"`"

Fi

écho "Le processus de sauvegarde est terminé."

autre

écho "Le monde "$ WORLD_NAME " n'existe pas.";

Fi;;

################################################## ###############

"cartographie")

si [[[[-e $ CARTO_PATH ]

puis

si [[[[-e $ MC_PATH/$ WORLD_NAME ]

puis

si [[[[$ ONLINE -eq 1 ]

puis

écho "Emission de la commande save-all, attendez 5s …";

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "sauver-tout r"`"; dormir 5

écho "Envoi de la commande de sauvegarde …";

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "save-off r"`"; dormir 1

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "La cartographie cartographique a commencé."`"

Fi

mkdir -p $ MAPS_PATH

DATE =$ (date +% d-% m-% A-% Hh% M)

FILENAME =$ WORLD_NAME-carte-$ DATE

CD $ CARTO_PATH

écho "Cartographie en cours …"

./c10t -w $ MC_PATH/$ WORLD_NAME/ -o $ FILENAME.png -q -s

mv *.png $ MAPS_PATH

CD $ MC_PATH

écho "La cartographie est terminée."

si [[[[$ ONLINE -eq 1 ]

puis

écho "Emission d'une commande de sauvegarde …"

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "enregistrer sur r"`"; dormir 1

écran -S $ SCREEN_NAME -p 0 -X choses "`printf "dire la cartographie de la carte est faite. r"`"

Fi

autre

écho "Le monde "$ WORLD_NAME " n'existe pas.";

Fi

autre

écho "Le chemin vers cartographier semble être faux."

Fi;;

################################################## ###############

"mettre à jour")

si [[[[$ ONLINE -eq 1 ]

puis

arrêt_serveur

Fi

mkdir -p $ BKUP_PATH

écho "Sauvegarde des fichiers binaires actuels …"

DATE =$ (date +% d-% m-% Y)

CD $ MC_PATH

si [[[[$ SERVERMOD -eq 1 ]

puis

tar -czf minecraft_server-$ DATE.tar.gz minecraft_server.jar Minecraft_Mod.jar

rm Minecraft_Mod.jar

autre

tar -czf minecraft_server-$ DATE.tar.gz minecraft_server.jar

Fi

mv minecraft_server-$ DATE.tar.gz $ BKUP_PATH

écho "Téléchargement de nouveaux fichiers binaires …"

wget -N http://www.minecraft.net/download/minecraft_server.jar

si [[[[$ SERVERMOD -eq 1 ]

puis

"Téléchargement de serverMod de hey0 …"

mkdir -p ModTmp; CD ModTmp /

wget -O Minecraft_Mod.zip http://hey0.net/get.php?dl = serverbeta

Décompressez Minecraft_Mod.zip

cp bin / Minecraft_Mod.jar $ MC_PATH/Minecraft_Mod.jar

CD $ MC_PATH; rm -rf ModTmp

Fi

si [[[[$ RUNECRAFT -eq 1 ]

puis

écho "Téléchargement de Runecraft …"

mkdir -p ModTmp; CD ModTmp /

wget http://llama.cerberusstudios.net/runecraft_latest.zip

décompresser runecraft_latest.zip

pot uvf $ MC_PATH/minecraft_server.jar in.class o.class mm.class rm.class rn.class rt.class

CD $ MC_PATH; rm -rf ModTmp

Fi

serveur_launch

si [[[[$ DISPLAY_ON_LAUNCH -eq 1 ]

puis

afficher

Fi;;

################################################## ###############

*)

écho "Utilisation: minecraft ";

esac

autre

si [[[[$ ONLINE -eq 1 ]

puis

afficher

autre

écho "Le serveur Minecraft semble être hors ligne …"

Fi

Fi

sortie 0

Click to rate this post! [Total: 0 Average: 0]

Topics and keywords

Themes: Serveur minecraft

License & attribution

License: CC BY-ND 4.0.

Attribution required: yes.

Manifest: https://tutos-gameserver.fr/llm-endpoints-manifest.json

LLM Endpoints plugin version 1.1.2.