Tutoriales / Crear un demonio de inicio de Mac OS X

Quien soy
Aina Martin
@ainamartin
Autor y referencias
Este art√≠culo necesita una limpieza para cumplir con la gu√≠a de estilo. [discutir] Por favor ayude a mejorar esta p√°gina. La p√°gina de discusi√≥n puede contener sugerencias.

Crear un demonio de Mac OS X adecuado y seguro es una tarea relativamente difícil. Tenga en cuenta que este documento es un trabajo en progreso.

Contenido

  • 1 Introducci√≥n
  • 2 Palabras de inter√©s sobre sudo
  • 3 Lista de tareas
  • 4 Creaci√≥n de un usuario y grupo de demonios de _minecraft
    • 4.1 La forma f√°cil (e incorrecta)
    • 4.2 El camino dif√≠cil (y correcto)
      • 4.2.1 Creaci√≥n del grupo (GID)
      • 4.2.2 Creando el usuario (UID)
      • 4.2.3 Creaci√≥n de la casa de usuario
      • 4.2.4 Mover los archivos del servidor
  • 5 archivos de soporte
    • 5.1 minecraft.command
      • 5.1.1 Explicaci√≥n
      • Terminaci√≥n 5.1.2
    • 5.2 start.sh
    • 5.3 stop.sh
      • 5.3.1 Explicaci√≥n
      • 5.3.2 redirecci√≥n stdin
      • Terminaci√≥n 5.3.3
  • 6 archivos de soporte: una variante
  • 7 Archivo de soporte - Singular
  • 8 net.minecraft.server.plist
  • 9 Copiar y probar archivos
    • 9.1 Secuencias de comandos de Shell
    • 9.2 Ejecutar demonio
  • 10 Inicio / apagado autom√°tico
    • 10.1 server_daemon.command
      • 10.1.1 Explicaci√≥n
      • 10.1.2 √Āreas de mejora
  • 11 Consideraciones sobre la copia de seguridad
    • 11.1 net.minecraft.server.backup.plist
    • 11.2 comando de copia de seguridad
  • 12 Atarlo

Introducción

Al crear un demonio de inicio de Mac OS X, puede funcionar para algunas personas, pero no para otras. Por lo tanto, se recomienda encarecidamente no crear uno a menos que conozca la Terminal y la Consola, y tenga una buena mente anal√≠tica que le dir√° cada vez que est√© cometiendo errores. Este art√≠culo es m√°s una mano amiga, por lo que si no tiene conocimientos previos sobre Terminal y Consola, este art√≠culo puede no ser muy √ļtil.





Esta página le ayudará a hacer que su servidor de Minecraft funcione de forma segura sin tener que iniciar sesión como usuario. Ha sido probado en Mac OS X Server Snow Leopard y Mac OS X Snow Leopard. Su kilometraje variará en otros lugares, ya que los comandos han cambiado un poco.

Antes incluso de intentar esto, debe ejecutar una instancia de servidor a mano, para asegurarse de que todo funcione. Si puede ejecutar su servidor y realmente conectarse a él desde una computadora remota, puede comenzar a pensar en crear un demonio.

Palabras de interés sobre sudo

Es mejor usar siempre sudo para cada comando necesario como root. Mucha gente cree que sudo su - es la mejor opción. Aunque esto puede ser más fácil, también es mucho más peligroso hacerlo. Olvidar que eres root y hacer algo incómodo te da más oportunidades de destruir tu computadora.

Es mucho más seguro y, por lo tanto, se recomienda encarecidamente moverse primero a la carpeta adecuada y luego realizar la acción para un archivo o carpeta precisa. Esto se debe a que muchas personas que han intentado crearlo sin moverlo a la carpeta adecuada, han presionado por error retorno al ejecutar un comando desagradable y lo han aplicado a toda su computadora. Es preferible que no aprenda a moverlo primero a la carpeta adecuada de la manera difícil.

La √ļltima raz√≥n por la que es mejor usar sudo es porque cada comando de sudo est√° registrado en su consola, lo que significa que sabe lo que sucede, y si hizo algo incorrecto, puede revisar su registro y saber qu√© hizo para intentar repararlo. Hacer un sudo su - solo mostrar√° eso. Sin embargo, es tu computadora, son tus h√°bitos, ¬°haz lo que quieras con ella!



Lista de quehaceres

  • La asignaci√≥n de puertos no es compatible con esta versi√≥n
  • El servidor no se cierra correctamente cuando se apaga el sistema. Esto deber√° ser investigado
  • La copia de seguridad debe tener su usuario, tener una trampa y, de hecho, sugerir un esquema de copia de seguridad, como una copia de seguridad incremental rsync o algo as√≠.

