Saya mencoba membuat rangkaian produktivitas untuk diri saya sendiri. Tujuan pertama saya adalah memblokir Facebook, Gmail dan Stackexchange dari 0900 hingga 1600.
Sampai sekarang, saya telah mengedit /etc/hosts
dan menambahkan 0,0.0.0 www.facebook.com dan yang serupa untuk gmail dan stackexchange.
Tapi saya agak bingung tentang cara memasukkan durasi pemblokiran dalam skrip saya.
Apa yang saya pikir memiliki 2 file berbeda (hosts_allow, hosts_block) dan kemudian cp hosts_allow hosts
atau cp hosts_block hosts
tergantung pada waktu tetapi kemudian ini perlu dimasukkan ke dalam loop tak terbatas atau sesuatu yang saya tidak benar-benar yakin adalah cara terbaik untuk mendekati masalah.
Ada petunjuk?
Jawaban:
Gunakan
cron
.Katakan
crontab -e
sebagai root - atausudo crontab -e
jika Anda telahsudo
mengatur - dan letakkan yang berikut di file yang muncul di editor teks:Ini mengatakan bahwa pada menit nol dari jam ke-9 dan ke-16 setiap hari dalam sebulan, timpa
/etc/hosts
menggunakan perintah shell yang diberikan.Anda mungkin sebenarnya menginginkan sesuatu yang sedikit lebih rumit:
Satu perubahan itu - menempatkan
1-5
di posisi kelima - mengatakan perubahan antara kerja dan waktu bermain hanya terjadi pada hari Senin hingga Jumat.Katakan
man 5 crontab
untuk mendapatkan penjelasan lengkap tentang apa yang dapat Anda lakukan dalamcrontab
file.Omong-omong, saya mengubah nama
hosts
file Anda di atas, karenahosts_allow
terlalu dekat denganhosts.allow
, digunakan oleh TCP Wrappers .sumber
ln -f
, tidakcp
- terlalu mudah untuk melupakan bahwa setiap perubahan untuk/etc/hosts
dihapus dua kali sehari, dan setiap perangkat lunak yang memodifikasi/etc/hosts
tidak akan tahu. Denganln
, Anda setidaknya akan memiliki satu salinan perubahan yang tetap (mana saja yang aktif).Jika Anda memiliki 2
hosts
file berbeda , Anda cukup menjadwalkan pekerjaan cron untuk menimpa file/etc
pada jam tertentu di siang hari.sumber