Script de serveur Minecraft (exécutez le serveur minecraft en tant que démon dans Arch) / Multimédia et jeux / Arch Linux Forums – Resoudre les problemes d’un serveur MineCraft

Bonjour à tous, je viens juste de terminer l’édition et la configuration d’un script permettant d’exécuter un serveur Minecraft au démarrage d’Arch. Ceci est basé sur le script original sur le wiki de minecraft ici. Je l'ai modifiée pour pouvoir la placer dans votre dossier /etc/rc.d/ avec le nom "minecraft" (/etc/rc.d/minecraft).

Cela nécessite un utilisateur "minecraft" avec le répertoire personnel / home / minecraft pour fonctionner par défaut.

J'ai décidé de lancer le serveur entièrement en RAM. Je stocke donc tous mes fichiers dans / home / minecraft / backup lorsque le serveur est hors ligne. Quand il démarre, il crée un fichier tmpfs dans / home / minecraft / minecraft et copie tous les fichiers qui s’y trouvent. Il effectue une sauvegarde horaire en utilisant /etc/rc.d/backup stocké dans / home / minecraft / onlinebackup, en effaçant d’abord la sauvegarde actuelle et en en créant une nouvelle. C'est simplement pour économiser de l'espace. En cas de plantage sans arrêt correct du démon, vous aurez une sauvegarde de votre redémarrage précédent (ou de votre serveur Minecraft) dans / home / minecraft / backup et une sauvegarde de l'heure précédente dans / home / minecraft / onlinebackup. Je pense que cela devrait suffire. Vous pouvez sauvegarder manuellement à tout moment en redémarrant le démon.

Tous les chemins peuvent être modifiés. Vous pouvez exécuter ce jeu sous votre utilisateur normal si vous le souhaitez, il suffit de modifier la section Paramètres en haut du fichier. Il peut être nécessaire d’augmenter la quantité de mémoire RAM du serveur et des fichiers tmpfs, en fonction de la taille de vos fichiers (les miens sont minuscules et je n’ai pas entendu parler de plus de 48 Mo pour un monde de jeu, mais on ne sait jamais). Vérifiez simplement df -h de temps en temps pour vous assurer que vos fichiers tmpfs disposent de suffisamment d'espace ou augmentez simplement la taille maximale allouée dès le début. Si vous avez peu de RAM, vous pouvez toujours changer le script pour ne plus utiliser tmpfs.

Si quelqu'un veut, il suffit de demander et je peux mettre en place une version sans tmpfs (devrait être assez facile à supprimer vous-même, mais si vous n'êtes pas sûr que je le ferai pour vous)

Tout ce dont vous avez besoin pour commencer (si vous démarrez votre serveur pour la première fois, en utilisant le script tel quel), c'est l'utilisateur minecraft créé, avec les dossiers backup, onlinebackup et minecraft dans le dossier / home / minecraft, votre fichier minecraft_server.jar. dans / home / minecraft / backup et votre fichier oninebackup dans / home / minecraft / backup.

REMARQUE: le fichier onlinebackup est exécuté à partir de / home / minecraft / minecraft de sorte que, si votre système se bloque, le travail périodique d'exécution des sauvegardes échoue car le lien pointe vers un fichier non existant jusqu'au redémarrage du serveur.

Vous pouvez utiliser ces commandes avec le serveur: /etc/rc.d/minecraft stop

Le système de sauvegarde est conçu pour effacer toutes les sauvegardes des sessions précédentes lors du démarrage du serveur. Par conséquent, ne le configurez pas pour démarrer le serveur au démarrage.

/etc/rc.d/minecraft

#! / bin / bash
# /etc/rc.d/minecraft

. /etc/rc.conf
. /etc/rc.d/functions

Ligne de commentaire ci-dessous si vous utilisez Sun JRE
#. / etc / profile

#Réglages
SERVICE = 'minecraft_server.jar'
USERNAME = "minecraft"
MCPATH = '/ home / minecraft / minecraft'
MCOFFLINEPATH = '/ home / minecraft / backup'
INVOCATION = 'java -Xmx768M -Xms768M -jar minecraft_server.jar nogui'
BACKUPPATH = '/ home / minecraft / onlinebackup'


