के माध्यम से चलते समय संग्रह में अप्रत्याशित ईओएफ मेरे पास एक PHP कंसोल स्क्रिप्ट है जिसे क्रॉन के माध्यम से बुलाया जाता है जो स्वयं अन्य चीजों के बीच एक निर्देशिका की टैर फ़ाइल बनाता है।टैर त्रुटि: क्रोन/PHP
क्रॉन के माध्यम से PHP स्क्रिप्ट को कॉल करते समय टैर फ़ाइल सही ढंग से नहीं बनाई गई है। जब टार फ़ाइल को देखने के निम्न त्रुटि दिया जाता है:
gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now
जब सांत्वना टार फ़ाइल सही तरीके से बनाई गई है के माध्यम से मैन्युअल PHP स्क्रिप्ट बुला। क्रॉन लॉग आउटपुट कोई त्रुटि नहीं दिखाता है।
यहां टैर कॉल PHP स्क्रिप्ट का निर्माण करता है।
exec("cd $this->backupTempFolderName/$id; tar -czf ../../$this->backupFolderName/$tarFileName $dbDumpFileName documents");
खुराक किसी को पता है कि मैन्युअल रूप से कॉल किया जाता है जब क्रॉन के माध्यम से बुलाया जाता है और विफल रहता है?
अद्यतन: क्रॉन के माध्यम से टार फ़ाइल बनाते समय दिया त्रुटि है:
tar: ../../backup/20150819-060003.tar.gz: Wrote only 4096 of 10240 bytes
tar: Error is not recoverable: exiting now
कभी-कभी गलती से हुआ है:
tar: ../../backup/20150819-054002.tar.gz: Cannot write: Broken pipe
tar: Error is not recoverable: exiting now
के रूप में, से पहले कहा था कि जब क्रॉन टार के माध्यम से मार डाला फ़ाइल बनाई गई है, लेकिन सही आकार का हमेशा 50% (जब मैन्युअल रूप से स्क्रिप्ट निष्पादित करता है):
-rw-r--r-- 1 gtz gtz 1596099468 Aug 19 06:25 20150819-042330.tar.gz <- Manually called skript, working tar
-rw-r--r-- 1 gtz gtz 858570752 Aug 19 07:21 20150819-052002.tar.gz <- Script called via cron, broken tar
अद्यतन 2
यहां दिए गए इनपुट के आधार पर कुछ और अधिक शोध करने के बाद, जोड़ना चाहिए हो सकता है कि क्रॉन स्क्रिप्ट कहा जाता है एक आभासी निजी सर्वर पर चल रहा है - मुझे लगता है कि कुछ सीमाएँ क्रॉन नौकरियों हैं कि के लिए मौजूद हो सकता है होस्टर द्वारा दस्तावेज नहीं किया गया (केवल दोहराव के समय पर न्यूनतम पुनरावृत्ति समय पर सीमा दी गई है)।
सटीक क्रोंटैब प्रविष्टि क्या है? वे चर क्या हैं '$-- backTempFolderName/$ id, $ this-> बैकअपफ़ोल्डरनाम/$ tarFileName, $ dbDumpFileName' का विस्तार करें? –
वैरिएबल केवल फ़ोल्डर पथों के साथ तारों को निकालें (जो ठीक काम करते हैं, क्योंकि मैन्युअल रूप से स्क्रिप्ट सही तरीके से काम करता है) और मकई नौकरी प्रविष्टि '59 23 * * 0 सीडी पथ/से/अनुप्रयोग है;/opt/php53/bin/php app/console giz: बैकअप>/paht/to/application/app/logs/backup-output.log'। 'बैकअप-output.log' में स्वयं कोई त्रुटि नहीं है क्योंकि php स्क्रिप्ट स्वयं ठीक काम करने लगती है। – wowpatrick
लेकिन विस्तारित पथों में रिक्त स्थान हैं? क्या रिश्तेदार या पूर्ण हैं? क्या मुकुट नौकरी एक ही उपयोगकर्ता के रूप में चलती है? क्या मुकुट उपयोगकर्ता को फ़ाइल लिखने की अनुमति है? –