在一天中的某些時間本地重定向網域(例如 /etc/hosts)

在一天中的某些時間本地重定向網域(例如 /etc/hosts)

各位。為了提高我的工作效率,我想在一天中的一段時間內選擇性地封鎖或重新導向某些網站。我已經在我的 /etc/hosts 中完全阻止了一些站點,但僅在一段時間內使阻止處於活動狀態是我無法做到的。

獎勵:我還希望能夠阻止主網域,但允許其中的特定頁面。例如,阻止 reddit.com,但允許 reddit.com/r/javascript

謝謝你盡你所能的幫助!

答案1

也許這樣的事情可以解決你的問題: http://www.getconcentration.com/

答案2

儘管 @smw 的答案看起來可能是您的解決方案,但沒有什麼比「滾動您自己的」更好的了 - 如果只是為了滿足。

根據我上面的評論,我假設您可以建立 /etc/hosts 檔案來為您提供所需的權限。如上所述,我將稱呼他們為worktimeHostsplaytimeHosts。現在您需要一個腳本來將其中一個檔案設定為活動檔案。這假設您已將 /etc/hosts 移開...

建立一個腳本:

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

另存為/usr/bin/getWorking,設定權限執行chmod 755 /usr/bin/getWorking

現在建立第二個腳本:

#!/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. 還有Mac自由這是 10 美元,它有類似的作用。有提供免費試用版

(我過去曾使用過兩者,但與其中任何一個都沒有聯繫。)

注意:如果我可以根據經驗提供一句話,我建議不要將時間限制設定得太長,以防萬一您犯錯。這是非常 非常在時限到期之前很難「撤消」這一點。 (這是任何其他解決方案的潛在問題,如果您感到無聊,您可以「撤消」 - 您可能會這樣做!)

相關內容