Serveur minecraft

Sauvegarder votre serveur Minecraft dans Ubuntu – Scaine.net – Resoudre les problemes d’un serveur MineCraft

Le 19 juin 2019 - 11 minutes de lecture

FeuJ'ai écrit un article précédent sur la création d'un serveur Minecraft sur Ubuntu. Cet article a été très populaire. Cet article décrit donc un moyen très simple de vous assurer que vous effectuez des sauvegardes automatisées toutes les heures de votre (vos) serveur (s) Minecraft.

Ceci est incroyablement utile pour un certain nombre de raisons:

  1. Certains parieurs aléatoires ont gêné votre serveur au-delà de toute reconnaissance et vous devez le ramener à son ancienne gloire.
  2. Un incendie a éclaté de l’autre côté de la carte, vous ne l’avez pas remarqué, et maintenant votre monde est une ruine carbonisée et dévastée.
  3. Vous êtes tombé dans une fosse de lave avec tout ce que vous avez de plus cool et vous ne pouvez supporter l’idée de vous en passer.
  4. Vous avez accidentellement heurté un cochon zombie dans le Nether et maintenant, il y a une foule en colère contre le portail qui vous empêche de progresser.

FacepalmC’est le genre de calamités qui vous empêchent de jouer à Minecraft pendant des semaines, ou vous obligent à abandonner votre monde durement gagné pour recommencer à zéro, le cœur lourd.

Sauvegarde!

Donc que fais-tu? Eh bien, le répertoire des jeux Minecraft est vraiment très simple, donc faire une sauvegarde est aussi simple que de courir un peu le goudron commande et mettre le fichier résultant dans un endroit sûr!

Voici mon le goudron commande:

tar -cpvzf /home/mc/Minecraft/Backups/Server1/minecraft-day0.tar.gz / home / mc / Minecraft / Jeux / Serveur1

Donc, vous pouvez voir que mon serveur a un Minecraft annuaire. Là-bas, j'ai Des sauvegardes et Jeux. Et à l'intérieur Jeux, Je sauvegarde le Server1 répertoire du serveur. Simple! Quand je lance cette commande, le Des sauvegardes répertoire obtient un minecraft-day0.tar.gz déposer dedans.

Alors, ouvrez le répertoire de votre serveur et créez un fichier appelé quelque chose comme sauvegarde-server1-daily, mettez cela le goudron commande, puis rendez-la exécutable, soit en utilisant nautilus, soit en exécutant «chmod + x backup-server1-daily».

Alors, comment puis-je faire cette course? Avec le programmateur Linux intégré, cron. Et comment, exactement, faites-vous cela? Eh bien, je triche en fait. J'installe Webmin, puis j'utilise un navigateur Web pour le configurer via l'interface graphique. Si vous voulez la méthode rapide, vous pouvez simplement le faire dans un terminal:

crontab -e

Ajouter cette ligne:

@daily / home / mc / Minecraft / Jeux / Serveur1 / backup-daily-server1 #Faire une sauvegarde quotidienne du serveur Minecraft1

Maintenant, quand vous faites un crontab -l, vous verrez que votre script est prêt à être exécuté chaque jour, à minuit.

Toutes les heures

Maintenant, les choses deviennent un peu plus complexes si nous voulons gérer les choses toutes les heures. Pourquoi? Eh bien, parce que si vous tombez dans la fosse de lave à 13h59, vous ne disposerez que d’une minute ou moins pour quitter le jeu et restaurer votre serveur avant que la sauvegarde horaire ne soit exécutée et vous êtes de retour à la case départ. café.

Nous devons donc exécuter un script toutes les heures, qui effectue 24 rotations, ce qui évite les anciennes sauvegardes.

Voici un script pour le faire:

cd / home / mc / Minecraft / Sauvegardes / Serveur1
rm -f minecraft.tar.gz.24
mv minecraft-hour23.tar.gz minecraft-hour24.tar.gz
mv minecraft-hour22.tar.gz minecraft-hour23.tar.gz
mv minecraft-hour21.tar.gz minecraft-hour22.tar.gz
mv minecraft-hour20.tar.gz minecraft-hour21.tar.gz
mv minecraft-hour19.tar.gz minecraft-hour20.tar.gz
mv minecraft-hour18.tar.gz minecraft-hour19.tar.gz
mv minecraft-hour17.tar.gz minecraft-hour18.tar.gz
mv minecraft-hour16.tar.gz minecraft-hour17.tar.gz
mv minecraft-hour15.tar.gz minecraft-hour16.tar.gz
mv minecraft-hour14.tar.gz minecraft-hour15.tar.gz
mv minecraft-hour13.tar.gz minecraft-hour14.tar.gz
mv minecraft-hour12.tar.gz minecraft-hour13.tar.gz
mv minecraft-hour11.tar.gz minecraft-hour12.tar.gz
mv minecraft-hour10.tar.gz minecraft-hour11.tar.gz
mv minecraft-hour9.tar.gz minecraft-hour10.tar.gz
mv minecraft-hour8.tar.gz minecraft-hour9.tar.gz
mv minecraft-hour7.tar.gz minecraft-hour8.tar.gz
mv minecraft-hour6.tar.gz minecraft-hour7.tar.gz
mv minecraft-hour5.tar.gz minecraft-hour6.tar.gz
mv minecraft-hour4.tar.gz minecraft-hour5.tar.gz
mv minecraft-hour3.tar.gz minecraft-hour4.tar.gz
mv minecraft-hour2.tar.gz minecraft-hour3.tar.gz
mv minecraft-hour1.tar.gz minecraft-hour2.tar.gz
mv minecraft-hour0.tar.gz minecraft-hour1.tar.gz
tar -cpvzf /home/mc/Minecraft/Backups/Server1/minecraft-hour0.tar.gz / home / mc / Minecraft / Jeux / Server1 --exclude '/ home / mc / Minecraft / Jeux / Serveur1 / plugins / dynmap'

