हटाए गए क्रोन टैब फ़ाइल और इसे पुनर्प्राप्त करने की आवश्यकता है


11

मैंने crontab -e के बजाय crontab -r चलाया और अपनी crontab फ़ाइल हटा दी। मेरे पास हटाए गए फ़ाइल को पुनर्प्राप्त करने के लिए बैकअप और नया नहीं था।

क्या यह संभव है?

धन्यवाद,

पीटर


7
कीबोर्ड पर एक दूसरे के बगल में एडिट और रिमूव करने के विकल्प सही नहीं होने चाहिए। एक त्वरित टायपर बनाने के लिए बहुत आसान गलती।
आइंस्टीन

वास्तव में मेरे साथ ऐसा ही हुआ है।

जवाबों:


9

जो चल रहा है उसे देखने के लिए / var / log / cron देखने की कोशिश करें और फिर उस से crontab को फिर से बनाने की कोशिश करें। इसका गन्दा लेकिन आपको पहले से चलाए गए सभी चीज़ों को पुनर्स्थापित करने में सक्षम होना चाहिए। हालांकि नई वस्तुओं के लिए इतना भाग्य नहीं है। सौभाग्य!


महान दृष्टिकोण!
एलेक्स

5

सबसे पहले: हमेशा बैकअप बनाएं!

लेकिन, मिश्रण करना इतना आसान है crontab -rऔर crontab -e। मैंने बस खुद ऐसा किया है।

वही मैंने किया:

आप / var / log / cron पर एक नज़र डालने की कोशिश कर सकते हैं और अपना कॉन्टैब फिर से बना सकते हैं।

  1. लॉगफाइल पर एक नजर है
  2. पहले आज्ञा लो और करो grep commandname1 /var/log/cron
  3. कमांड चलाए जाने के समय के बाद व्यवस्थित चित्र
  4. उस एंट्री को अपने नए कोंट्राब में रखें
  5. अमल करना cat /var/log/cron | grep -v commandname1। यह कमांड 1 को बाहर कर देगा जिसे आपने पहले ही कवर किया था।
  6. इसके लिए अगला कमांड लें और grep लें
  7. दूसरी कमान चलाने के समय के पीछे व्यवस्थित चित्र
  8. उस प्रविष्टि को अपने नए क्रॉस्टैब में रखें
  9. निष्पादित cat /var/log/cron | grep -v commandname1 | grep -v commandname2
  10. जब तक आप सभी आदेशों को कवर नहीं करते तब तक दोहराएं

अब आपको पुराने cronlogs पर grep को भी निष्पादित करना चाहिए ताकि यह पता लगाया जा सके कि महीने में केवल एक बार ही नौकरी मिल सकती है।


1
Ubuntu पर कम से कम (एनाक्रॉन / विक्सी क्रोन का उपयोग करने वाले अन्य प्लेटफार्मों के बारे में निश्चित नहीं) लॉग इन में संग्रहीत है /var/log/syslog/*
तीमुथियुस गु

1
इससे पहले कि आप गलती से कुछ हटा दें, हमेशा एक बैकअप बनाएं!
दविद होर्वाथ

4

पूर्ण crontab वसूली के लिए स्क्रिप्ट

मैंने एक PHP स्क्रिप्ट बनाई जो लॉग के आधार पर आपके कॉन्टैब की पूरी रिकवरी करती है।

यह अंतिम सप्ताह के लिए उपयोगकर्ता द्वारा चलाए जाने वाले हर क्रोन कमांड के एक एकल उदाहरण को आउटपुट करता है।

मैंने इसे यहां रखा है

https://github.com/dangreenisrael/recover_crontab

यहाँ एक नमूना आउटपुट है:

perl ~/sorttv/sorttv.pl

/usr/local/bin/flexget

bash ~/scripts/sort_sports.sh

~/scripts/play_recently_added.sh

1
यह क्यों दिया गया -1? यह सवाल का सीधा जवाब है।
डैन ग्रीन-लीपसीगर

मैं आपकी स्क्रिप्ट का उपयोग कर रहा हूं। कमाल है, बहुत बहुत धन्यवाद!
मेव

PHP स्क्रिप्ट बंद कोष्ठक युक्त कमांड के लिए ठीक से नहीं है। फिक्स्ड और बैश करने के लिए पोर्ट किए गए:zgrep -F "($USER) CMD (" /var/log/syslog* | cut -d\( -f3- | sort -u | while read cmd ; do echo ${cmd::-1} ; done
स्प्लिटलॉक किए गए

1

आपके पास विकल्प हैं, लेकिन कोई भी विशेष रूप से सुंदर नहीं हैं। यदि आपने इसके बारे में नहीं सोचा है, अगर आपको एक विकास मशीन पर हाल ही में संस्करण मिला है, तो आप इसे वहां से कॉपी कर सकते हैं ... मैं केवल यह कहता हूं कि क्योंकि मैं अक्सर उन प्रतियों के बारे में भूल जाता हूं जो अन्य मशीनों पर हो सकती हैं, इसलिए मुझे लगता है कि आप पहले से ही कोशिश कर चुके हैं।

यदि आपकी फ़ाइल बहुत अधिक अनुकूलित है बस इसे फिर से बनाने के लिए व्यावहारिक है, तो आप हमेशा कुछ निम्न-स्तरीय फोरेंसिक की कोशिश कर सकते हैं। Sleuthkit और UFS एक्सप्लोरर के आसपास ट्यूटोरियल के लिए googling का प्रयास करें। इन उपकरणों का उपयोग करने वाले लोग उपयोग की आसानी और सफलता दर के संदर्भ में व्यापक रूप से भिन्न डिग्री पाते हैं, इसलिए हमेशा की तरह, वाईएमएमवी।


1

ऊग मूल प्रश्न पर एक टिप्पणी पोस्ट नहीं कर सकता है, लेकिन एक सहकर्मी ने मुझे केवल एक महान उपकरण दिखाया: जो भी .profileआप crontabहोने के लिए उपयोग करते हैं उसमें एक उपनाम बनाएं crontab -i-iध्वज को हटाने से पहले पुष्टि करने के लिए कहता है।

इसलिए, यदि आप ऐसा करते हैं, तो crontab -eयह हमेशा की तरह संपादित करने के लिए आगे बढ़ेगा, लेकिन यदि आप गलती से करते crontab -rहैं , तो आपको पुष्टिकरण संकेत के साथ बधाई दी जाती है।


यह तत्काल समस्या के साथ मदद नहीं करता ...
vonbrand

0

मुझे ऐसा नहीं लगता। इस महत्वपूर्ण फ़ाइल (/ etc / var / spool / home ... में अन्य लोगों के साथ) का बैकअप शुरू करने का समय आ गया है।

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