Creación de un usuario y grupo de demonios de _minecraft

Esta sección es técnicamente opcional, pero por razones de seguridad, debe hacerlo, preferiblemente de la "manera dura y correcta".

Es muy importante hacer uno de los siguientes métodos, específicamente de la manera difícil y correcta, ya que si no haces nada, cualquiera que piratee tu computadora a través de Minecraft podrá hacer lo que quiera. Por lo tanto, si no desea que esto suceda, debe hacerlo de la manera correcta y difícil.

La forma f√°cil (e incorrecta)

  1. Haga clic en el elemento del men√ļ de Apple
  2. Abrir preferencias del sistema
  3. Haga clic en Sistema: Cuentas
  4. Haga clic en el candado para desbloquear la p√°gina.
  5. Ingrese su contrase√Īa de administrador
  6. Haga clic en el botón Más
  7. Cree un nuevo usuario est√°ndar, llamado Minecraft (aseg√ļrese de modificar el archivo plist de launchd que dice que est√° usando un usuario diferente) con una contrase√Īa
  8. Haga clic en Aceptar"

Una vez que haya completado estos pasos, ¬°habr√° terminado! Sin embargo, esto crea un usuario de pleno derecho, mientras que Mac OS X espera un usuario demonio. Como beneficio adicional, puede ejecutar esto como su propio usuario personal o cualquier otra posibilidad para los usuarios. Sin embargo, si su usuario de Minecraft es pirateado, el hacker tendr√° una cuenta completa para divertirse, acceder a todo su software y poder modificar todo lo que es p√ļblico. Por lo tanto, aunque este m√©todo puede ser f√°cil, no es del todo seguro, por lo que se recomienda crear el usuario y grupo de demonios _minecraft de la manera m√°s dif√≠cil.



El camino difícil (y correcto)

El usuario se creará primero con un guión bajo, lo que indica que es un demonio y debe estar oculto a la vista del usuario. También se creará con un UID de demonio. Usaremos dscl para crear un usuario y un grupo. Evidentemente, hay que hacerlo con privilegios. Abra Terminal y escriba

MyMac: ~ myuser $ sudo dscl Contrase√Īa: (su contrase√Īa) Ingresando al modo interactivo ... (escriba "ayuda" para los comandos)

Vayamos a la carpeta base para lo que tenemos que hacer (menos tipeo)

> cd / Local / Predeterminado / / Local / Predeterminado>

Si est√° ejecutando un Mac OS X Server, utilice el Administrador de grupos de trabajo [WGM] suministrado por Apple para crear las carpetas de usuario, grupo y de inicio con un esfuerzo m√≠nimo. Aseg√ļrese de utilizar n√ļmeros de identificaci√≥n inferiores a 1024 (en este ejemplo se utiliza 300).

Si tiene otra autenticación de directorio, es posible que deba moverse a otra carpeta en lugar de Local. Utilice el comando ls para ver las diferentes carpetas. Para saber si está en el buen lugar, debe tener una carpeta de Usuarios con diferentes nombres con prefijo de subrayado (como _coreaudiod, _softwareupdate y _www).

Creando el grupo (GID)

/ Local / Predeterminado> ls Grupos gid

Esto mostrará una lista de todos los grupos creados en su computadora, junto con sus GID. No importa cuáles sean, solo se necesita un GID vacío, potencialmente en el rango del demonio (menos de 500). Verifique si 300 no está en uso.

/ Local / Predeterminado> crear Grupos / _minecraft / Local / Predeterminado> crear Grupos / _minecraft PrimaryGroupID 300

En este punto, se debe crear su grupo y asignarle el GID 300 (o cualquier n√ļmero que elija). Puede verificarlo con el comando ls Groups gid y puede compararlo con otros con el comando read Groups / _minecraft.

Creando el usuario (UID)

/ Local / Predeterminado> ls Users uid

Esto mostrará una lista de todos los usuarios creados en su computadora, junto con sus UID. Nuevamente, no importa cuáles sean, pero es necesario un UID vacío, nuevamente en el rango del demonio (menos de 500). Verifique si 300 no está en uso. Puede seleccionar un UID y GID diferentes, no es necesario que sean idénticos, pero ciertamente es más ordenado si lo son.

/ Local / Predeterminado> crear Usuarios / _minecraft UserShell / bin / bash / Local / Predeterminado> crear Usuarios / _minecraft UniqueID 300 / Local / Predeterminado> crear Usuarios / _minecraft PrimaryGroupID 300 / Local / Predeterminado> crear Usuarios / _minecraft NFSHomeDirectory / Users / _minecraft

