一日の特定の時間にドメインをローカルにリダイレクトする(/etc/hosts など)

一日の特定の時間にドメインをローカルにリダイレクトする(/etc/hosts など)

皆さん。生産性を上げるために、日中に特定の Web サイトをブロックまたはリダイレクトしたいのですが。/etc/hosts で一部のサイトをすでに完全にブロックしていますが、ブロックを特定の期間だけ有効にすることは、なかなかできません。

ボーナス: メインドメインをブロックしつつ、その中の特定のページは許可できるようにしたいです。例: reddit.com をブロックするが、reddit.com/r/javascript を許可する

ご協力いただける場合は感謝いたします。

答え1

おそらく次のような方法で問題が解決するでしょう: http://www.getconcentrating.com/?

答え2

@smw の回答は解決策になるように見えますが、満足感のためだけでも、「自分で作成する」に勝るものはありません。

上記のコメントに基づいて、必要な権限を与える /etc/hosts ファイルを作成できるものと想定しています。上記のように、これらを および と呼びますworktimeHostsplaytimeHosts次に、どちらかをアクティブ ファイルとして設定するスクリプトが必要です。これは、/etc/hosts を別の場所に移動していることを前提としています...

スクリプトを 1 つ作成します。

#!/bin/bash
rm /etc/hosts
ln -s /etc/worktimeHosts /etc/hosts

として保存し/usr/bin/getWorking、実行権限を設定しますchmod 755 /usr/bin/getWorking

次に、2 番目のスクリプトを作成します。

#!/bin/bash
rm /etc/hosts
ln -s /etc/playtimeHosts /etc/hosts

として保存し/usr/bin/getPlaying、権限を前と同じように設定します

/etc 内のファイルに対してこれらの操作を実行する権限があることを確認する必要があります。

次にcronテーブルを編集します(例を参照)ここ

`crontab -e`

次のような行を追加します。

00 00 08 * * /usr/bin/getWorking

そして、次の行も同様です:

00 00 17 * * /usr/bin/getPlaying

これは解決策に近いと思いますが、まだテストしていないので、実際に試してみてエラーを見つけてください...

答え3

(これは「osx」としてタグ付けされているため、「OS X のみ」のソリューションが許容されると想定します。)

  1. 皮肉な名前の自制心これを行うことができます。許可またはブロックする「ホワイトリスト」または「ブラックリスト」サイトを定義し、有効期限を設定できます。無料で、ソースコードは入手可能

  2. また、マックフリーダムこれは10ドルで、似たような効果があります。無料試用版あり

(私は過去に両方を使用したことがありますが、どちらにも関係がありません。)

注: 経験から言わせてもらえば、ミスをしないように、時間制限をあまり長くしすぎないことをお勧めします。とても とても制限時間内にこれを「元に戻す」のは困難です。(これは、退屈になったら「元に戻す」ことができる他のソリューションでも起こり得る問題です。退屈になるかもしれません!)

関連情報