Локальное перенаправление доменов (например, с помощью /etc/hosts) в определенные часы дня

Локальное перенаправление доменов (например, с помощью /etc/hosts) в определенные часы дня

народ. В интересах повышения производительности я хотел бы выборочно блокировать или перенаправлять определенные сайты в определенные периоды времени в течение дня. Я уже полностью заблокировал некоторые сайты в моем /etc/hosts, но сделать так, чтобы блокировка действовала только в течение определенного периода, мне не удалось.

Бонус: я бы также хотел иметь возможность блокировать основной домен, но разрешить определенные страницы в нем. Например, заблокировать reddit.com, но разрешить reddit.com/r/javascript

Спасибо за любую помощь, которую вы можете предложить!

решение1

Возможно, что-то вроде этого решит вашу проблему: http://www.getconcentrating.com/?

решение2

Хотя ответ @smw выглядит так, будто это может быть вашим решением, нет ничего лучше, чем «сделать свой собственный» — хотя бы ради удовольствия.

Основываясь на моем комментарии выше, я предполагаю, что вы можете создать файл /etc/hosts, который даст вам нужные разрешения. Я собираюсь назвать их, как указано выше, worktimeHostsи playtimeHosts. Теперь вам нужен скрипт, чтобы сделать один или другой файл активным. Это предполагает, что вы переместили свой /etc/hosts в сторону...

Создайте один сценарий:

#!/bin/bash
rm /etc/hosts
ln -s /etc/worktimeHosts /etc/hosts

сохранить как /usr/bin/getWorking, установить разрешения на выполнениеchmod 755 /usr/bin/getWorking

Теперь создайте второй скрипт:

#!/bin/bash
rm /etc/hosts
ln -s /etc/playtimeHosts /etc/hosts

сохранить как /usr/bin/getPlaying, установить разрешения как прежде

Вам необходимо убедиться, что у вас есть разрешение на выполнение этих действий с файлами в /etc...

Теперь отредактируйте cronтаблицу (см. примерздесь)

`crontab -e`

Добавьте такую ​​строку:

00 00 08 * * /usr/bin/getWorking

И еще одна строка вроде этой:

00 00 17 * * /usr/bin/getPlaying

Я думаю, это близко к решению, но я это не тестировал, так что поиграйтесь с этим и найдите свои ошибки...

решение3

(Поскольку это отмечено как «osx», я предполагаю, что решение «только для OS X» будет приемлемым.)

  1. Иронично названныйСамоконтрольможет сделать это. Это позволит вам определить "белый список" или "черный список" сайтов, которые нужно разрешить или заблокировать, и позволяет вам установить истекающий срок действия. Это бесплатно, иисходный код доступен.

  2. Есть такжеMacFreedomкоторый стоит 10 долларов и делает что-то похожее. Естьдоступна бесплатная пробная версия.

(Раньше я пользовался обоими, но не имею отношения ни к одному из них.)

Примечание: Если я могу посоветовать вам слово из опыта, я бы посоветовал не делать слишком большой срок, на всякий случай, если вы сделаете ошибку.очень оченьсложно «отменить» это до истечения срока. (Что является потенциальной проблемой для любого другого решения, которое можно просто «отменить», если вам станет скучно — возможно!)

Связанный контент