Esto creó su usuario. Obviamente, debe modificar el UniqueID (UID) para el que eligió en este paso y el PrimaryGroupID para el que eligió en la sección anterior. También puede elegir un directorio de inicio diferente. Puede poner su carpeta de Minecraft con los otros usuarios, pero está bien poner esto en cualquier lugar que desee, de verdad.

Al igual que para el GID, puede usar ls Users uid y leer Users / _minecraft para asegurarse de que todo esté bien.

Ahora, le dijimos al usuario que tenemos un grupo (PrimaryGroupID) pero necesitamos decirle al grupo que tiene usuarios:

/ Local / Predeterminado> agregar grupos / _minecraft GroupMembership _minecraft

¬°Y hemos terminado!

/ Local / Predeterminado> salir Adiós

Es posible que desee algo como esto para evitar que el usuario aparezca en el men√ļ desplegable de inicio de sesi√≥n:

sudo dscl. eliminar / Usuarios / _minecraft AuthenticationAuthority sudo dscl. crear / Usuarios / _minecraft Contrase√Īa "*"

Creando la casa del usuario

Ahora necesitamos crear la carpeta de inicio. Suponiendo que lo describió anteriormente como / Users / _minecraft, escriba:

MyMac: ~ myuser $ cd / Users MyMac: Usuarios myuser $ sudo mkdir _minecraft MyMac: Usuarios myuser $ sudo chown _minecraft: _minecraft _minecraft o simplemente sudo createhomedir -u _minecraft source: http://support.apple.com/kb/TA21050? viewlocale = en_US MyMac: Usuarios myuser $ ls -la

¡Vaya, hay muchos _minecraft aquí! Aquí hay una versión en la que puedes entender algo (¡no vayas a ejecutar esto, dicho eso!)

cd / Users sudo mkdir UserFolder sudo chown UserName: GroupName UserFolder ls -la

¡Aquí ... mejor! Si estos comandos se ejecutan, significa que su usuario y grupo se crearon correctamente en los pasos anteriores. En este punto, ls -la debería darle algo como

total 0 drwxr-xr-x 5 administrador raíz 170 15 jui 2010. drwxrwxr-x @ 34 root admin 1224 6 ene 23:33 .. -rw-r - r-- 1 root wheel 0 1 de julio de 2009 .localized drwxrwxrwt 5 root wheel 170 30 sep 20:18 Shared drwxr-xr-x + 27 _minecraft _minecraft 0 26 de febrero 12:54 _minecraft drwxr-xr-x + 27 personal de sakamura 918 10 de noviembre 21:48 sakamura

Mover los archivos del servidor

Eso es un paseo por el parque comparado con lo que pasamos. Primero, aseg√ļrese de que su servidor de Minecraft no se est√© ejecutando, ¬°o definitivamente perder√° datos! Luego...

MyMac: ~ myuser $ cd / Users / _minecraft MyMac: _minecraft myuser $ sudo mv ~ / Desktop / Minecraft Server / *. MyMac: _minecraft myuser $ sudo chown -R _minecraft: _minecraft *

Por supuesto, desea ajustar seg√ļn sea necesario, con la ruta de inicio donde realmente instal√≥ su servidor de Minecraft en primer lugar, y consulte la secci√≥n anterior para obtener una explicaci√≥n del comando chown. Y no olvide el punto al final del comando mv, apenas es visible pero est√° ah√≠, ¬°significa que el destino es nuestra carpeta actual! De lo contrario, el comando fallar√°

Consejo n. ¬į 1: si presiona Tab una vez, completar√° autom√°ticamente el nombre del archivo / carpeta. Eso es muy √ļtil para escribir r√°pidamente caracteres especiales como la barra espaciadora malvada que debe escribirse primero con una barra invertida.

Consejo # 2: Si presiona Tab dos veces, le mostrará todas las posibilidades de autocompletar posibles, para darle una opción rápida si olvidó cómo está escrito en realidad.

Consejo para el lector astuto: en lugar de hacer un chown una vez en el paso anterior y un chown en este paso, es más rápido simplemente mover la carpeta y hacer chown -R en la carpeta resultante. Un comando menos. La razón por la que se recomienda hacerlo dos veces es para asegurarse de que su Usuario y Grupo se hayan creado correctamente en el paso anterior. Pero no hay motivo.

Archivos de soporte

