शेल स्क्रिप्ट का उपयोग करके 30+ दिन पुरानी फाइलों को हटाते हुए हाउस


0

इसलिए मुझे पुराने बैकअप के लिए हाउसकीपिंग करनी होगी और निम्नलिखित कोड को श पर काम करना होगा:

find /home/backups -mtime +30 -type f -exec rm -rf {} \; 

यह स्थान / पथ को जानने के लिए ठीक काम करता है, इसलिए यदि पथ किसी अन्य मशीन पर अलग है तो मैं सभी मशीनों पर काम करने के लिए कमांड को कैसे संशोधित कर सकता हूं?

अगर मैं नीचे दी गई कमांड का उपयोग करता हूं, जो 30 दिन पुरानी सभी फ़ाइलों को हटा देगा, लेकिन मैं केवल बैकअप फ़ाइलों के इन विशिष्ट सेटों को साफ करना चाहता हूं:

find . -mtime +3 -exec rm {} ';' 

धन्यवाद

shell  unix  script 

1
शायद आप पथ के लिए एक चर का उपयोग करने पर विचार कर सकते हैं?

1
का उपयोग करने पर विचार करें -prune या -delete के बजाय -exec rm -rf - यह आम तौर पर एक बेहतर विकल्प है, यदि आपका find इसका समर्थन करता है।
GreyCat

जवाबों:


3

मुझे नहीं पता कि आप कमांड को कैसे निष्पादित करेंगे सब मशीनों, स्वचालित रूप से ssh के माध्यम से? या मैन्युअल रूप से

वैसे भी, यदि आप टाइपिंग पथ के प्रयास को बचाना चाहते हैं, तो आप विचार कर सकते हैं कि प्रत्येक मशीन एक ही नाम के साथ एक चर बनाती है, उदा। BACKUP_DIR, यह आपके द्वारा सफाई कार्य करने के लिए आवश्यक पथ बचाता है।

फिर, अपने खोज कमांड में, किसी भी मार्ग को हार्डकोड न करें, लेकिन चर का उपयोग करें।

यदि आप इसे स्वचालित रूप से ssh के माध्यम से करते हैं, तो आप कनेक्शन स्थापित करते समय पथ को जानते हैं। तो बस अपनी खोज में पथ जोड़ें।


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