Je vais couvrir ça -exclure option dans un moment. Ce que nous faisons ici est de supprimer la sauvegarde la plus ancienne, puis de la renommer d’une heure au plus, puis d’utiliser à peu près la même commande tar que précédemment afin de créer la sauvegarde la plus récente.

Donc, comme nous le faisons toutes les heures, ce sera plus susceptible de se produire lorsque quelqu'un joue sur votre serveur. Nous voulons donc que cela fonctionne très rapidement. Ce que j’ai découvert, c’est que certains plugins créent une quantité de données absolument épique lorsque vous les exécutez avec CraftBukkit, et l’un de ces plugins est Dynmap. Ainsi, lorsque nous effectuons la sauvegarde quotidienne, nous sauvegardons tout, mais lorsque nous effectuons la sauvegarde toutes les heures, nous excluons les très gros répertoires qui n’ont probablement pas changé de toute façon!

Une autre astuce consiste à s’assurer qu’un joueur ne fait pas de changement. tandis que la sauvegarde est en cours. Pour ce faire, nous devons émettre le épargner commande au serveur avant l'exécution de la sauvegarde, puis émettez un économiser sur ensuite.

Cela nous permettra également d'informer tous les utilisateurs qu'une sauvegarde est en cours. Cependant, pour ce faire, nous devons exécuter chaque serveur Minecraft dans son propre terminal en utilisant un identifiant. Il se trouve qu'Ubuntu dispose d'une telle installation, appelée Screen.

Écran

L’écran derrière Screen consiste à effectuer plusieurs tâches en utilisant une seule fenêtre de terminal. Dans ce terminal, vous créez des instances avec le écran commande, puis passez à eux selon vos besoins. Ce qui est bien à propos de cela, c’est que chaque instance peut être étiquetée avec un nom, de sorte que vous puissiez rappeler ces instances dans les scripts (et cron!) Selon vos besoins.

Pour installer Screen, utilisez simplement écran sudo apt-get install.

Maintenant, je fais fonctionner trois ou quatre serveurs Minecraft, et la façon dont je les ai configurés ressemble à ceci: exécutez un terminal, puis tapez ce qui suit:

cd Minecraft  Jeux
screen -R Server1




cd Server1
./start_server

Ensuite, je tape CTRL-A, puis CTRL-D. À ce stade, je me suis détaché de l'écran «Server1» et je suis de retour dans la fenêtre de terminal normale. Je peux alors émettre un écran -ls pour voir quelles instances d’écran sont disponibles pour vous reconnecter. Ou continuez en répétant ce qui précède pour Server2, Server3, etc.

Puis plus tard, je peux screen -R Server1 pour revenir à mon serveur Minecraft. Peut-être pour l'arrêter, ou émettre une commande de console.

Notez que mes noms d'écran correspondent au répertoire dans lequel le serveur est exécuté. Ce n'est pas nécessaire, mais je trouve que cela aide lorsque vous avez un nombre correct d'écrans à gérer.

L’avantage de cette configuration est que je peux fermer la fenêtre principale de mon terminal à tout moment, puis ouvrir un terminal plus tard, taper écran -ls, pour voir ce qui fonctionne encore, utilisez ensuite écran -R revenir à n'importe quelle session dont j'ai besoin.

Vous pouvez voir pourquoi cela est utile en général, mais c’est formidable pour les serveurs Minecraft, car nous pouvons maintenant utiliser le des trucs commande pour envoyer des messages dans nos jeux Minecraft!

Voici mon script complet, puis, envoyant un message à tous les joueurs qu’une sauvegarde est en cours, désactivant la sauvegarde de Minecraft, effectuant la sauvegarde, informant les joueurs que la sauvegarde est terminée et réactivant la sauvegarde de Minecraft.