Necesita algunos archivos para que esto funcione adecuadamente. Se podría hacer con menos archivos, pero de esa manera es más legible. Cópielos con cuidado y modifique lo que deba modificarse en consecuencia. Una buena opción es usar vim como editor de texto, ya que mantiene los retornos de carro en sus lugares correctos y no trata de ser inteligente conmigo. Sin embargo, también (con emacs) es uno de los editores más difíciles de usar, de otra época. En cuanto a la GUI, Apple TextEdit debería estar bien para esto, siempre que siga las instrucciones de Mac OS X Configuración de una página de servidor (IE: Make as Plain Text). Nota: estos deben crearse en una ubicación temporal, como su escritorio. Las instrucciones para mudarse a la ubicación final se encuentran más abajo.

minecraft.command

#! / bin / bash trap 'echo "$ (fecha) Matando Minecraft."; ./stop.sh; exit 'TERM ipconfig waitall echo "$ (fecha) Iniciando Minecraft". ./start.sh & wait echo "$ (fecha) Minecraft terminado".

Explicación

De regreso a la escuela, estoy aprendiendo mucho.

Rescisión

Mac OS X Launchd env√≠a un SIGTERM (control-co se√Īal 15) para matar un demonio. Java plain regresa cuando recibe uno. Por lo tanto, debe atraparlo antes de que llegue a java. Todo el c√≥digo stop.sh podr√≠a agregarse a la l√≠nea de trampa (con muchos; y, pero ser√≠a complicado).

El script de inicio debe iniciarse de forma asincrónica y esperar, ya que la trampa debe salir, esperar para ejecutarse correctamente. Consulte los ejemplos de trampa y la explicación aquí.

start.sh

#! / bin / bash touch stdin.commandlist tail -n 0 -f stdin.commandlist | java -Xmx1G -Xms1G -jar servidor_de_minecraft.jar nogui

stop.sh

#! / bin / bash PID = `lsof -i -P | grep ': 25565 (ESCUCHAR)' | awk '{imprimir $ 2}' `if [" $ PID "! =" "]; luego echo "Killing MineCraft Server PID = $ PID" kill -TERM $ PID else echo "MineCraft not running" fi

Explicación

redirección stdin

En los otros sistemas similares a Unix, el comando de pantalla se usa para crear una pantalla TTY separada para ejecutar el sistema java. La principal ventaja es poder cambiar a esa pantalla si alguien quiere interactuar directamente con el servidor. Eso funcionaría si pusiera el plist de launchd en su carpeta de usuario personal, pero no funcionará en el demonio de inicio y, específicamente, no es compatible con launchd, aunque puede obtener una pantalla actualizada que no lo hará. causar problemas.

Hay varias formas de enviar comandos, incluido un mkfifo que funcionará bien, pero causará problemas con los retornos de carro. Por lo tanto, es preferible usar un archivo y agregar los comandos que desea enviar a Java a través de una tubería.

Rescisión

El comando tail terminar√° autom√°ticamente una vez que Java termine.

Archivos de soporte: una variante

Es posible que lo anterior no funcione para algunas personas por varias razones: el comando tail nunca terminó y launchd no funcionaba correctamente con start.sh y stop.sh ejecutándose en subshells. Además, es mejor tener un apagado limpio en el que se le indique al servidor que guarde todo y se detenga en lugar de simplemente ser eliminado.

minecraft.command:

#! / bin / bash trap 'echo "$ (fecha) Matando Minecraft."; . ./stop.sh 'HUP INT TERM ipconfig waitall echo "$ (fecha) Iniciando Minecraft." . ./start.sh espera `gato minecraft.pid` echo" $ (fecha) Minecraft terminado ".

En lo anterior, obtenemos start.sh y stop.sh, en lugar de ejecutarlos en subcapas. Sin embargo, necesitamos que Java se ejecute en segundo plano, por lo que start.sh se cambia para hacer eso. También guarda el PID en minecraft.pid. Debido a que la cola no salía, también usé un quince.

start.sh:

#! / bin / bash rm -f comando-fifo mkfifo comando-fifo java -Xmx1G -Xms1G -jar craftbukkit.jar nogui <> comando-fifo & echo $! > | minecraft.pid

Tenga en cuenta que si no utiliza craftbukkit, sino el servidor normal. donde dice "craftbukkit.jar" debería leer "minecraft_server.jar" Finalmente se cambia stop para detener el servidor limpiamente.

stop.sh:

#! / bin / bash PID = `gato minecraft.pid` if [" $ PID "! =" "]; luego echo "Deteniendo MineCraft Server PID = $ PID" echo guardar-todo >> comando-FIFO echo detener >> comando-Fifo esperar $ PID rm minecraft.pid echo "Cierre de MineCraft completo". else echo "MineCraft no se est√° ejecutando" fi

Archivo de soporte - Singular

No es necesario mantener varios archivos de script de shell para iniciar y finalizar Minecraft. El archivo de script √ļnico a continuaci√≥n ser√° suficiente:

