Cronab -r के साथ आकस्मिक रूप से हटाए गए क्रोन नौकरियों को पुनर्प्राप्त करें


64

मैंने crontab -rइसके बजाय प्रवेश किया crontab -eऔर मेरी सभी cronनौकरियां निकाल दी गईं।

उन नौकरियों को पुनर्प्राप्त करने का सबसे अच्छा तरीका (या वहाँ एक है) क्या है?


30
यह सिर्फ मेरे लिए है या यह crontab के लिए अधिक समझ नहीं होगा -r डिफ़ॉल्ट रूप से हाँ / नहीं पूछने के लिए ??
user1446688 22

4
मुझे लगता है कि हां / नहीं का संकेत देना एक शानदार विचार होगा। खासकर जब से e & r एक दूसरे के ठीक बगल में हैं .. और crontab -eवास्तव में एक सामान्य क्रोन कमांड है।
जस्टिन बीपी

4
7 या इतने वर्षों के व्यवस्थापक कार्य में मेरे साथ ऐसा कभी नहीं हुआ। अब मैं डर गया। समय नियमित रूप से crontabs शुरू करने के लिए।
काजा

7
मेरे साथ ऐसा पहले भी हो चुका है। यह eसंपादित करने के लिए और rबिना किसी त्वरित संकेत के हटाने के लिए सबसे बुरा विचार है !!
DaniG2k

9
पहली बात, करने के लिए alias crontab=crontab -i। लेकिन crontab को यह डिफ़ॉल्ट बनाना चाहिए था, यह देखते हुए कि e & r एक दूसरे के बगल में हैं ...
aishsane

जवाबों:


49

crontab -r क्रॉन जॉब्स वाली एकमात्र फ़ाइल को निकालता है।

इसलिए यदि आपने बैकअप नहीं बनाया है, तो आपके केवल रिकवरी विकल्प हैं:

  • RedHat / CentOS पर, यदि आपकी नौकरियां पहले से चालू हो गई हैं, तो आप क्रोन लॉग इन पा सकते हैं /var/log/cron। फ़ाइल आपको नौकरियों को फिर से लिखने में मदद करेगी।
  • एक अन्य विकल्प फ़ाइल रिकवरी टूल का उपयोग करके फ़ाइल को पुनर्प्राप्त करना है। हालांकि यह सफल होने की संभावना कम है, क्योंकि सिस्टम विभाजन आमतौर पर एक व्यस्त होता है और संबंधित क्षेत्रों को शायद पहले ही अधिलेखित कर दिया गया है।
  • उबंटू / डेबियन पर, यदि आपका कार्य पहले चला है, तो प्रयास करें grep CRON /var/log/syslog

मैं आपको वोट नहीं दे सकता था लेकिन यह जवाब मेरे लिए कितना उपयोगी था। थैंक्स
तीरथ कुमार

1
@ राजरासानी आप जवाब दे सकते हैं कि टिक मार्क के साथ उत्तर सही है। फीड बैक के लिए धन्यवाद!
स्काईडैन

यह सिर्फ मेरे साथ हुआ :) कुल बम्मर .. मैं वर्चुअल सर्वर का उपयोग करता हूं और उन्हें नियमित रूप से बैकअप देता हूं..तो मैं एक बैकअप को स्पिन करने जा रहा हूं .. और हटाए गए crontabs प्राप्त करें
जस्टिन

+1 सीधा होने के लिए:}
namezero

आप /tmp/crontab.wpMhKS में संपादक द्वारा किए गए बैकअप की तलाश में अपनी किस्मत आज़मा सकते हैं (बेशक नाम बदल सकता है)। यह सबसे हाल का संस्करण नहीं हो सकता है, लेकिन मेरे मामले में इसने बहुत मदद की
जोंग बोर

21

अगर आपके पास कोई /var/log/cronफाइल नहीं है तो आप कमांड (लेकिन टाइमिंग नहीं) को रिकवर कर सकते हैं syslog

grep 'CRON.*(yourusername)' /var/log/syslog

तब आप डेटास्टैम्प को देखकर सबसे अधिक समय निकाल सकते हैं।


1
Ubuntu पर फ़ाइल है /var/log/syslog
ऑरेलिजस रूजनास 13

@ Aurelijus Rozenas I ने गलती से sys को निर्देशिका पथ में जोड़ दिया, यह होना चाहिए / var / log / syslog, मैंने अपनी पोस्ट को सही किया।
मेव

2
grep 'CRON.*(yourusername)' /var/log/syslog
एडन

@ आप मेरे रक्षक हैं! स्वयं पर ध्यान दें: सर्वर स्पेस भरे रहने के दौरान कभी भी कॉन्टैब फ़ाइल को संपादित न करें।
शामदो

1
पास जो था! मैं अब अपने crontab बैकअप के लिए रोजाना एक क्रॉन जोड़ रहा हूं :)
सिड जूल

-5

vi /var/spool/cron/*user*या यदि आप rootउपयोगकर्ता हैं तोvi /var/spool/cron/root


3
यह बदतर है। यह स्पूल फ़ाइलों को यह सूचित किए बिना cronसंपादित करता है कि फ़ाइल को संपादित किया गया है। यह तब भी काम नहीं करेगा जब उपयोगकर्ता ने गलती से अपने को हटा दिया हो crontabक्योंकि संपादित करने के लिए कोई फ़ाइल नहीं है।
रोइमा

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