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

0

Estou no meio da criação de um servidor FTP local e preciso que esse script seja executado quando a máquina inicializar:

#!/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 seja inicializado corretamente, também esse script precisa ser executado como sudo, se isso fará alguma diferença no script.

Qualquer ajuda ou idéias serão apreciadas, obrigado.

Rei das Cinzas
fonte
Você tem certeza do "chmod -R 777" .. isso também torna todos os arquivos executáveis. Eu sou paranóico, eu não quero alguma descrição de "hey não fazer: rm-rf /" se transformou em um roteiro por ser :) executável
rico Homolka
Entendo que, mas para o que estou criando, ele precisa ser executável. O servidor pode ser acessado apenas internamente e cada conta é atribuída a indivíduos.
Ash King

Respostas:

1

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

mais informações - ubuntu wiki


fonte
0
  • Remova o loop do seu script
  • Coloque o script em algum 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 do lado seguro, você precisará adicionar uma maneira de garantir que apenas uma vez a instância esteja em execução (ou seja, para não executar se outra instância demorar mais de um minuto para terminar). Isso geralmente é feito através de arquivos de bloqueio.

Alexander L. Belikoff
fonte