Pequenas soluções usando linha de comandos – II

Pequenas soluções usando linha de comandos – II

Escrever um script que roda em daemon (backgounrd) e repete algum comando de tempos em tempos é extremamente simples e pode resolver vários problemas.

Há um tempo atrás precisei de um listening em um diretório que ficasse mudando permissões de arquivos que eram importados automáticamente. O script ficou assim:

#! /bin/bash
#Script para dar permissão de acesso aos arquivos para o faturamento
#Roda em daemon

#loop infinito
while((1)); do
  #faz o que tem que ser feito
  chown -R nobody:faturamento /home/faturamento/importacoes;
  #pausa por 5 segundos (ou quantos você quiser)
  sleep 5;
# o "&" no final é quem faz o script rodar em daemon
done &

#por fim, mostra uma mensagem
echo 'Script rodando em daemon...'

Se você tiver outras formas de fazer isso (acredito que deva existir outras até melhores), mande através dos comentários :)

  • Eu acreditava que como o processo virava um job em background, ele seria interrompido quando o terminal onde ele estava rodando parasse. Mas fiz um teste e vi que ele dá um fork no bash e coloca o novo processo como filho do init, ou seja, ppid 1. Bacana, isso facilita muita coisa.

  • Talvez assim possa evitar o loop infinito.

    PATH=home/faturamento/importacoes
    for filename in $PATH; do
    if [ -e $filename ]; then
    chown -R nobody:faturamento $PATH/$filename
    fi
    done

  • Mas Junio, isso só é executado uma vez, certo?!

  • Pingback: Pequenas soluções usando linha de comandos – II « Blog Vale()

Comments are closed.