एक उपयोगकर्ता के लिए कई crontabs


13

वहाँ एक उपयोगकर्ता के लिए कई crontab फ़ाइलों का उपयोग करने का एक तरीका है? प्रति उपयोगकर्ता crontab के बजाय प्रोजेक्ट प्रति crontab फ़ाइल की तर्ज पर कुछ सोचना ...

किसी भी मदद की सराहना की है ...

जवाबों:


13

यह आम तौर पर एक अलग फ़ाइल में अपने crontab को बनाए रखने के लिए एक अच्छा विचार है, और इसे स्थापित करें crontab filename। (मैं अपने crontab फ़ाइल को एक स्रोत नियंत्रण प्रणाली में रखता हूं।)

आपके पास कई crontab फ़ाइलें हो सकती हैं, और उन सभी को स्थापित कर सकती हैं

cat file1 file2 file3 | crontab

crontabआदेश आम तौर पर केवल प्रति उपयोगकर्ता एक भी crontab प्रबंधन करता है। लेकिन आप /etc/cron.dडायरेक्टरी में सिस्टम क्रॉस्टैब फाइल्स को जोड़ सकते हैं । इन फ़ाइलों में समय विनिर्देशन के बाद एक अतिरिक्त क्षेत्र होता है जो उपयोगकर्ता को नौकरी के लिए इंगित करता है, और आपके पास प्रति उपयोगकर्ता कई फाइलें हो सकती हैं। यहां तक ​​कि अगर उनमें से एक में सिंटैक्स त्रुटि है, तो अन्य अभी भी निष्पादित करेंगे।

आपको उस निर्देशिका में फ़ाइलें स्थापित करने के लिए रूट एक्सेस की आवश्यकता होगी।

man 5 crontab ब्योरा हेतु।

मुझे विश्वास नहीं हो रहा है कि इस तरह के सामान्य कॉन्टैब तंत्र को दरकिनार करना एक अच्छा विचार है, लेकिन यह काम करना चाहिए।

(यह "विक्सी क्रोन" कार्यान्वयन को मानता है, जो संभवतः आपके सिस्टम का उपयोग करता है।)

नोट: आप कोशिश करने के लिए परीक्षा हो सकती है

crontab file1 file2 file3 # WRONG

लेकिन एक त्वरित प्रयोग से पता चलता है कि सभी फ़ाइल नाम लेकिन पहले चुपचाप नजरअंदाज कर दिए जाते हैं। मैन पेज कहता है कि एक एकल फ़ाइल नाम स्वीकार किया जाता है, लेकिन यह नहीं कहता है कि यदि एकाधिक फ़ाइल नाम प्रदान किए जाते हैं तो क्या होता है।


मैंने आज ही ऐसा किया। यह करना आसान होगा, लेकिन इसके साथ लक्ष्य यह है कि प्रत्येक परियोजना "प्रबंधक" का अपने स्वयं के क्रोटेब पर नियंत्रण होगा। उस दृष्टिकोण के साथ इसे इस तरह संयोजित करना होगा कि हर बार कोई व्यक्ति किसी एक फाइल को बदले, जिसका अर्थ है कि उन्हें उन सभी फाइलों पर नज़र रखनी होगी जिन्हें संकलित करने की आवश्यकता है

1
इसलिए इसे स्वचालित करने के लिए एक प्रोग्राम (या स्क्रिप्ट, या जो कुछ भी) बनाएं। ध्यान दें कि आप crontabकमांड को crontab प्रविष्टि से प्राप्त कर सकते हैं ।
कीथ थॉम्पसन

1
@MateuszKonieczny: यह एक अच्छा कारण है, लेकिन आकस्मिक रूप से अपने क्रॉस्टैब को मिटाना भी आसान है। crontabबिना किसी तर्क के, स्टडिन से एक नया क्रैस्टैब पढ़ता है।
कीथ थॉम्पसन

1
@MateuszKonieczny: नहीं, मैं इसे सीवीएस रेपो में रखता हूं और $HOMEजब मैं इसे अपडेट करता हूं तो इसे कॉपी करता हूं। (मैं सीवीएस का उपयोग करता हूं क्योंकि गिट तब मौजूद नहीं था जब मैंने ऐसा करना शुरू किया था।)
कीथ थॉम्पसन

1
@KeithThompson ओह, गेटा! मैं विकास या सूक्ति के बिना "खरोंच" से फेडोरा कोर 24 को चलाने में लोगों की मदद करने के लिए एक दस्तावेज बना रहा हूं: github.com/barrycarter/bcapps/blob/master/FEDORA और मेरे क्रोन का हिस्सा साझा करना चाहता था, लेकिन यह सब नहीं। आपका समाधान (जीआईटी निर्देशिका में बीसी-पब्लिक-क्रॉन बनाना और उसके बाहर बीसी-प्राइवेट-क्रोन) बिल को अच्छी तरह से फिट करता है।
बैरीकेटर

4

तुम ऐसा क्यों करोगे? आप कोंट्राब में कई लाइनों का उपयोग कर सकते हैं - मुझे लगता है कि यह काम भी करेगा।

ऐसी निर्देशिकाएं भी हैं जिनका आप संभवतः उपयोग कर सकते हैं:

cron.d/
cron.daily/
cron.hourly/
cron.monthly/
cron.weekly/

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