Я пытаюсь сделать продуктивный набор для себя. Моя первая цель - заблокировать Facebook, Gmail и Stackexchange с 0900 до 1600.
На данный момент я отредактировал свой /etc/hosts
и добавил 0.0.0.0 www.facebook.com и аналогичные для gmail и stackexchange.
Но я немного озадачен тем, как включить продолжительность блокировки в мой скрипт.
Я подумал, что у меня есть 2 разных файла (hosts_allow, hosts_block) и затем cp hosts_allow hosts
или в cp hosts_block hosts
зависимости от времени, но тогда это нужно будет поместить в бесконечный цикл, или что-то, в чем я не уверен, что это лучший способ решения проблемы.
Есть какие-нибудь подсказки?
Ответы:
Использование
cron
.Скажите
crontab -e
как root - или,sudo crontab -e
если выsudo
настроили - и поместите в файл, который появляется в текстовом редакторе, следующее:Это говорит о том, что в нулевую минуту 9-го и 16-го часов каждого дня месяца перезаписывайте данные
/etc/hosts
с помощью команд оболочки.Возможно, вы захотите чего-то более сложного:
Это одно изменение - размещение
1-5
на пятой позиции - говорит о том, что смена времени работы и игры происходит только с понедельника по пятницу.Скажем,
man 5 crontab
чтобы получить полное объяснение того, что все, что вы можете сделать вcrontab
файле.Кстати, я изменил имена ваших
hosts
файлов выше, потому чтоhosts_allow
это слишком близкоhosts.allow
, используется TCP Wrappers .источник
ln -f
, что нетcp
- слишком легко забыть, что любые изменения/etc/hosts
будут удаляться два раза в день, и любое программное обеспечение, которое модифицирует/etc/hosts
, не будет знать в любом случае. При наличии уln
вас будет хотя бы одна постоянная копия изменений (какая из них активна).Если у вас есть 2 разных
hosts
файла, вы можете просто запланировать задание cron для перезаписи файла в/etc
определенный час в течение дня.источник