J'essaye de me faire une suite de productivité. Mon premier objectif est de bloquer Facebook, Gmail et Stackexchange de 0900 à 1600.
À partir de maintenant, j'ai édité mon /etc/hosts
et ajouté 0.0.0.0 www.facebook.com et similaires pour gmail et stackexchange.
Mais je suis un peu confus quant à la façon d'inclure la durée de blocage dans mon script.
Ce que je pensais, c'est avoir 2 fichiers différents (hosts_allow, hosts_block), puis cp hosts_allow hosts
ou en cp hosts_block hosts
fonction du temps, mais cela devrait être mis dans une boucle infinie ou quelque chose dont je ne suis pas vraiment sûr est la meilleure façon d'aborder le problème.
Des indices?
Réponses:
Utilisez
cron
.Dites en
crontab -e
tant que root - ousudo crontab -e
si vous l'avezsudo
configuré - et mettez ce qui suit dans le fichier qui apparaît dans l'éditeur de texte:Cela signifie qu'à la minute zéro des 9e et 16e heures de chaque jour du mois, écrasez en
/etc/hosts
utilisant les commandes shell données.Vous pourriez en fait vouloir quelque chose d'un peu plus compliqué:
Ce seul changement - mettre
1-5
en cinquième position - indique que le changement entre le travail et le temps de jeu ne se produit que du lundi au vendredi.Dites
man 5 crontab
pour obtenir une explication complète de tout ce que vous pouvez faire dans uncrontab
fichier.Soit dit en passant, j'ai changé les noms de vos
hosts
fichiers ci-dessus, car ilshosts_allow
sont trop proches de ceuxhosts.allow
utilisés par TCP Wrappers .la source
ln -f
, noncp
- il est trop facile d'oublier que tout changement à/etc/hosts
supprimer est supprimé deux fois par jour, et tout logiciel qui le modifie/etc/hosts
ne le sait pas de toute façon. Avecln
, vous aurez au moins une copie persistante des modifications (celle qui est active).Si vous avez 2
hosts
fichiers différents , vous pouvez simplement planifier un travail cron pour écraser le fichier/etc
à une heure spécifique de la journée.la source