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/hostsy 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 hostso cp hosts_block hostsdependiendo 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 -ecomo root , osudo crontab -esi lo hasudoconfigurado, 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/hostsusando los comandos de shell dados.En realidad, es posible que desee algo un poco más complicado:
Ese único cambio, colocarse
1-5en 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 crontabpara obtener una explicación completa de todo lo que puede hacer en uncrontabarchivo.Por cierto, cambié los nombres de sus
hostsarchivos anteriores, porquehosts_allowestá demasiado cerca dehosts.allow, utilizado por TCP Wrappers .fuente
ln -fnocp, es demasiado fácil olvidar que cualquier cambio/etc/hostsse eliminará dos veces al día, y cualquier software que modifique/etc/hostsno lo sabrá de todos modos. Conln, al menos tendrá una copia persistente de los cambios (la que esté activa).Si tiene 2
hostsarchivos diferentes , simplemente puede programar un trabajo cron para sobrescribir el archivo/etca una hora específica durante el día.fuente