В моем файле /etc/hosts есть такие записи:
127.0.0.1 www.youtube.com
Чтобы я не отвлекался. Когда мне что-то нужно на одном из заблокированных мною сайтов, я добавляю # в начало строки. Выполнив эту команду, я могу сделать так, чтобы все строки можно было раскомментировать, чтобы снова удалить доступ:
sudo sed -i '' 's/\#//g' /etc/hosts
Для автоматического удаления доступа я запускаю sudo crontab -e
и добавляю эту строку
*/10 8-15 * * 1-5 sed -i '' 's/\#//g' /etc/hosts
Я также пробовал сsudo crontab -e -u root
После его сохранения Mac запрашивает у терминала разрешение на администрирование машины, которое я предоставляю, и я полагаю, что все должно быть хорошо, но он не видит, что команда когда-либо выполнялась (файл не обновляется). Есть ли что-то, что мне нужно сделать, чтобы заставить его обновить файл?
Когда вы вводите команду через cron
, вам нужно указать весь путь, поэтому вместо этого вы должны использовать /usr/bin/sed
.
Есть несколько других вопросов, которые вы должны рассмотреть:
cron
устарело , и это следует сделать, используя launchd
вместо этого
Зачем редактировать файл на месте? Просто сохраните исходную версию файла hosts (т. е. /etc/hosts.orig
) и создайте новый файл hosts на тот случай, если вы захотите заблокировать YouTube (т. е. /etc/hosts.nodistractions
). Просто скопируйте соответствующий файл в /etc/hosts
указанный интервал времени.
Например, чтобы разблокировать все:
cp /etc/hosts.orig /etc/hosts
Чтобы перейти в «режим без отвлечения»:
cp /etc/hosts.nodistractions /etc/hosts
Преимущество использования этого метода заключается в том, что вы можете легко отредактировать файл, чтобы добавить больше хостов по мере развития ваших отвлекающих факторов, и вам не придется изменять код. Запуск этого как LaunchDameon выполняет это, root
так что нет никаких проблем с разрешениями, о которых действительно нужно беспокоиться. Вам не придется спорить sudo
или su
убеждаться, что вы используете нужного пользователя.
Тем не менее, есть приложение под названием Focus (20 долларов), которое имеет очень богатый набор функций, который позволит вам блокировать не только веб-сайты, но и приложения. Существует функция «сделать перерыв», которая позволит вам снять ограничения на настраиваемый период времени, позволяя вам сделать перерыв или, как вы описали, получить что-то, когда это необходимо. Цена (IMO) вполне разумна для того, что она обеспечивает.
Обратите внимание, что я никоим образом не связан с этим приложением/компанией и лично им не пользуюсь. Я знаю об этом продукте только потому, что мне нужно было найти инструмент для родителей учеников, которые не были сосредоточены на текущей задаче, который дал им возможность автоматически справляться со своими отвлечениями; в основном из-за местоположения (родители на работе, дети дома, не делая уроки).
без холма
lx07
РобКор