#! / usr / bin / env -i bash MinecraftServer () {/ usr / sbin / ipconfig waitall Estado "Iniciando servidor Minecraft ..." servidor id de proceso trampa Evacuar HUP INT TERM MC_SIO = "$ (mktemp -d -t minecraft) / servidor" mkfifo "$ MC_SIO" java -Xms1G -Xmx1G -jar minecraft_server.1.8.1.jar nogui <> "$ MC_SIO" & MC_PID = $! Estado "Minecraft PID: $ {MC_PID}" espera rm -rf "$ (dirname $ MC_SIO)" Estado "El servidor se ha cerrado". } Evacuate () {Estado "Deteniendo Minecraft ..." echo "detener" >> "$ MC_SIO" espera $ MC_PID Estado "Minecraft se ha detenido". } Status () {# Registra mensajes en syslog para que sean visibles en Console.app logger -t Minecraft "$ @"} MinecraftServer

net.minecraft.server.plist

Etiqueta net.minecraft.server ProgramaArgumentos ./minecraft.command RunAtLoad Directorio de trabajo / Usuarios / _minecraft Nombre de usuario _Minecraft

Modifique su nombre de usuario en consecuencia o elimine esa sección por completo si desea ejecutarla como root. También debe modificar su WorkingDirectory para que apunte a la ruta correcta. La etiqueta es lo que se mostrará en la herramienta Consola.

Copiar y probar archivos

Guiones de shell

Una vez que haya creado sus archivos en su escritorio, puede copiarlos:

MyMac: ~ myuser $ cd / Users / _minecraft MyMac: _minecraft myuser $ sudo cp ~ / Desktop / minecraft.command ~ / Desktop / start.sh ~ / Desktop / stop.sh. MyMac: _minecraft myuser $ sudo chmod 755 minecraft.command start.sh stop.sh MyMac: _minecraft myuser $ sudo chown _minecraft: _minecraft minecraft.command start.sh stop.sh

Nuevamente, no olvide el punto al final del comando cp.

Puede intentar ejecutarlos (ya que est√° en la carpeta buena, funcionar√°):

MyMac: _minecraft myuser $ sudo -u _minecraft ./minecraft.command

El comando en s√≠ nunca deber√≠a regresar, est√° bien, pero el servidor deber√≠a iniciarse correctamente sin ning√ļn mensaje de error, y deber√≠a ver que se inicia el entorno Java. Puede hacer control-c para terminar el servidor. Aunque parece atractivo, realmente no puede ejecutar ning√ļn comando desde esa consola, ya que stdin fue redirigido desde un archivo, pero si lo desea, puede iniciar una segunda terminal y emitir comandos como sudo echo save-all >> / Users / _minecraft / stdin.commandlist y deber√≠an ejecutarse.

Ejecutar demonio

Necesitamos decirle a Mac OS X que deseamos iniciar el demonio con la computadora cuando se inicie, antes de que llegue a la pantalla de inicio de sesión. Eso es una mera copia de ese punto:

MyMac: ~ myuser $ cd / Library / LaunchDaemons MyMac: LaunchDaemons myuser $ sudo cp ~ / Desktop / net.minecraft.server.plist. MyMac: LaunchDaemons myuser $ sudo chmod 755 net.minecraft.server.plist MyMac: LaunchDaemons myuser $ sudo chown root: rueda net.minecraft.server.plist

En este punto, cuando reinicie su computadora, ¡debería iniciar automáticamente su servidor! Puedes probarlo inmediatamente usando la siguiente línea:

MyMac: LaunchDaemons myuser $ sudo launchctl load net.minecraft.server.plist

Eso debería cargar su servidor de Minecraft en su usuario adecuado. Debe verificar que esté allí y sin errores yendo a la Consola y mirando el Registro del sistema. También debe verificar en la herramienta Activity Monitor que el proceso se inició y se está ejecutando bajo el usuario _minecraft. Obviamente, intentar ejecutar un juego de Minecraft puede ser algo agradable.

En cualquier momento, puede descargar el servidor (pero recuerde que se iniciar√° autom√°ticamente cuando reinicie su computadora, a menos que retire el archivo:

MyMac: LaunchDaemons myuser $ sudo launchctl unload net.minecraft.server.plist

Inicio / apagado autom√°tico

Es posible que desee no tener su servidor funcionando todo el tiempo si nadie está conectado a él. Esto se puede lograr con solo un script más :)

Antes de configurar esto, haga funcionar el método 'Varient' anterior, ya que funcionará mejor con él.

server_daemon.command

En lugar de configurar el archivo launchd net.minecraft.server.plist para que ejecute minecraft_server.command, config√ļrelo para que ejecute server_daemon.command, despu√©s de colocarlo en el directorio del servidor.

