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


11

나 자신을 위해 생산성 제품군을 만들려고합니다. 첫 번째 목표는 Facebook, Gmail 및 Stackexchange를 0900에서 1600으로 차단하는 것입니다.

현재, 나는 내 /etc/hostsGmail 을 편집 하고 0.0.0.0 www.facebook.com과 gmail 및 stackexchange를 위해 비슷한 것을 추가했습니다.

그러나 스크립트에 차단 기간을 포함시키는 방법에 대해 약간 혼란 스럽습니다.

내가 다음 2 개 개의 다른 파일 (hosts_allow, hosts_block)을 갖는되는 생각 cp hosts_allow hosts이나 cp hosts_block hosts시간에 따라하지만이 무한 루프 또는 아니에요 뭔가에 넣어 될 필요가 정말 있는지 문제를 접근하는 가장 좋은 방법입니다.

단서가 있습니까?


그러나 ... 그러나 StackExchange는 생산성을 향상시킵니다! :(
kba

@KristianBorupAntonsen, 다 변수 미적분을 배우려고 할 때가 아니라 : P

1
math.SE는 항상 도움이됩니다! :)
kba

답변:


19

사용하십시오 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파일을.

그건 그렇고, TCP Wrappers 에서 사용하는에 너무 가깝기 hosts때문에 위 의 파일 이름을 변경했습니다 .hosts_allowhosts.allow


9
tcpwrappers 유사성을 줄이기 위해 파일 이름을 변경하면 +1입니다. 또한, 제안 ln -f하지는 cp않겠 /etc/hosts습니다. 하루에 두 번 변경해야 할 변경 내용을 잊어 버리기 쉽고 수정하는 소프트웨어는 /etc/hosts알 수 없습니다. 을 사용 ln하면 변경 사항의 영구 사본이 하나 이상 있어야합니다 (둘 중 하나는 활성 상태입니다).
Alexios

@Alexios : 거기에 논쟁이 없습니다.
워렌 영

3

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.