एक फ़ाइल को अपने नाम में टाइमस्टैम्प के साथ क्रोन आउटपुट भेजना


37

मेरे पास एक LAMP सेटअप पर इस तरह एक कॉन्ट्रास्ट है:

0 0 * * * /some/path/to/a/file.php > $HOME/cron.log 2>&1

यह फ़ाइल का आउटपुट cron.log को लिखता है । हालाँकि, जब यह फिर से चलता है, तो यह फाइल में पहले जो कुछ भी था, उसे ओवरराइट कर देता है।

मैं फ़ाइल नाम में टाइमस्टैम्प के साथ आउटपुट के लिए क्रॉन कैसे प्राप्त कर सकता हूं ?

एक उदाहरण फ़ाइल नाम कुछ इस तरह होगा: 2010-02-26-000000-cron.log

मैं वास्तव में प्रारूप के बारे में परवाह नहीं करता, जब तक कि यह किसी प्रकार का टाइमस्टैम्प न हो।

अग्रिम में धन्यवाद।


8
यदि आप नहीं चाहते $HOME/cron.logओवरराइट होने के लिए, का उपयोग >>नहीं>
डेव चेनी

जवाबों:


65

प्रयत्न:

0 0 * * * /some/path/to/a/file.php > $HOME/`date +\%Y\%m\%d\%H\%M\%S`-cron.log 2>&1

आप की तरह अगर तारीख प्रारूप के साथ खेलते हैं; बस किसी भी %तरह से बचना सुनिश्चित करें \%, जैसा कि ऊपर।


और मुझे आम तौर पर 0 0 * * * /some/path/to/a/file.php > $HOME/scriptname-तारीख + \% Y \% m \% d \% H \% M \% S.log
क्रिस्टियन

अगर आपको इसकी थोड़ी और मानवीय कोशिश करने की कोशिश करनी है: date +\%Y\ \%m\ \%d\ \%H:\%M:\%S-cron.log
डेविलकोड

4
@DevilCode, हाँ, हालाँकि फ़ाइल नाम में रिक्त स्थान यूनिक्स में बहुत पारंपरिक नहीं हैं। हाइफ़न या अंडरस्कोर एक बेहतर विकल्प हो सकता है date +\%Y-\%m-\%d_\%H:\%M:\%S-cron.log:।
विखंडन

1
भागने वाले किरदार मुझे हमेशा मिलते हैं। याद दिलाने के लिए शुक्रिया!
टोनी-कैफ

13

मैं अत्यधिक अनुशंसा करता हूं कि आप टाइमस्टैम्प का उपयोग करके, एक ही फ़ाइल में सब कुछ सहेज लें, जैसा कि यहां बताया गया है

हटाना

2> & 1

और इसे लॉग फ़ाइल में सहेजने से पहले टाइमस्टैम्पिंग स्क्रिप्ट के माध्यम से चलाएं (जैसा कि ऊपर दिए गए लिंक में बताया गया है)।



0

मैंने स्क्रिप्ट को इस तरह संशोधित किया:

`/bin/date +\%Y\%m\%d`.log

-2

मैंने इस समस्या को हल किया; दिनांक आदेश से पहले दिनांक पथ (/ बिन / तिथि) जोड़ें।


2
कृपया अधिक जानकारी और उदाहरण जोड़ें।
दानियाल

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