Aguarde até que nenhuma conexão de rede seja recebida por N minutos e execute um comando

1

Eu quero colocar meu servidor doméstico Debian Wheezy para dormir, se ele não foi acessado através da rede por um determinado período de tempo.

Eu pensei em um script bash que usa o netstat para contar o número de conexões ativas, dormir por alguns segundos, executar o netstat novamente e assim por diante.

Existe alguma maneira melhor de conseguir isso sem usar o sono a cada segundo? Existe alguma maneira de reagir ao evento 'conexão de rede de entrada' e redefinir algum tipo de temporizador de contagem regressiva?

    
por muffel 20.03.2014 / 23:18

1 resposta

1

A detecção de rede inativa geralmente é tratada com um script de shell, como você fez. Uma simples busca na web por 'linux sleep idle' indica pelo menos 3 scripts fáceis de encontrar para este problema.

Se você copia um script existente ou escreve o seu, não há motivo para executá-lo a cada segundo. Você pode criar facilmente uma tarefa cron para executá-la a cada 30 segundos. A maioria dos usuários não deseja que o servidor seja desligado antes de ficar ocioso por 5-15 minutos, portanto, a precisão por segundo não é necessária. Alguns usuários só executam o script uma vez a cada 20 minutos, o que duraria a máquina 30 minutos depois de ficar inativo, em média.

    
por 21.03.2014 / 00:43