ME = `whoami`
as_user () 
  si [ "$ME" == "$USERNAME" ] ; puis
    bash -c "$ 1"
  autre
    su -c - $ USERNAME "$ 1"
  Fi


mc_start ()  grep -v grep 

mc_saveoff ()  grep $ SERVICE> / dev / null
    puis
    echo "$ SERVICE est en cours d'exécution ... suspension des sauvegardes."
    as_user "screen -p 0 -S minecraft -X eval 'stuff " dit Servers Backup Start. Serveur en lecture seule ...  " 015 '"
    as_user "screen -p 0 -S minecraft -X eval 'stuff " save-off  " 015'"
    as_user "écran -p 0 -S minecraft -X eval 'stuff " enregistrer-tout  " 015'"
    synchroniser
    dormir 10
  autre
    echo "$ SERVICE n'était pas en cours d'exécution. Ne pas suspendre les sauvegardes."
  Fi


mc_saveon () 
  si ps ax 

mc_stop ()  grep -v grep 


mc_update ()  grep -v -i ECRAN 

mc_backup () 
   echo "Sauvegarde du monde Minecraft"
   si [ -d $BACKUPPATH/world_`date "+%m.%d.%Y"` ]
   puis
     pour i in 1 2 3 4 5 6
     faire
       si [ -d $BACKUPPATH/world_`date "+%m.%d.%Y"`-$i ]
       puis
         continuer
       autre
         as_user "cd $ MCPATH && cp -r monde $ BACKUPPATH / world_`date" +% m.% d.% Y "` - $ i "
         Pause
       Fi
     terminé
   autre
     as_user "cd $ MCPATH && cp -r monde $ BACKUPPATH / world_`date" +% m.% d.% Y "` "
     echo "Monde sauvegardé"
   Fi
   echo "Sauvegarde de l'exécutable du serveur minecraft"
   si [ -f "$BACKUPPATH/minecraft_server_`date "+%m.%d.%Y"`.jar" ]
   puis
     pour i in 1 2 3 4 5 6
     faire
       si [ -f "$BACKUPPATH/minecraft_server_`date "+%m.%d.%Y"`-$i.jar" ]
       puis
         continuer
       autre
         as_user "cd $ MCPATH && cp minecraft_server.jar " $ BACKUPPATH / minecraft_server_`date "+% m.% d.% Y" `- $ i.jar " "
         Pause
       Fi
     terminé
   autre
     as_user "cd $ MCPATH && cp minecraft_server.jar " $ BACKUPPATH / minecraft_server_`date "+% m.% d.% Y" `.jar " "
   Fi
   echo "Sauvegarde terminée"



# Start-Stop here
case "$ 1" dans
  début)
    mc_start
    ;;
  Arrêtez)
    mc_stop
    ;;
  redémarrer)
    mc_stop
    mc_start
    ;;
  mettre à jour)
    mc_stop
    mc_backup
    mc_update
    mc_start
    ;;
  sauvegarde)
    mc_saveoff
    mc_backup
    mc_saveon
    ;;
  statut)
    si ps ax | grep -v grep | grep -v -i ECRAN | grep $ SERVICE> / dev / null
    puis
      echo "$ SERVICE est en cours d'exécution."
    autre
      echo "$ SERVICE n'est pas en cours d'exécution."
    Fi
    ;;

  *)
  echo "Utilisation: /etc/rc.d/minecraft  backup "
  sortie 1
  ;;
esac


sortie 0

/ home / minecraft / sauvegarde / sauvegarde en ligne

#! / bin / bash
# / home / minecraft / backup / onlinebackup
rm -rf / home / minecraft / onlinebackup / *
/etc/rc.d/minecraft backup

METTRE À JOUR:

rationalOgre a créé un autre script avec un système de sauvegarde différent, qui conservera indéfiniment les copies compressées de votre monde, ainsi qu'une fonction de mise à jour fonctionnelle. https://bbs.archlinux.org/viewtopic.php… 97 # p944797

Dernière édition par PIMPinator (2011-06-08 14:00:54)

Script de serveur Minecraft (exécutez le serveur minecraft en tant que démon dans Arch) / Multimédia et jeux / Arch Linux Forums – Resoudre les problemes d’un serveur MineCraft
4.9 (98%) 32 votes