#! / bin / bash # bucle principal while: do # escuchar conexiones ipconfig waitall nc -l 25565 | grep -a -o -E "b (w +) $"> user.txt MATCHES = $ (grep -f user.txt whitelist.json | wc -l | tr -d '') rm user.txt # si no, escuche las conexiones si [$ MATCHES -eq 0], luego contin√ļe fi # iniciar el script de control del servidor ./minecraft_server.command & commandPID = $! # comprobar peri√≥dicamente la actividad mientras: dormir 15 conexiones = $ (lsof | grep 25565 | grep -v -e LISTEN | wc -l | tr -d "") # si no se detecta ninguna, terminar el script de control y escuchar las conexiones si [$ connections -eq 0] luego kill -TERM $ commandPID wait $ commandPID break fi done done

Explicación

Este script escucha la actividad en el puerto predeterminado de Minecraft, 25565 y ejecuta el servidor cuando se establece una conexión. Debido a que los clientes de Minecraft envían el nombre de usuario en el primer contacto, este script lo usa para verificar si el jugador tiene acceso al servidor y lo ignora si no lo tiene. Esto podría cambiarse para permitir que cualquier persona inicie el servidor de forma remota eliminando la declaración 'if'. Tenga en cuenta que los usuarios deben conectarse dos veces en una ejecución en frío: una vez para iniciar el servidor y nuevamente una vez que esté en funcionamiento.

A continuación, el script simplemente comprueba periódicamente si hay alguna conexión activa en el puerto de Minecraft y, de lo contrario, espera a que el servidor se apague antes de volver a escuchar si hay más conexiones.

√Āreas para mejorar

Este script crea una gran cantidad de archivos temporales en el directorio del servidor, ¬Ņtal vez podr√≠an colocarse en / tmp o en un subdirectorio temporal?

Esta secuencia de comandos no utiliza variables de entorno para personalizar configuraciones como el n√ļmero de puerto y el intervalo de tiempo de espera.

Consideraciones de respaldo

Es bastante fácil iniciar copias de seguridad periódicas. Por extensión, agregar un launchd.plist de respaldo y un archivo de comando es casi una obviedad. El siguiente código se ejecutará cada hora, solo cuando Minecraft se esté ejecutando, detendrá el guardado, esperará a que la consola muestre que se realizó el guardado y lo iniciará de nuevo una vez que haya terminado de realizar la copia de seguridad.

Consejo # 1: agregue su propio código de respaldo en el comentario, o de lo contrario, no hará nada :)

Consejo # 2: este código se ejecuta como root. Puede hacer que se ejecute como otro usuario si lo desea, como crear un segundo usuario en el mismo grupo _minecraft, lo que significa que el sistema de respaldo podrá leer los archivos pero no modificarlos. ¡Eso queda para el lector!

Consejo n. ¬į 3: este c√≥digo puede recibir una solicitud de apagado, por lo que realmente deber√≠a haber un comando de captura o, de lo contrario, podr√≠a interrumpirse mientras se realiza la copia de seguridad.

net.minecraft.server.backup.plist

Etiqueta net.minecraft.server.backup ProgramaArgumentos ./backup.command RunAtLoad StartInterval 1.0 Directorio de trabajo / Usuarios / _minecraft

backup.command

#! / bin / bash ps -u _minecraft> / dev / null 2> / dev / null if [$? ! = 0]; luego echo $ (date) Minecraft off: no se puede hacer una copia de seguridad. exit fi echo save-off >> stdin.commandlist echo save-all >> stdin.commandlist tail -n 3 -f /var/log/system.log | while read line hacer if echo $ line | grep -q 'CONSOLA: Guardar completo.'; luego # agregue sus comandos de respaldo aquí, como svn o rsync echo save-on >> stdin.commandlist exit 0 fi done

Tutoriales
Introductorio
  • Pantalla de men√ļ
  • T√©rminos del juego
Supervivencia del recién llegado
  • El primer d√≠a / gu√≠a para principiantes
  • El segundo d√≠a
  • El tercer d√≠a
  • Manejo del hambre
  • Cosas que no hacer
  • Trucos y consejos sencillos
  • Tus primeros diez minutos
Refugios
  • Los mejores biomas para hogares
  • Los mejores materiales de construcci√≥n
  • Construcci√≥n y edificaci√≥n
  • Navegaci√≥n
  • Refugios
  • Tipos de refugio
