Execute um script bash na inicialização do servidor ubuntu que faz um loop constante

0

Estou no meio de criar um servidor FTP local e preciso que esse 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 adequadamente, também este script precisa ser executado como sudo, se isso fizer diferença no script, correu.

Qualquer ajuda ou ideia seria apreciada, Obrigado.

    
por Ash King 07.06.2013 / 11:42

2 respostas

1

o que é 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

mais informações - wiki do ubuntu

    
por 07.06.2013 / 13:15
0
  • Remova o loop do seu script
  • Coloque o script em um diretório razoável (por exemplo, /usr/local/sbin/ )
  • Coloque uma descrição da tarefa cron 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, é necessário adicionar uma maneira de garantir que apenas uma vez a instância esteja em execução (ou seja, não seja executada se outra instância levar mais de um minuto para ser concluída). Isso geralmente é feito por meio de arquivos de bloqueio.

    
por 07.06.2013 / 17:02