Ich versuche, eine Produktivitätssuite für mich selbst zu erstellen. Mein erstes Ziel ist es, Facebook, Gmail und Stackexchange von 09:00 bis 16:00 Uhr zu blockieren.
Ab sofort habe ich meine bearbeitet /etc/hosts
und 0.0.0.0 www.facebook.com und ähnliche für Google Mail und Stackexchange hinzugefügt.
Aber ich bin ein wenig verwirrt darüber, wie ich die Blockierungsdauer in mein Skript aufnehmen soll.
Was ich dachte, sind 2 verschiedene Dateien (hosts_allow, hosts_block) und dann cp hosts_allow hosts
oder cp hosts_block hosts
je nach Zeit, aber dann müsste dies in eine Endlosschleife gestellt werden oder etwas, von dem ich nicht wirklich sicher bin, ob es der beste Weg ist, das Problem anzugehen .
Irgendwelche Hinweise?
Antworten:
Verwenden Sie
cron
.Sagen Sie
crontab -e
als root - odersudo crontab -e
wenn Siesudo
eingerichtet haben - und fügen Sie Folgendes in die Datei ein, die im Texteditor angezeigt wird:Dies besagt, dass in der nullten Minute der 9. und 16. Stunde eines jeden Tages des Monats
/etc/hosts
mit den angegebenen Shell-Befehlen überschrieben wird.Vielleicht möchten Sie tatsächlich etwas Komplizierteres:
Diese eine Änderung -
1-5
die fünfte Position - besagt, dass der Wechsel zwischen Arbeits- und Spielzeit nur von Montag bis Freitag stattfindet.Sagen Sie
man 5 crontab
, um eine vollständige Erklärung zu erhalten, was Sie in einercrontab
Datei alles tun können .Übrigens habe ich die Namen Ihrer
hosts
Dateien oben geändert , weil sie von TCP-Wrappernhosts_allow
zu nahe kommen .hosts.allow
quelle
ln -f
, nichtcp
- es ist zu leicht zu vergessen, dass Änderungen,/etc/hosts
die zweimal am Tag gelöscht werden sollen, und Software, die geändert/etc/hosts
wird, es sowieso nicht wissen. Mitln
haben Sie mindestens eine dauerhafte Kopie der Änderungen (je nachdem, welche aktiv ist).Wenn Sie zwei verschiedene
hosts
Dateien haben, können Sie einfach einen Cron-Job planen, um die Datei/etc
zu einer bestimmten Stunde während des Tages zu überschreiben .quelle