मेरे कोंट्रेब में केवल एक wget कमांड क्यों काम कर रहा है?


15

मैं दिन में दो बार अपने सर्वर पर एक PHP स्क्रिप्ट से सामग्री लाने की इच्छा रखता हूं, langजो हम चाहते हैं कि भाषा सेट करने के लिए एक क्वेरी चर को बदलकर , और इस सामग्री को दो भाषा विशिष्ट फ़ाइलों में सहेजें। यह मेरा कोंट्राब है:

*/15 * * * * ~root/apache.sh > /var/log/checkapache.log
10 0 * * * wget -O /path/to/file-sv.sql "http://mydomain.com/path/?lang=sv"
11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en"

समस्या यह है कि केवल पहली wget कमांड लाइन निष्पादित की जा रही है (या सटीक होने के लिए: एकमात्र फ़ाइल जो लिखी जा रही है /path/to/file-sv.sql)। अगर मैं दूसरी और तीसरी पंक्ति को स्विच करता हूं, तो /path/to/file-en.sqlइसके बजाय लिखा जाता है। पहली पंक्ति हमेशा अपेक्षा के अनुसार चलती है, चाहे वह कोई भी हो।

मैंने तब lynx -dump "http://mydomain.com/path/?lang=xx" > /path/to/file-xx.sqlबिना किसी लाभ के उपयोग करने की कोशिश की ; अभी भी केवल पहली लिनेक्स लाइन सफलतापूर्वक निष्पादित की गई है। यहां तक ​​कि wget और lynx को मिलाने से भी इसमें बदलाव नहीं आया!

थोड़े हताश हो रहे हैं! क्या मैं कुछ भूल रहा हूँ? Crontab (wget या lynx के साथ संयुक्त) पर हजारों लेख हैं, लेकिन सभी बुनियादी सेटअप और सिंटैक्स को कवर करते हैं। क्या किसी को इस बात का सुराग मिला कि मैं क्या गलत कर रहा हूं?

धन्यवाद,
अलेक्जेंडर


क्या आप सुनिश्चित हैं कि जब भी आप mydomain.com/path/?lang=en एक्सेस करते हैं, तो कुछ लौटाया जाता है? क्या आपने कमांड लाइन से यह देखने की कोशिश की है कि क्या होता है (wget -O - mydomain.com/path/?lang=en )?
तोरई

1
मैं 2 और 3 के बीच गाड़ी वापसी को मिटाने और पुनः बनाने की कोशिश करूंगा
एंटोनियस बलोच

बेस्ट प्रैक्टिस है क्रॉस्टैब में एक्जीक्यूटिव्स के लिए पूर्ण पथ निर्दिष्ट करना। जैसे: "/ usr / bin / wget"। मुझे नहीं लगता कि यह आपके मामले में मदद करेगा, क्योंकि एक क्रोन काम करता है।
एंटोनियस बलोच

ऐसा होने पर क्रोन के लॉग में क्या प्रदर्शित होता है?
सेम

@ टोरियन: एक आकर्षण की तरह काम करता है।
अलेक्जेंडर वालिन

जवाबों:


42

अपने क्रेस्टैब के अंत में न्यूलाइन जोड़ने का प्रयास करें।


1
तुम एक भगवान हो! यह किया! अगर मैं प्रतिष्ठा रखता तो मैं आपको वोट देता। :)
अलेक्जेंडर वालिन

1
@ वेलक्रेन लेकिन ... क्यों?
सैमुअल

2

पाठ के बारे में कुछ गलत है। अपने crontab को vim में संपादित करें और फिर अदृश्य वर्ण दिखाएं।

:set invlist

आपको इसे देखने और फिर इसे ठीक करने में सक्षम होना चाहिए।


गलत कैसे? मैं इसे विम में कैसे संपादित करूं? मैंने पूरी फाइल को इस मामले में फिर से लिखने की कोशिश की कि कॉपी-पेस्ट करने से समस्या पैदा होगी।
अलेक्जेंडर वालिन

@afEkenholm: अब आप इसे कैसे संपादित करते हैं?
बह्मत

1
@ नौबत:# crontab -e
अलेक्जेंडर

@afEkenholm: ऐसा करें:EDITOR=vim crontab -e
bahamat

@ नौबत: सब ठीक लग रहा है। $प्रत्येक पंक्ति के अंत में एक बैंगनी मिला ?
अलेक्जेंडर वालिन

1

Crontab को डिबग करने के लिए (या रूट मेल पढ़ने के लिए) पुनर्निर्देशित करने की कोशिश करें:

11 0 * * * wget -O /path/to/file-en.sql "http://mydomain.com/path/?lang=en" > /tmp/crontab_ouptput 2> /tmp/crontab_error

कंसोल से 'wget -O /path/to/file-en.sql " http://mydomain.com/path/?lang=en " भी चलाएं ।

सत्यापन के लिए भी 'crontab -e' का प्रयोग करें।

इसके अलावा, काम नहीं करने वाली रेखा को हटाने का प्रयास करें और इसे कीबोर्ड से फिर से लिखें।

बैकअप कॉर्नटैब और रन कमांड:

crontab -l | crontab -

/tmp/crontab_ouptput 2> /tmp/crontab_errorकेवल पहली पंक्ति के लिए काम करता है जोड़ना । कंसोल से कमांड चलाना ठीक काम करता है। मेरे नंगे हाथों से पूरी फाइल को फिर से लिखें, लेकिन कुछ भी नहीं बदला।
अलेक्जेंडर वालेन

बैकअप crontab और कोशिश: crontab -l | crontab -
alvosu

प्रयासों के लिए धन्यवाद, @vvosu, लेकिन एक सरल newline ने चाल चली!
अलेक्जेंडर वालिन

1

मैंने अभी कुछ समय व्यतीत किया है, जो ऊपर दिए गए उत्तरों को आजमा रहा है ( क्रोन्य चल रहा है) एक सिस्टम पर (नई सुर्खियों को जोड़ते हुए, नए सिरे से हटाते हुए आदि) । अंत में पाया गया कि क्रॉनी 1.5.3 में एक बग है जो केवल प्रत्येक उपयोगकर्ता के लिए पहली क्रोन नौकरी निष्पादित करता है । यह 1.5.4 में तय किया गया है

https://github.com/cronie-crond/cronie/issues/30

आशा है कि यह किसी को कुछ समय बचाता है ...

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