Como posso executar um script de shell quando alguém altera um arquivo via FTP?

Como posso executar um script de shell quando alguém altera um arquivo via FTP?

Estou executando o Ubuntu 15.04 Server em um VPS. Estou tentando fazer com que meu amigo possa alterar um arquivo de configuração de um servidor de jogo por meio de FTP e, quando terminar, execute um script de shell que mata o servidor e o reinicia. Obrigado!

Responder1

Execute um script pós-upload

pureftpdfornecepure-uploadscript, que você pode usar para reiniciar o processo do jogo:

DESCRIÇÃO

Se Pure-FTPd for compilado com --with-uploadscript(padrão em distribuições binárias) e se -o(ou --uploadscript) for passado para o servidor, um pipe nomeado chamado /var/run/pure-ftpd.upload.pipeserá criado. Você também notará um arquivo importante chamado /var/run/pure-ftpd.upload.lock, usado para bloqueio. Após um upload bem-sucedido, o nome do arquivo é gravado no pipe. pure-uploadscript lê este canal para executar automaticamente qualquer programa ou script para processar o arquivo recém-carregado.

(depágina de manual)

Use isto para detectar uma alteração nos arquivos de configuração do jogo (o arquivo carregado/modificado é passado como o primeiro argumento para o script- $1) e, se eles forem alterados, reinicie o servidor do jogo.

Caso contrário, você pode usar alguns bashscripts cronpara verificar o mtimearquivo de configuração e reiniciar o servidor se ele mudar para algo mais recente. Ou você poderia conseguirrealmente chiquee conectar inotifyatravés de algo comoinotify-tools; mas isso provavelmente é um exagero para isso.

Responder2

Supondo que você esteja usando ou irá usarproftpdentão você pode usar o módulomod_exece execute um comando quando o arquivo for alterado.

No entanto, eu não recomendo isso – você deve usar uma sessão remota controlada para reiniciar o serviço. Isso poderia ser feito com um usuário de menor privilégio e então com a especificação correta dosudoersarquivo para permitir acesso apenas ao serviço de interesse.

informação relacionada