General
  • Gu√≠a de logros
  • Gu√≠a de avance
  • La mejor gu√≠a de encantamientos
  • Rompiendo el lecho de roca
  • Combate
  • Aventura principal completa
  • Creando una aldea
  • Doble empu√Īadura
  • Finalizar la supervivencia
  • Explorando cavernas
  • Recopilaci√≥n de recursos en dificultad pac√≠fica
  • Conseguir comida r√°pidamente
  • Pistones sin cabeza
  • Hitboxes
  • Caballos
  • Mapeo
  • Medici√≥n de distancia
  • MINER√ćA
    • diamantes
    • F√≥siles
    • Escombros antiguos
  • Centro inferior
  • Portales inferiores
  • Supervivencia abisal
  • afiliada
  • Salto de pilar
  • PvP
    • Bases JcJ
  • A prueba de spawn
  • The Void
  • Consejos para ahorrar tiempo
  • Mec√°nica de la aldea
    • Operar en
  • Minecraft en la educaci√≥n
  • Cristales finales indestructibles
  • Invocaci√≥n de jinetes
  • Supervivencia en tormentas
  • Unidades de medida
  • Fallos de rayos X
Desafíos
  • Adquirir un conducto
  • Curar a un aldeano zombi
  • Derrotando templos
  • Derrotar una incursi√≥n en una aldea
  • Derrotar una fortaleza abisal
  • Derrotar a un remanente de basti√≥n
  • Derrotar una mazmorra
  • Derrotar a un puesto de saqueadores
  • Derrotar una mansi√≥n en el bosque
  • Derrotando un monumento
  • Derrotar una ciudad del fin
  • Derrotar al drag√≥n Ender
  • Derrotando a Wither
Supervivencia no est√°ndar
  • Supervivencia de la aventura
  • Modo incondicional
  • C√≥mo sobrevivir en una sola √°rea indefinidamente
  • Supervivencia infinita en el desierto
  • Caza
  • Experiencia n√≥mada
  • Supervivencia de Skywars
  • Supervivencia superplana
  • Supervivencia ultra hardcore
  • Supervivencia de la isla
Mapas de desafío
  • Superar un mapa de desaf√≠o
  • Crear un mapa de desaf√≠os
Construcciones
  • A√Īadiendo belleza a las construcciones
  • Burbuja de aire
  • T√©rminos arquitect√≥nicos
  • Construyendo un crucero
  • Construyendo una metr√≥polis
  • Construyendo una monta√Īa rusa
  • Construyendo casas seguras
  • Construcci√≥n de caracter√≠sticas de agua
  • Paleta de color
  • Creando formas
  • Defensa
  • Refugio del desierto
  • Elevadores
  • Piscina circular sin fin
  • Muebles
  • Patrones de terracota esmaltada
  • Hacer bonitos suelos
  • Arte de pixel
  • Ranchos
  • Tipos de techo
    • Techos curvos
    • Pautas de construcci√≥n de techos
    • Decoraciones de techo
  • Puerta secreta
  • Gu√≠a de liquidaci√≥n
  • Casa submarina
  • Paredes y contrafuertes
  • Puerta de agua
  • Transporte en bote a motor
Sostenible
Bloques y artículos
  • Blindaje
  • Comida de hueso
  • Cactus
  • Guijarro
  • Grano de cacao
  • Cultivos (remolacha, zanahoria, papa, trigo)
  • Fruta de coro
  • Huevo
  • Liquen resplandor
  • MIEL
  • Peces
  • Flor
  • Hielo
  • Quelpo
  • Carniceria
  • Hongo
  • Disco de musica
  • Verruga inferior
  • Obsidiana
  • Nieve en polvo
  • Calabaza, Mel√≥n
  • Escudo
  • Lana
  • Encurtidos de mar
  • Nieve
  • Ca√Īa de az√ļcar
  • √Ārbol
  • viene
  • Duplicaci√≥n
Turbas
  • Agricultura de la mafia
  • Mob Mob
  • Trampas de desove
  • Animales (vacas, cerdos, ovejas)
  • Blaze
  • Ara√Īa de las cuevas
  • enredadera
  • Ahogue
  • Enderman
  • guardi√°n
  • Hoglin
  • Golem de hierro
  • Cubo de magma
  • Granja de trueque
  • Agricultura de incursi√≥n
  • Limo
  • Calamar
  • salvar las
  • Aldeano
  • Bruja
  • Wither esqueleto
  • Zombi
  • Piglin zombificado
Encantador y fundición
  • Mec√°nica de encantamiento
  • Mec√°nica del yunque
  • Fundici√≥n autom√°tica
  • Fundici√≥n manual
Rompiendo bloques
  • C√°mara de explosi√≥n
  • Jaula marchita
