時間に応じて2つの異なる/ etc / hosts


11

私は自分のために生産性スイートを作ろうとしています。私の最初の目標は、Facebook、Gmail、Stackexchangeを0900から1600までブロックすることです。

今のところ、私は自分を編集して/etc/hosts0.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 rootとして -または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つの変更(1-55番目の位置に置く)は、仕事と遊びの時間の変更が月曜日から金曜日にのみ発生することを示しています。

言うman 5 crontabあなたが何ができるか、すべての十分な説明を取得するためにcrontabファイルを。

ところで、私はあなたの名前を変更しhostsているため、上記のファイルをhosts_allow、あまりにも近いですhosts.allowが使用し、TCPラッパー


9
ファイル名を変更してtcpwrappersの類似性を減らすための+1。また、私はお勧めln -fしません。1日2回削除される変更や、変更するソフトウェアがいずれにしてもわからないことcpを忘れるのは簡単です。を使用すると、少なくとも1つの変更の永続的なコピー(アクティブな方)が作成されます。/etc/hosts/etc/hostsln
Alexios

@Alexios:そこには議論はありません。
ウォーレンヤング

3

2つの異なるhostsファイルがある場合は、cronジョブをスケジュールして、/etcその日の特定の時間にファイルを上書きすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.