Bookmark and Share

Не надо много объяснять и придумывать причины, но иногда было бы очень неплохо иметь возможность блокировать некоторые сайты в определенное время. А для кого-то это может быть и необходимость (пусть в меня даже камнем бросят, но начальству, например, очень не хочется тратить траффик и время сотрудников на «одноклассники», г-г-нуху и другие «нежелательные», а точнее, «несовместимые с рабочим процессом» сайты). Вобщем, задача есть, соответственно, есть и решение.

В главной идее, блокирование сайтов производится редактированием специального файла (если быть точным — то это /etc/hosts), где задаются пары IP/домен. Именно через этот файл и проходит система, когда пробует найти сайт (сначала пробует найти по имени IP в этом файле, если нету — использует DNS провайдера).

Но править этот файл самому (при том в нужное время), да еще и не забыть вернуть на место — непростая задача. Да и если честно – неэффективная, в наше-то время.

Вобщем, при большом желании (у меня нашлось, даже не желание, а спортивный интерес), можно найти способ. Именно его я вам и донесу.

Итак, чтобы не изобретать велосипед, можно взять готовый AppleScript, и использовав системный сервис launchd для запуска этого скрипта в нужное время.

А если «не умничать, а пальцем показать» — то вот вам несколько шагов:

1. Скачайте и отредактируйте AppleScript

Вот вам и сам скрипт. Качайте, разархивируйте и открывайте в Редакторе скриптов. Там надо будет отредактировать первых три опции. Они достаточно понятные.

  • growl_installed: Если вам нужны Growl-оповещения, когда скрипт запускается, установите значение true. Если нужна «тихая» блокировка ставьте false
  • blocked_days: Установка дней недели, по которым скрипт НЕ будет работать. В оригинале нерабочими днями установлены суббота, воскресенье и понедельник.
  • blocked_sites_text: Здесь вводите все, что желаете заблокировать (www.youtube.com, youtube.com, ну или что-то вроде siski-piski.ru и т д, вобщем, кому что надо запретить :)). Каждый домен в новой строке.

2. Запустите скрипт в тестовом режиме

Естественно, нужно убедиться, что скрипт работает. Нажмите Cmd+R для запуска. При первом запуске нужно будет ввести пароль администратора. Этот пароль будет сохранен в Связке ключей. В конечном результате работающий скрипт сохраняете в удобном месте, например в ~/Documents/AppleScripts/.

3. Получите команду для Терминала

Мы собираемся использовать ее для автоматической блокировки. Чтобы использовать launchd, нам нужно знать команду для Терминала, чтобы запустить скрипт. Все, что надо сделать это открыть Терминал, ввести «osascript» и поставить пробел. Далее, найдите в Finder’е скрипт и перетащите мышкой его в Терминал. Это дополнит команду до конца. Ну и конечно, нажмите Enter, чтобы убедится, что команда работает корректно (точнее, что нет проблем с правами доступа и запуска). Если все прошло без проблем, то скопируйте команду в буфер.

4: Сделайте скрипт для launchd

Сразу скажу, что тем, кто знает, как использовать launchd без сторонних программ (сюда отнесу админов и разработчиков), ниже читать может быть не интересно. Ну или интересно, но на практике не будет использовано. Хотя, кто знает…

Ну а если такими глубокими знаниями о системных сервисах вы не владеете, то вот вам путь попроще. Есть неплохая программа Lingon. Опять, качаете, распаковываете, запускаете. В панели нажимаем «+» и выбираем My Agents.

Дальше, в поле 1 даете имя, желательно поуникальнее, например «net.macovod.autoblock.10», в поле 2 вставляете команду из Терминала (см предыдущий шаг), а в секции 3 выберите At a specsific date, оставьте Every day, и введите время запуска скрипта.

Таким же образом надо создать launchd-скрипты для каждого отрезка времени, когда вы хотите изменить статус блокировки. То есть, если надо блокировать сайты в промежутке 10-12 и 1-5 часов, надо сделать копии для каждого отдельного отрезка времени. Назвать можно, например «net.macovod.autoblock.10», «net.macovod.autoblock.12» и так далее, чтобы в дальнейшем можно была легко их различать.

5: Перезагрузите компьютер

Перегрузка компьютера — это завершающий шаг. Это гарантирует, что launchd-скрипты загружены. Возможно, что и завершение сеанса и повторный вход тоже сработают, но пререзагрузка однозначно надежнее :)

Теперь OS X должен автоматически запускать скрипты в желанное время и в желанные дни. Если нужно будет отредактировать список заблокированных сайтов, или любые другие настройки,достаточно будет сохранить измененный файл. Никаких изменений в launchd уже не надо (за исключением, конечно, графика запуска).

Так что, если вы владелец небольшой компании, или заботливый родитель — то приму большое спасибо, а если вы работник у этого владельца, то не давайте читать статью начальству, дабы не пинать потом меня :)

Удачи!

Знакомым и друзьям можно отсылать открытки Украина.

Читайте также: