
Estoy ejecutando el servidor Ubuntu 15.04 en un VPS. Estoy intentando que mi amigo pueda cambiar un archivo de configuración para un servidor de juegos a través de FTP, y luego, cuando haya terminado, ejecute un script de shell que cierre el servidor y luego lo reinicie. ¡Gracias!
Respuesta1
Ejecute un script después de la carga
pureftpd
proporcionapure-uploadscript
, que puedes usar para reiniciar el proceso del juego:
DESCRIPCIÓN
Si Pure-FTPd se compila con
--with-uploadscript
(predeterminado en distribuciones binarias) y si-o
(o--uploadscript
) se pasa al servidor,/var/run/pure-ftpd.upload.pipe
se crea una canalización con nombre llamada. También notará un archivo importante llamado/var/run/pure-ftpd.upload.lock
, que se utiliza para bloquear. Después de una carga exitosa, el nombre del archivo se escribe en la tubería.pure-uploadscript
lee esta tubería para ejecutar automáticamente cualquier programa o script para procesar el archivo recién cargado.
(desde elpágina de manual)
Utilice esto para detectar un cambio en los archivos de configuración del juego (el archivo cargado/modificado se pasa como primer argumento del script $1
) y, si se modifican, reinicie el servidor del juego.
De lo contrario, podría utilizar algunas bash
secuencias de comandos cron
para verificar el mtime
archivo de configuración y reiniciar el servidor si cambia a algo más nuevo. O podrías conseguirrealmente elegantey enganchar inotify
a través de algo comoinotify-tools
; pero probablemente sea excesivo para esto.
Respuesta2
Suponiendo que esté usando o usaráproftpdentonces puedes usar el módulomod_execy ejecutar un comando cuando se cambia el archivo.
Sin embargo, no recomiendo esto; debe utilizar una sesión remota controlada para reiniciar el servicio. Esto podría hacerse con un usuario con privilegios mínimos y luego la especificación correcta delsudoersarchivo para permitir únicamente el acceso al servicio de interés.