Estoy tratando de hacer una suite de productividad para mí. Mi primer objetivo es bloquear Facebook, Gmail y Stackexchange de 0900 a 1600.
A partir de ahora, he editado mi /etc/hosts
y añadido 0.0.0.0 www.facebook.com y otros similares para gmail y stackexchange.
Pero estoy un poco confundido acerca de cómo incluir la duración del bloqueo en mi script.
Lo que pensé es tener 2 archivos diferentes (hosts_allow, hosts_block) y luego cp hosts_allow hosts
o cp hosts_block hosts
dependiendo del tiempo, pero esto debería colocarse en un bucle infinito o algo que no estoy realmente seguro es la mejor manera de abordar el problema.
¿Alguna pista?
Respuestas:
Uso
cron
.Dígalo
crontab -e
como root , osudo crontab -e
si lo hasudo
configurado, y coloque lo siguiente en el archivo que aparece en el editor de texto:Esto dice que en el minuto cero de las 9 y 16 horas de cada día del mes, sobrescriba
/etc/hosts
usando los comandos de shell dados.En realidad, es posible que desee algo un poco más complicado:
Ese único cambio, colocarse
1-5
en la quinta posición, dice que el cambio entre el tiempo de trabajo y el de juego ocurre solo de lunes a viernes.Diga
man 5 crontab
para obtener una explicación completa de todo lo que puede hacer en uncrontab
archivo.Por cierto, cambié los nombres de sus
hosts
archivos anteriores, porquehosts_allow
está demasiado cerca dehosts.allow
, utilizado por TCP Wrappers .fuente
ln -f
nocp
, es demasiado fácil olvidar que cualquier cambio/etc/hosts
se eliminará dos veces al día, y cualquier software que modifique/etc/hosts
no lo sabrá de todos modos. Conln
, al menos tendrá una copia persistente de los cambios (la que esté activa).Si tiene 2
hosts
archivos diferentes , simplemente puede programar un trabajo cron para sobrescribir el archivo/etc
a una hora específica durante el día.fuente