Estou criando um servidor FTP local e preciso que este script seja executado quando a máquina for inicializada:
#!/bin/bash
while [ 1 ];
do
chmod 2777 /home/ftp/folder;
chmod -R 777 /home/ftp/folder;
sleep 60;
done
Qual é a melhor maneira de fazer isso?
Eu tentei colocá-lo no arquivo rc.local, mas isso não permite que o servidor inicialize corretamente, também este script precisa ser executado como sudo, se isso fizer diferença na execução do script.
Qualquer ajuda ou ideia seria apreciada, obrigado.
Responder1
que tal usar um cronjob?
colocar
#!/bin/bash
chmod 2777 /home/ftp/folder
chmod -R 777 /home/ftp/folder
em um arquivo de script e invoque-o a cada minuto:
sudo crontab -e
e invoque com o seguinte:
* * * * * /path/to/script.sh
Responder2
- Remova o loop do seu script
- Coloque o script em algum diretório razoável (por exemplo
/usr/local/sbin/
) - Coloque uma descrição do cron job em /etc/cron.d/ , por exemplo
* * * * * myuser /usr/local/sbin/myscript
Isso fará com que seu script seja executado a cada minuto. Então, para estar completamente seguro, você precisa adicionar alguma maneira de garantir que apenas uma instância esteja em execução (ou seja, não seja executada se outra instância demorar mais de um minuto para terminar). Isso geralmente é feito por meio de arquivos de bloqueio.