Staram się stworzyć pakiet produkcyjny dla siebie. Moim pierwszym celem jest zablokowanie Facebooka, Gmaila i Stackexchange od 0900 do 1600.
Na razie edytowałem mój /etc/hosts
i dodałem 0.0.0.0 www.facebook.com i podobne dla Gmaila i Stackexchange.
Ale jestem trochę zdezorientowany, jak uwzględnić czas trwania blokady w moim skrypcie.
Pomyślałem, że mam 2 różne pliki (hosts_allow, hosts_block), a następnie cp hosts_allow hosts
lub w cp hosts_block hosts
zależności od czasu, ale wtedy trzeba będzie umieścić je w nieskończonej pętli lub coś, czego nie jestem pewien, czy to najlepszy sposób na rozwiązanie problemu.
Jakieś wskazówki?
Odpowiedzi:
Zastosowanie
cron
.Powiedz
crontab -e
jako root - lubsudo crontab -e
jeślisudo
skonfigurowałeś - i umieść w pliku pojawiającym się w edytorze tekstu:Oznacza to, że w zerowej minucie 9. i 16. godziny każdego dnia miesiąca nadpisuj,
/etc/hosts
używając podanych poleceń powłoki.Możesz chcieć czegoś bardziej skomplikowanego:
Ta jedna zmiana - umieszczenie
1-5
na piątej pozycji - mówi, że zmiana między pracą a czasem gry ma miejsce tylko od poniedziałku do piątku.Powiedz,
man 5 crontab
aby uzyskać pełne wyjaśnienie wszystkiego, co możesz zrobić wcrontab
pliku.Nawiasem mówiąc, zmieniłem nazwy twoich
hosts
plików powyżej, ponieważhosts_allow
są zbyt bliskohosts.allow
, używane przez Owijarki TCP .źródło
ln -f
niecp
- zbyt łatwo jest zapomnieć, że wszelkie zmiany należy/etc/hosts
usuwać dwa razy dziennie, a każde oprogramowanie, które modyfikuje, i/etc/hosts
tak nie będzie wiedzieć. Dziękiln
będziesz mieć co najmniej jedną trwałą kopię zmian (zależnie od tego, która jest aktywna).Jeśli masz 2 różne
hosts
pliki, możesz po prostu zaplanować zadanie CRON, aby zastąpić plik/etc
o określonej godzinie w ciągu dnia.źródło