시간에 따라 두 가지 다른 /etc/hosts가 있습니다.

시간에 따라 두 가지 다른 /etc/hosts가 있습니다.

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

현재 나는 /etc/hostsgmail 및 stackexchange에 대해 0.0.0.0 www.facebook.com 및 유사한 콘텐츠를 편집하고 추가했습니다.

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

내 생각은 두 개의 서로 다른 파일(hosts_allow, 호스트_블록)을 갖고 시간에 따라 달라지는 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_allow너무 가까워서 이름을 변경했습니다 hosts.allow.TCP 래퍼.

답변2

2개의 서로 다른 파일이 있는 경우 hosts특정 시간에 파일을 덮어쓰도록 cron 작업을 예약하면 됩니다./etc

관련 정보