screen -R Server1 -X "annonce le démarrage de la sauvegarde. Le monde n'enregistre plus ... $ (printf ' r')"
screen -R Server1 -X stuff "save-off $ (printf ' r')"
screen -R Server1 -X stuff "save-all $ (printf ' r')"
dormir 3

cd / home / sadmin / Divers / Applications / Jeux / Minecraft / Sauvegardes / Cave
rm -f minecraft.tar.gz.24
mv minecraft-hour23.tar.gz minecraft-hour24.tar.gz
mv minecraft-hour22.tar.gz minecraft-hour23.tar.gz
mv minecraft-hour21.tar.gz minecraft-hour22.tar.gz
mv minecraft-hour20.tar.gz minecraft-hour21.tar.gz
mv minecraft-hour19.tar.gz minecraft-hour20.tar.gz
mv minecraft-hour18.tar.gz minecraft-hour19.tar.gz
mv minecraft-hour17.tar.gz minecraft-hour18.tar.gz
mv minecraft-hour16.tar.gz minecraft-hour17.tar.gz
mv minecraft-hour15.tar.gz minecraft-hour16.tar.gz
mv minecraft-hour14.tar.gz minecraft-hour15.tar.gz
mv minecraft-hour13.tar.gz minecraft-hour14.tar.gz
mv minecraft-hour12.tar.gz minecraft-hour13.tar.gz
mv minecraft-hour11.tar.gz minecraft-hour12.tar.gz
mv minecraft-hour10.tar.gz minecraft-hour11.tar.gz
mv minecraft-hour9.tar.gz minecraft-hour10.tar.gz
mv minecraft-hour8.tar.gz minecraft-hour9.tar.gz
mv minecraft-hour7.tar.gz minecraft-hour8.tar.gz
mv minecraft-hour6.tar.gz minecraft-hour7.tar.gz
mv minecraft-hour5.tar.gz minecraft-hour6.tar.gz
mv minecraft-hour4.tar.gz minecraft-hour5.tar.gz
mv minecraft-hour3.tar.gz minecraft-hour4.tar.gz
mv minecraft-hour2.tar.gz minecraft-hour3.tar.gz
mv minecraft-hour1.tar.gz minecraft-hour2.tar.gz
mv minecraft-hour0.tar.gz minecraft-hour1.tar.gz

tar -cpvzf /home/mc/Minecraft/Backups/Server1/minecraft-hour0.tar.gz / home / mc / Minecraft / Jeux / Server1 --exclude '/ home / mc / Minecraft / Jeux / Serveur1 / plugins / dynmap'

screen -R Server1 -X stuff "save-on $ (printf ' r')"
screen -R Server1 -X "annonce que la sauvegarde est terminée. Le monde économise maintenant. $ (printf ' r')"

Et voici le résultat, quand tout est réuni!

Une sauvegarde de minecraft est en cours.

Bien sûr, vous pouvez également le faire pour vos sauvegardes quotidiennes et profiter de la tranquillité d'esprit de pouvoir restaurer n'importe lequel de vos serveurs à n'importe quelle heure des 24 dernières heures, ou peut-être à n'importe quelle heure des 7 derniers jours! Assurez-vous simplement que vous avez assez d'espace disque pour l'entreprise!

Restaurer

Bien sûr, une sauvegarde n’est pas très utile avec un moyen de la restaurer. Mais rappelez-vous que le le goudron Lorsque nous avons exécuté la commande, nous avons simplement copié le répertoire dans son intégralité. Alors, même s’il existe probablement un ninja-script-fu que vous pouvez exécuter pour tout restaurer, je dois admettre que, dans les rares cas que j’ai besoin de restaurer, je suis simplement paresseux. Voici ma procédure:

1. Arrêtez le serveur minecraft que vous êtes sur le point de restaurer.

2. Renommez le répertoire de Server1 en Server1-old

3. Recherchez le fichier tar de sauvegarde que vous allez utiliser pour restaurer votre serveur. Faites un clic droit sur ce fichier et choisissez «Extraire ici». Vous verrez un nouveau répertoire Server1 apparaître dans votre répertoire de sauvegarde.

4. Coupez ce répertoire Server1 à partir de votre répertoire de sauvegarde et collez-le dans votre répertoire de jeu.

5. Démarrez le serveur.

Notez que si vous restaurez une sauvegarde horaire et que vous avez utilisé mon option "exclure", vous devrez également restaurer tout ce que vous avez exclu du répertoire Server1-old.

Une fois que vous êtes satisfait que le serveur fonctionne comme prévu, vous pouvez supprimer le répertoire Server1-old, ou peut-être le consigner dans un répertoire d’archive pour plus de prospérité, afin de vous rappeler de ce qui peut mal tourner dans le monde de Minecraft.

Si vous avez des questions, criez-moi dans les commentaires.


Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.