मैन्युअल रूप से क्रोन फ़ाइल को संपादित करना बुरा है?


12

यह आमतौर पर निर्देश लाइनों के माध्यम से नए क्रॉन नौकरियों को पेश करने के लिए निर्देश दिया जाता है; लेकिन मुझे यह आसान लगा (वर्तमान क्रोन कार्यों के एक बेहतर नियंत्रण के साथ) मैन्युअल रूप से संपादित करने के लिए (पाठ संपादक में) उपयोगकर्ता क्रोन फ़ाइल की तरह /var/spool/cron/crontabs/root

क्या पाठ संपादक में फ़ाइल को संपादित करना खतरनाक है?

डिफ़ॉल्ट फ़ाइल में टिप्पणियां भ्रमित कर रही हैं। पहली पंक्ति कहती है

# DO NOT EDIT THIS FILE - edit the master and reinstall.

लेकिन चौथी पंक्ति कहती है

# Edit this file to introduce tasks to be run by cron.

2
सिर्फ /etc/cron.d के तहत चीज़ें क्यों नहीं डालते?
Zoredache

यह एक अच्छा विचार हो सकता है; लेकिन मेरा मतलब यह नहीं था कि किस फाइल को एडिट करना है, मैं एडिटिंग फाइल की तुलना एडिटर से कर रहा हूं या क्रॉस्टैब कमांड चला रहा हूं।
Googlebot

@ मुझे लगता है कि अंतर केवल crontab-e द्वारा किया गया वाक्यविन्यास जाँच है। यह केवल एक पाठ बफ़र है जिसमें सिंटैक्स की जाँच होती है। आप अपना सामान्य संपादक भी बदल सकते हैं और crontab-e उस में लोड होगा। Xyntax पर महत्व, यह है क्योंकि यदि आप कोई गलती करते हैं तो सभी फ़ाइल को अनदेखा कर दिया जाएगा। यहां तक ​​कि अगर आप एक बाहरी उपकरण का उपयोग करते हैं, तो आपको फ़ाइल पढ़ने के लिए crontab-e का उपयोग करना चाहिए, और समाप्त होने पर इसे crontab-e पर वापस भेजना चाहिए। ऐसा करने से आपको अब सिंटैक्स के बारे में चिंता करने की ज़रूरत नहीं है। उपयोगकर्ता और सिस्टम कार्यों से फ़ाइलों को विभाजित करने के लिए बेहतर है, इसलिए आपको उपयोगकर्ता / परीक्षण कार्यों के लिए बेहतर /etc/cron.d का उपयोग करना चाहिए।
m3nda

जवाबों:


22

यदि आप crontabs के तहत उपयोगकर्ता फ़ाइल को संशोधित करते हैं, तो यह काम करना चाहिए। हालाँकि, ध्यान देने के लिए दो मुद्दे हैं:

  1. यदि आपने फ़ाइल में क्रोन प्रविष्टि गलत की है, तो आपको crontab -eकमांड का उपयोग करने के लिए विरोध नहीं किया जाएगा ।
  2. आप रूट के रूप में या sudo का उपयोग किए बिना सीधे अपने यूजर फाइल को crontabs के तहत संपादित नहीं कर सकते हैं। आपको अनुमति अस्वीकृत त्रुटि मिलेगी।

संपादित करें

जोड़ने के लिए एक और बिंदु। जब आप फ़ाइल को सीधे संपादित करते हैं, तो आपको पाठ संपादक द्वारा चेतावनी दी जा सकती है यदि आपने फ़ाइल को दो बार खोला है (दो उपयोगकर्ता एक ही फ़ाइल को एक्सेस कर रहे हैं)। हालांकि, crontab -eएक ही उपयोगकर्ता के दो अलग-अलग शेल सत्रों का उपयोग करते समय क्रोन सूची को अधिलेखित कर दिया जाएगा । यह एक और अंतर है।


बहुत सूक्ष्म बिंदु! मैंने दूसरी समस्या का कभी भी सामना नहीं किया (मुझे पता था), क्योंकि मैं हमेशा जड़ के रूप में काम करता हूं।
Googlebot

4
साथ ही, डिफ़ॉल्ट फ़ाइल में "एडिट न करें" इसलिए है क्योंकि उस फ़ाइल को अपग्रेड / रीइंस्टॉल ओवरराइट कर सकता है।
क्रिस एस

आप यह उल्लेख करने में विफल रहे कि एक उपयोगकर्ता जो क्रेस्टैब का संपादन करता है, वह सीधे crontab -eप्रदान करने वाले सैंटैक्स की जांच खो देता है।
एडम एफ

1
@AdamF: यह बात किस बिंदु 1 की है!
खालिद

8

अगर मैं सही तरीके से समझूं, तो आप फ़ाइल को टेक्स्ट एडिटर से मैन्युअल रूप से संपादित कर रहे हैं क्योंकि आप crontab -e का उपयोग नहीं करना चाहते हैं। मुझे लगता है कि क्योंकि यह संपादक के रूप में vi का उपयोग कर रहा है और आप इससे अपरिचित हैं।

आप crontab -e (और अन्य चीजें जो एक संपादक की आवश्यकता हैं) को बदलकर अधिक परिचित नैनो संपादक का उपयोग करने के लिए बदलते हैं

export EDITOR=nano

इससे पहले

crontab -e

आप export EDITOR=nanoअंत में शामिल करने के लिए अपनी ~ / .bash_profile फ़ाइल का संपादन करके नैनो को डिफ़ॉल्ट डिफ़ॉल्ट संपादक बना सकते हैं ।

अपने प्रश्न का उत्तर देने के लिए, आपको फ़ाइल को सीधे संपादित नहीं करना चाहिए क्योंकि यह आपके द्वारा लिखे बिना ही ओवरराइट हो सकता है। 4 वीं पंक्ति कहती है कि यह क्या कहती है क्योंकि यह क्रैस्टब से आती है जिसे आप मैन्युअल रूप से संपादित करने वाले हैं (यह कहेंगे कि पहली पंक्ति के रूप में)।


वर्णनात्मक उत्तर के लिए धन्यवाद। मैं crontab कमांड vi संपादक से पूरी तरह परिचित हूं; लेकिन मैं gedit (ssh टर्मिनल में नहीं) का उपयोग करता हूं, क्योंकि मैं सीधे अपने लिनक्स डेस्कटॉप से ​​सर्वर से जुड़ता हूं।
Googlebot

मैं यह भी सलाह देता हूं कि जब भी आप ssh में लॉग इन करें, हर बार इसे राइट करने से बचने के लिए अपनी EDashOR फाइल में एक्सपोर्ट EDITOR कमांड जोड़ें।
m3nda

1
export VISUAL=vi

Crontab के लिए संपादक बदलने का यह सही तरीका है।

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