Ejecute un script bash al iniciar el servidor ubuntu que realiza un bucle constante

Ejecute un script bash al iniciar el servidor ubuntu que realiza un bucle constante

Estoy en medio de la creación de un servidor FTP local y necesito que este script se ejecute cuando la máquina se inicie:

#!/bin/bash
while [ 1 ];
do
chmod 2777 /home/ftp/folder;
chmod -R 777 /home/ftp/folder;
sleep 60;
done

¿Cuál es la mejor manera de hacer esto?

Intenté ponerlo en el archivo rc.local pero esto no permite que el servidor arranque correctamente, además este script debe ejecutarse como sudo, si eso marca la diferencia dentro de la ejecución del script.

Cualquier ayuda o idea será apreciada, gracias.

Respuesta1

¿Qué pasa con el uso de un cronjob?

poner

#!/bin/bash
chmod 2777 /home/ftp/folder
chmod -R 777 /home/ftp/folder

en un archivo de script e invocarlo cada minuto:

sudo crontab -e

e invocar con lo siguiente:

* * * * * /path/to/script.sh

más información - ubuntu wiki

Respuesta2

  • Elimina el bucle de tu script
  • Coloque el script en algún directorio razonable (p. ej. /usr/local/sbin/)
  • Coloque una descripción del trabajo cron en /etc/cron.d/, por ejemplo

* * * * * myuser /usr/local/sbin/myscript

Esto hará que su script se ejecute cada minuto. Luego, para estar completamente seguro, necesitaría agregar alguna forma de garantizar que solo se ejecute una instancia (es decir, que no se ejecute si otra instancia tarda más de un minuto en finalizar). Esto generalmente se hace mediante archivos de bloqueo.

información relacionada