BASH से क्लीन लॉगिंग


1

मेरे पास एक स्क्रिप्ट है जो 7 दिनों या पुराने फ़ाइलों को हटा देती है और फिर उन्हें एक फ़ोल्डर में लॉग करती है। यह लॉग करता है और सब कुछ सही ढंग से हटाता है लेकिन जब मैं लॉग फ़ाइल को देखने के लिए खोलता हूं, तो इसकी बहुत मैला।

log=$HOME/Deleted/$(date) 
find $HOME/OldLogFiles/ -type f -mtime +7 -delete -print > "$log"

लॉग फ़ाइल को पढ़ना मुश्किल है

उदाहरण फ़ाइल आउटपुट: (नोटपैड में खोला गया)

/home/u0146121/OldLogFiles/file1.txt/home/u0146121/OldLogFiles/file2.txt/home/u0146121/OldLogFiles/file3.txt

फ़ाइल नाइकर और क्लीनर को लॉग करने के लिए वैसे भी क्या है? हो सकता है कि फाइलनेम के साथ, दिनांक हटा दी गई थी, और यह कितनी पुरानी थी?

किसी भी सुझाव मदद!

जवाबों:


2

निश्चित रूप से कई निष्पादन विवरणों को आज़माएं:

find $HOME/OldLogFiles/ -type f -mtime +7 -exec ls -latr "{}" \; -exec echo was deleted on `date` \; -exec rm -f "{}" \;|paste - - >> "$log"

pasteचाल के लिए +1
खसखस

log = $ HOME / हटाए गए / $ (दिनांक) $ HOME / OldLogFiles / -type f -mtime -7 -exec ls -latr {} \; - निष्पादन प्रतिध्वनि date\ _ पर हटा दी गई थी ; -exec rm -f "{}" \;? पेस्ट - - >> $ लॉग जो सही लगता है लेकिन मुझे यह त्रुटि मिलती रहती है और मुझे पता नहीं क्यों ।/test.sh: लाइन 3: $ लॉग: अस्पष्ट रीडायरेक्ट खोजें: ' ls 'सिग्नल 13 खोज द्वारा समाप्त:' ls 'से संकेत 13 समाप्त
mkrouse

1
@MattKrouse: चर log(के रूप में यह से ली गई है सफेद रिक्त स्थान शामिल हैं date: Fr Jun 28 16:49:19 CEST 2013है, तो पुनर्निर्देशन) >> $logपढ़ना चाहिए >> "$log"अपने प्रश्न में की तरह। और शायद आप भी {}उद्धरण में ls पैरामीटर को rm... -exec ls -latr "{}" ...
घेरना

1
यदि आप ls -l से संशोधन तिथि चाहते हैं, तो आप उसे awk {प्रिंट $ 6 "-" $ 7 "के माध्यम से पाइप कर सकते हैं -" $ 8} "या स्टेट -c% y <फ़ाइल का नाम> का उपयोग करें
Gregg Leventhal

1
-aका विकल्प lsव्यर्थ जब फ़ाइल तर्क (रों) के लिए आवेदन किया है। ( ls –l .bashrcठीक काम करता है; आपको कहने की आवश्यकता नहीं है ls –la।) -tऔर -rविकल्प तभी सार्थक होते हैं जब आपके पास कई तर्क हों, या एक (या अधिक) निर्देशिका तर्क (हों)। इसलिए, जब से आप कह रहे हैं -type f, आप बस कह सकते हैं -exec ls -l {}
स्कॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.