나는 나 자신을 위한 생산성 제품군을 만들려고 노력하고 있습니다. 나의 첫 번째 목표는 0900시부터 1600시까지 Facebook, Gmail 및 Stackexchange를 차단하는 것이었습니다.
현재 나는 /etc/hosts
gmail 및 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