कृपया ध्यान दें कि मैं का उपयोग नहीं कर सकते 'लगता है' लक्ष्य पर्यावरणबिना किसी लिनक्स शैल स्क्रिप्ट में दिनांक के आधार पर फ़ाइलों को मैं कैसे ढूंढ और हटा सकता हूं?
मैं एक linux खोल स्क्रिप्ट में 7 दिन से अधिक पुराने सभी फाइलों को नष्ट करने के लिए की जरूरत है। कुछ ऐसा:
FILES=./path/to/dir
for f in $FILES
do
echo "Processing $f file..."
# take action on each file. $f store current file name
# perhaps stat each file to get the last modified date and then delete files with date older than today -7 days.
done
क्या मैं ऐसा करने के लिए 'stat' का उपयोग कर सकता हूं? मैं
find *.gz -mtime +7 -delete
उपयोग करने के लिए कोशिश कर रहा था, लेकिन पता चला कि मैं लक्ष्य प्रणाली पर मिल उपयोग नहीं कर सकते (वहाँ क्रॉन प्रयोक्ता के लिए कोई अनुमति है और इसे बदला नहीं जा सकता है)। लक्ष्य प्रणाली Redhat Enterprise है।
फ़ाइल नाम इस प्रकार फ़ॉर्मेट कर रहे हैं:
gzip>/MNT/target03/बाकी के- पथ/वेब/बैकअप/DATABASENAME_ date "+%Y-%m-%d"
.gz
मेरे पास है इस कोड का उपयोग की कोशिश की लेकिन सिर्फ इस उत्पादन प्राप्त करें: 1325559634 लीटर 1324944000 1325559634 लीटर 1324944000 १३२५५५९६३५ lt 1324944000 १३२५५५९६३५ lt 1324944000 १३२५५५९६३५ lt 1324944000 १३२५५५९६३५ lt 1324944000 1325559635 लीटर 1324944000 1325559635 लीटर 1324944000 1325559635 लीटर 1324944000 1325559635 लीटर 1324944000 1325559635 लीटर 1324944000 1325559635 लीटर 1324944000 1325559635 लीटर 1324944000 1325559635 लीटर 1324944000 – codecowboy
गूंज "rm -f $ f" कभी नहीं चलाने के लिए लगता है। फ़ाइलों को इस तरह नामित किया गया है - eewapwap01011-12-20.gz। क्या रेगेक्स इस फ़ाइल नाम को सही ढंग से पकड़ लेगा? – codecowboy
यह बताता है कि ts = 'date -d $ date | दिनांक + "% s" 'ts =' date -d "$ date" + "% s" होना चाहिए, फिर स्क्रिप्ट काम करती है – codecowboy