시간에 따라 두 개의 다른 /etc/hosts

시간에 따라 두 개의 다른 /etc/hosts

나는 나 자신을 위한 생산성 제품군을 만들려고 노력하고 있습니다. 나의 첫 번째 목표는 Facebook, Gmail 및 Stackexchange를 0900부터 1600까지 차단하는 것입니다.

현재로서는 /etc/hostsGmail 및 Stackexchange에 대해 내 0.0.0.0 www.facebook.com 및 유사한 항목을 편집하고 추가했습니다.

하지만 스크립트에 차단 기간을 포함하는 방법이 약간 혼란스럽습니다.

내가 생각한 것은 2개의 서로 다른 파일(hosts_allow, Host_block)이 있고 시간에 따라 cp hosts_allow hosts다르지만 cp hosts_block hosts무한 루프에 넣어야 하거나 문제에 접근하는 가장 좋은 방법인지 확실하지 않은 것입니다.

어떤 단서가 있나요?

답변1

사용 cron.

말하다crontab -e 루트로— 또는 sudo crontab -e설정한 경우 sudo— 텍스트 편집기에 나타나는 파일에 다음을 입력합니다.

0  9 * * * cp /etc/hosts_worktime /etc/hosts
0 16 * * * cp /etc/hosts_playtime /etc/hosts

매월 9시와 16시 0분에 /etc/hosts주어진 쉘 명령을 사용하여 덮어쓴다는 뜻입니다.

실제로는 좀 더 복잡한 것을 원할 수도 있습니다.

0  9 * * 1-5 cp /etc/hosts_worktime /etc/hosts
0 16 * * 1-5 cp /etc/hosts_playtime /etc/hosts

다섯 번째 위치에 있는 한 가지 변화는 1-5일하는 시간과 노는 시간 사이의 변화가 월요일부터 금요일까지만 일어난다는 것을 의미합니다.

man 5 crontab파일에서 수행할 수 있는 모든 작업에 대한 전체 설명을 보려면 말합니다 crontab.

그런데 은(는) 에서 사용되는 에 너무 가깝기 hosts때문에 위의 파일 이름을 변경했습니다.hosts_allowhosts.allowTCP 래퍼.

답변2

2개의 다른 파일이 있는 경우 하루 중 특정 시간에 hosts파일을 덮어쓰도록 크론 작업을 예약할 수 있습니다 ./etc

관련 정보