Due host / etc / differenti a seconda dell'ora


11

Sto cercando di creare una suite di produttività per me stesso. Il mio primo obiettivo è bloccare Facebook, Gmail e Stackexchange dal 0900 al 1600.

A partire da ora, ho modificato il mio /etc/hostse aggiunto 0.0.0.0 www.facebook.com e simili per gmail e stackexchange.

Ma sono un po 'confuso su come includere la durata del blocco nella mia sceneggiatura.

Quello che pensavo fosse avere 2 file diversi (hosts_allow, hosts_block) e quindi cp hosts_allow hostso in cp hosts_block hostsbase al tempo, ma questo avrebbe dovuto essere inserito in un ciclo infinito o qualcosa che non sono davvero sicuro sia il modo migliore per affrontare il problema.

Qualche indizio?


Ma ... Ma StackExchange migliora la produttività! :(
kba,

@KristianBorupAntonsen, non quando sto cercando di imparare il calcolo multivariabile: P

1
math.SE è sempre utile! :)
kba,

Risposte:


19

Usa cron.

Pronuncia crontab -e come root - o sudo crontab -ese hai sudoimpostato - e inserisci quanto segue nel file che compare nell'editor di testo:

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

Questo dice che al minuto zeroth della nona e sedicesima ora di ogni giorno del mese, sovrascrivi /etc/hostsusando i comandi di shell forniti.

In realtà potresti volere qualcosa di un po 'più complicato:

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

Quell'unico cambiamento - mettendo 1-5in quinta posizione - dice che il cambio tra lavoro e tempo di gioco avviene solo dal lunedì al venerdì.

Di ' man 5 crontabuna spiegazione completa di cosa puoi fare in un crontabfile.

A proposito, ho cambiato i nomi dei tuoi hostsfile sopra, perché hosts_allowsono troppo vicini hosts.allow, usati dai wrapper TCP .


9
+1 per modificare il nome file per ridurre la somiglianza di tcpwrappers. Inoltre, suggerirei di ln -fno cp: è troppo facile dimenticare che eventuali modifiche /etc/hostsvengono cancellate due volte al giorno e qualsiasi software che modifica /etc/hostsnon lo saprà comunque. Con ln, avrai almeno una copia persistente delle modifiche (qualunque sia attiva).
Alexios,

@Alexios: nessuna discussione lì.
Warren Young,

3

Se hai 2 hostsfile diversi , puoi semplicemente pianificare un cron job per sovrascrivere il file /etcad un'ora specifica durante il giorno.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.