Estou tentando criar um conjunto de produtividade para mim. Meu primeiro objetivo é bloquear o Facebook, o Gmail e o Stackexchange das 0900 às 1600.
A partir de agora, editei o meu /etc/hosts
e adicionei 0.0.0.0 www.facebook.com e similares para o gmail e stackexchange.
Mas estou um pouco confuso sobre como incluir a duração do bloqueio no meu script.
O que eu pensei é ter 2 arquivos diferentes (hosts_allow, hosts_block) e depois cp hosts_allow hosts
ou cp hosts_block hosts
dependendo do tempo, mas isso precisaria ser colocado em um loop infinito ou algo que eu não tenho certeza se é a melhor maneira de abordar o problema.
Alguma pista?
Respostas:
Use
cron
.Diga
crontab -e
como root - ousudo crontab -e
se vocêsudo
configurou - e coloque o seguinte no arquivo que aparece no editor de texto:Isso diz que, no zerote minuto das 9ª e 16ª horas de todos os dias do mês, sobrescreva
/etc/hosts
usando os comandos de shell fornecidos.Você pode realmente querer algo um pouco mais complicado:
Essa mudança - colocar
1-5
na quinta posição - diz que a mudança entre trabalho e tempo de jogo acontece apenas de segunda a sexta-feira.Diga
man 5 crontab
para obter uma explicação completa do que você pode fazer em umcrontab
arquivo.A propósito, mudei os nomes dos seus
hosts
arquivos acima, porquehosts_allow
é muito próximohosts.allow
, usado pelos TCP Wrappers .fonte
ln -f
, nãocp
- é muito fácil esquecer que quaisquer alterações/etc/hosts
são excluídas duas vezes por dia e qualquer software que modifique/etc/hosts
não saberá. Comln
, você terá pelo menos uma cópia persistente das alterações (a que estiver ativa).Se você possui 2
hosts
arquivos diferentes , pode simplesmente agendar um trabalho cron para substituir o arquivo em/etc
uma hora específica durante o dia.fonte