Mecanismos
Redstone b√°sica
  • Recargador de ancla de reaparici√≥n autom√°tico
  • Puertas l√≥gicas b√°sicas
  • Bloque de comandos
  • M√°quinas voladoras
  • Tolva
  • Transporte de art√≠culos
  • Mecanismos
  • Estabilizador de observador
  • Cerraduras de combinaci√≥n
  • Aleatorizadores
  • M√ļsica de Redstone
  • Consejos de Redstone
  • M√°quina Rube Goldberg
  • Almacenamiento de caja Shulker
  • Sala de comercio de aldeanos
Detectores
  • Detector de actualizaci√≥n de bloque
  • Detector de actualizaci√≥n del comparador
  • Sensor de luz diurna
  • Detector de d√≠a y noche
Minecarts
  • Estaci√≥n de tren
  • Minecarts
    • Almacenamiento
    • Sistema de almacenamiento
Trampas
  • Golems de nieve
  • Ca√Īones TNT
  • Usos de trampilla
  • Dise√Īo de trampa
  • Trampas
Pistons
  • Usos del pist√≥n
  • Circuitos de pist√≥n
  • Cuasi conectividad
  • Cero tictac
  • Repetidores instant√°neos
Redstone (avanzado)
  • Circuitos de redstone avanzados
  • L√≥gica aritm√©tica
  • Calculadora
  • Estad√≠sticas de mando
  • Reloj por horas
  • c√≥digo Morse
  • Impresora
  • Computadoras Redstone
  • Tel√©grafo redstone
Servidores
  • Jugando en servidores
  • Supervivencia multijugador
  • C√°rcel de desove
  • Prevenci√≥n del duelo
  • Unirse a un mundo LAN con cuentas alternativas
Configuración del servidor
  • Configurar un servidor
  • Script de inicio del servidor
  • Script de inicio de FreeBSD
  • Script de inicio de OpenBSD
  • Script de inicio de Ubuntu
  • Configuraci√≥n de un servidor de Hamachi
  • Configuraci√≥n de un servidor de Minecraft Forge
  • Configuraci√≥n de un servidor Spigot
  • Servidor habilitado para Ramdisk
Apoyo técnico
  • Mejora de la velocidad de fotogramas
  • Preguntas frecuentes sobre la ayuda de Minecraft (canal IRC)
  • Actualiza Java
mapas
  • Mapas personalizados
  • Descargas de mapas
  • Etiquetas de comando NBT
  • Ca√≠da de bloques
  • Actualizaci√≥n de terreno antiguo usando MCEdit
Paquetes de recursos
  • Crear un paquete de recursos
  • Cargando un paquete de recursos
  • Directorio de sonido
Paquetes de datos
  • Creando un paquete de datos
  • Instalaci√≥n de un paquete de datos
Add-ons
  • Directrices para creadores de Bedrock Edition
  • Crear paquetes de recursos
    • Avanzado [WIP]
    • Gu√≠a de referencia de componentes de entidad
    • Cambiar los modelos de entidad de Minecraft
  • Creando paquetes de comportamiento
  • Crear entidad personalizada
Creación de medios de Minecraft
  • Creando videos
  • Transmisi√≥n en vivo
Instalación del juego
  • Instalaci√≥n de instant√°neas
  • Unirse y salir del programa beta de Bedrock Edition
  • C√≥mo obtener un informe de fallas
  • Instalaci√≥n de mods de Forge
  • Jugar y guardar Minecraft en una memoria USB
  • Jugar y guardar Minecraft en una memoria USB con el antiguo lanzador
  • Recuperar datos mundiales guardados da√Īados
  • Ejecute Minecraft a trav√©s de Google Drive
  • Guardar datos del juego en Dropbox (solo datos mundiales)
  • Gu√≠a de Dropbox de datos guardados
Anticuado
  • Construcci√≥n de micro refugios
  • Paquetes de texturas personalizados
  • Cultivo de golem de hierro basado en puertas
  • Tierras lejanas
  • C√≥mo obtener un informe de fallas
  • Instalando mods
  • Lago artificial
  • Manejo de slimes en modo superflat
  • Refuerzo de minecart
  • Sistema de reinicio del repetidor
  • Supervivencia sin paquetes de datos habilitados
  • Actualizar LWJGL
  • Actualizar Minecraft
  • Encadenamiento de aldea
  • escalera de agua
  • Tranv√≠a de agua
Atarlo

Este artículo es bastante impreciso, así que ayude a limpiar este artículo, o si sabe mucho sobre este tema, agregue información o aclare la información existente.



A√Īade un comentario de Tutoriales / Crear un demonio de inicio de Mac OS X
¡Comentario enviado con éxito! Lo revisaremos en las próximas horas.