दो अलग-अलग / आदि / मेजबान समय के आधार पर


11

मैं अपने लिए एक उत्पादकता सूट बनाने की कोशिश कर रहा हूं। मेरा पहला लक्ष्य 0900 से 1600 तक फेसबुक, जीमेल और स्टैकएक्सचेंज को ब्लॉक करना है।

अब तक, मैंने अपना संपादन किया है /etc/hostsऔर 0.0.0.0 www.facebook.com और इसी तरह के gmail और stackexchange के लिए जोड़ा है।

लेकिन मैं अपनी स्क्रिप्ट में अवरुद्ध अवधि को शामिल करने के तरीके के बारे में थोड़ा उलझन में हूं।

जो मैंने सोचा था कि 2 अलग-अलग फाइलें हैं (होस्ट_आलू, होस्ट_ब्लॉक) और फिर cp hosts_allow hostsया cp hosts_block hostsसमय के आधार पर लेकिन फिर इसे अनंत लूप में डालने की जरूरत है या ऐसा कुछ जो मुझे वास्तव में यकीन नहीं है कि समस्या का सबसे अच्छा तरीका है।

कोई सुराग?


लेकिन ... लेकिन StackExchange उत्पादकता में सुधार करता है! :(
kba

@KristianBorupAntonsen, न कि जब मैं मल्टीवर्जेबल कैलकुलस सीखने की कोशिश कर रहा हूँ: P

1
math.SE हमेशा मददगार होता है! :)
kba

जवाबों:


19

का उपयोग करें cron

crontab -e रूट के रूप में कहें - या sudo crontab -eयदि आपने sudoसेट किया है - और टेक्स्ट एडिटर में आने वाली फाइल में निम्नलिखित को डालें:

0  9 * * * cp /etc/hosts_worktime /etc/hosts
0 16 * * * cp /etc/hosts_playtime /etc/hosts

यह कहता है कि महीने के हर दिन के 9 वें और 16 वें घंटे के शून्य मिनट पर /etc/hostsदिए गए शेल कमांड का उपयोग करके ओवरराइट करें।

आप वास्तव में कुछ और अधिक जटिल चाहते हैं:

0  9 * * 1-5 cp /etc/hosts_worktime /etc/hosts
0 16 * * 1-5 cp /etc/hosts_playtime /etc/hosts

वह एक बदलाव - 1-5पांचवीं स्थिति में डालता है - कहता है कि काम और खेलने के समय के बीच का परिवर्तन सोमवार को केवल शुक्रवार के माध्यम से होता है।

man 5 crontabएक crontabफाइल में आप क्या कर सकते हैं, इसका पूरा विवरण प्राप्त करने के लिए कहें ।

वैसे, मैंने hostsऊपर आपकी फ़ाइलों के नाम बदल दिए हैं, क्योंकि hosts_allowबहुत करीब है hosts.allow, जिसका उपयोग टीसीपी रैपर्स द्वारा किया जाता है ।


9
Tcpwrappers समानता को कम करने के लिए फ़ाइल नाम बदलने के लिए +1। इसके अलावा, मैं सुझाव दूंगा ln -f, नहीं cp- यह भूल जाना बहुत आसान है कि /etc/hostsदिन में दो बार हटाए जाने वाले किसी भी परिवर्तन , और किसी भी सॉफ्टवेयर को संशोधित /etc/hostsकरना वैसे भी नहीं पता होगा। इसके साथ ln, आपके पास कम से कम परिवर्तनों की एक सतत प्रतिलिपि (जो भी सक्रिय है) होगी।
अलेक्सियो

@ एलेक्सियो: कोई तर्क नहीं।
वॉरेन यंग

3

यदि आपके पास 2 अलग-अलग hostsफ़ाइल हैं, तो आप /etcदिन के दौरान एक विशिष्ट घंटे में फ़ाइल को अधिलेखित करने के लिए एक क्रॉन जॉब शेड्यूल कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.