क्या मैं अपने crontab फ़ाइल को / tmp में सहेज सकता हूँ?


11

मैं एक सर्वर के लिए ssh करता हूं, और कुछ दैनिक नौकरियों को जोड़ना चाहता हूं (जब मैं लॉग आउट करता हूं तब भी Kerberos टिकटों को नवीनीकृत करने के लिए और मैं अभी भी चाहता हूं कि मेरे कार्यक्रम स्क्रीन या tmux में चलते रहें)। तो मैं दौड़ता हूं crontab -e, और निम्नलिखित जोड़ता हूं ,

00 00 * * * kinit -R
00 12 * * * kinit -R

जब मैं इसे सहेजता हूं, तो मुझे संपादक द्वारा पूछा जाता है:

File Name to Write: /tmp/crontab.HMpG7V 

क्या ऐसा नहीं है कि /tmpओएस द्वारा फाइलों को हटाया जा सकता है? खासतौर पर सर्वर से लॉग आउट करने के बाद?

मैं अपनी क्रेस्टैब फ़ाइल कहाँ संग्रहीत करूँ? क्या मैं Crontab फाइल को $ HOME या कुछ बेहतर स्पेस के तहत बचा सकता हूं?


क्या मैं Crontab फ़ाइल को $ HOME के ​​अंतर्गत सहेज सकता हूँ? मुझे सिमलिंक की आवश्यकता क्यों है?
टिम

जवाबों:


15

crontab -eवास्तविक crontab के बजाय / tmp में एक फ़ाइल खोलता है ताकि यह त्रुटियों के लिए आपके नए crontab की जाँच कर सके और आपको उन त्रुटियों के साथ अपने वास्तविक crontab को ओवरराइट करने से रोक सके। यदि कोई त्रुटि नहीं है, तो आपका वास्तविक क्रॉन्ब अपडेट किया जाएगा। यदि आप crontab -eसीधे अपने वास्तविक क्रॉस्टैब पर लिखते हैं, तो आप अपने सभी क्रोनोजर को जोखिम में डाल देंगे जो आपके नए क्रॉस्टैब में एक सिंटैक्स त्रुटि के कारण चलने में विफल हो।

sudoedit, visudo, vipw, आदि इसी सिद्धांत पर कार्य करते हैं।

चिंता न करें, डिस्क पर एक गैर-वाष्पशील स्थान पर आपका वास्तविक कोंट्राब रहता है।


मेरी crontab फ़ाइल अंततः कहाँ संग्रहीत है? यदि मैं सर्वर से लॉग आउट करता हूं, तो मेरी क्रॉस्टैब फ़ाइल का क्या होगा? (मैं एक व्यवस्थापक नहीं हूं, और सर्वर तक रूट एक्सेस नहीं है)
टिम

1
आपका वास्तविक क्रॉन्स्ट कहीं /var/spool(आमतौर पर) रहता है , लेकिन आपको कभी भी अपने वास्तविक कॉन्टैब को नहीं छूना चाहिए और आपको crontab -eइसके बजाय कभी भी उपयोग नहीं करना चाहिए । आपके पास वैसे भी कच्चे crontab फ़ाइल को संपादित करने के लिए सही पहुँच स्तर नहीं है।
जयहिन्द्रे

यदि आप लॉग आउट करते हैं, तो आपके क्रेस्टैब में कुछ भी नहीं होगा। यह / tmp में नहीं रहता है।
जयहिन्द्रन

(1) व्यक्तिगत उपयोगकर्ता या सभी उपयोगकर्ताओं के लिए crontab फ़ाइल है? (२) अगर मैं क्रासटैब फाइल पर काम करता हूं तो मैं कैसे सत्यापित कर सकता हूं?
टिम

crontabs प्रति उपयोगकर्ता हैं। यह सत्यापित करने के लिए कि आपका क्रोनजॉब चलता है, आप क्रोन लॉग की जांच कर सकते हैं। आम तौर पर /var/log/cron.log में, लेकिन यह अन्य स्थानों पर भी हो सकता है।
जयहिन्द्रे

5

/tmpवह जगह है जहाँ अस्थायी crontab फ़ाइल को लिखा जाता है। आपके द्वारा सहेजने और छोड़ने के बाद, crontabआपके सिस्टम पर एक अलग, अधिक उपयुक्त निर्देशिका में बदलाव करेगा (आमतौर पर /var/spool/cron, अगर मुझे सही याद है)। तो, चिंता न करें, ऑपरेटिंग सिस्टम आपके / tmp को हटा सकता है, लेकिन यह आपके crontabs को कभी भी दूर नहीं करेगा।


1

Crontab फ़ाइलें / var / spool / cron / crontabs / में किसी के उपयोगकर्ता नाम या उपयोगकर्ता ID के अंतर्गत रहती हैं। चूंकि स्थितियां पैदा हो सकती हैं, जहां यहां स्थित क्रॉस्टैब आपके लॉगिन खाते से जुड़ा नहीं है, यह अनुशंसा की जाती है कि आप अपने होम डायरेक्टरी को कॉपी सेव करें, /home/userid/.crontab, ताकि आप आसानी से इसे पुनर्स्थापित कर सकें, आपको चाहिए सेवा। यह भी आप इसे आप की तरह संशोधन नियंत्रण के तहत जगह की अनुमति चाहिए।

यदि आप होम निर्देशिका को किसी अन्य सिस्टम में स्थानांतरित कर रहे हैं, तो अक्सर स्पूल निर्देशिका से क्रॉस्टैब तब तक साथ नहीं देता है जब तक कि आपका सिस्टम व्यवस्थापक इसे ध्यान में नहीं रखता है। जब सिस्टम को फिर से तैयार करने की आवश्यकता होती है, तब न तो / var / स्पूल हमेशा बैकअप या बहाल होता है।

तो फिर से यह अनुशंसा की जाती है कि आपके कॉन्टैब की एक प्रति आपके घर निर्देशिका के नीचे रखी जाए।

~ / .Crontab को संपादित करने के लिए अपने पसंदीदा संपादक (पिको, vi, emacs, आदि) का उपयोग करें और फिर इसे / var / spool / crontabs पर लागू करने के लिए crontab का उपयोग करें। ऐशे ही:

% pico ~/.crontab; crontab ~/.crontab

यदि आप उपनाम पसंद करते हैं, तो आप इसके बजाय चलाने के लिए एक बना सकते हैं।


1
क्या मुझे अपने घर की crontab फ़ाइल को अन्य स्थान पर crontab फ़ाइलों को ओवरराइड करने के लिए कुछ करना होगा?
टिम

बस "crontab ~ / .crontab" चलाएं और आप इसे / var / spool / cron / crontabs में लागू करेंगे। कोई भी बदलाव करने के लिए हाथ से पहले ~ / .crontab को संपादित करने के लिए पिको, एमैक या vi का उपयोग करें।
जोनाथन

यह वास्तव में सवाल का जवाब नहीं देता है।
कोई नहीं

@AndrewMedico: प्राथमिक प्रश्न यह प्रतीत होता है कि "मैं अपनी कॉन्टैब फ़ाइल को कहाँ संग्रहीत कर सकता हूँ? क्या मैं Crontab फ़ाइल को $ HOME या कुछ बेहतर स्थान के अंतर्गत सहेज सकता हूँ?" या आप यहां टिप्पणी में टिम के प्रश्न का उल्लेख कर रहे हैं?
जोनाथन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.