2016-05-24 9 views
5

फ़ाइलों को ले जाएं, मैं एक सर्वर सिस्टम पर काम करता हूं जो मुझे 50 गीगाबाइट से अधिक फ़ाइलों को स्टोर करने की अनुमति नहीं देता है। फ़ाइल को उत्पन्न करने के लिए मेरे आवेदन में 20 मिनट लगते हैं। क्या कोई तरीका है जिससे मैं उन सभी फ़ाइलों को स्थानांतरित कर सकता हूं जो स्रोत से गंतव्य तक 30 मिनट से अधिक पुरानी हैं? मैं rsync की कोशिश की:30 मिनट पुरानी

rsync -avP source/folder/ [email protected]:dest/folder 

लेकिन यह मेरे सर्वर से फ़ाइलें नहीं निकाली जाती है और इसलिए संग्रहण सीमा विफल रहता है।

दूसरा, अगर मैं mv कमांड का उपयोग करता हूं, तो जो फ़ाइलें अभी भी उत्पन्न हो रही हैं, वे भी गंतव्य फ़ोल्डर में स्थानांतरित हो जाती हैं और प्रोग्राम विफल हो जाता है।

+0

जहाँ तक मुझे पता rsync इस अंत से फ़ाइलें निकालने नहीं होगी और यह यहां तक ​​कि पुराने फिर 30 मिनट फ़ाइलों को लेने के लिए सक्षम नहीं हो सकती है। फ़ाइल का mtime अपडेट किया जाना चाहिए क्योंकि फ़ाइल बनाई जा रही है ताकि आपको उन फ़ाइलों को चुनने की अनुमति दी जा सके जो पिछले 30 मिनट में संशोधित नहीं हुए हैं। – louigi600

उत्तर

10

आप इस के लिए -exec के साथ find उपयोग कर सकते हैं: -

बदलें /sourcedirectory और /destination/directory/ स्रोत और लक्ष्य पथ के साथ के रूप में आप की जरूरत है।

find /sourcedirectory -maxdepth 1 -mmin -30 -type f -exec mv "{}" /destination/directory/ \; 

क्या मूल रूप से आदेश है कि यह वर्तमान फ़ोल्डर -maxdepth 1 में फ़ाइलों है कि पिछले थे 30 मिनट पहले -mmin -30 संशोधित खोजने के लिए और उन्हें लक्ष्य निर्देशिका निर्दिष्ट करने के लिए स्थानांतरित करने के लिए कोशिश करता है,। यदि आप उस समय का उपयोग करना चाहते हैं जिस पर फ़ाइल का उपयोग किया गया था तो -amin -30 का उपयोग करें।

या यदि आप किसी श्रेणी के भीतर संशोधित फ़ाइलों को ढूंढना चाहते हैं तो आप -mmin 30 -mmin -35 जैसे कुछ का उपयोग कर सकते हैं जो आपको 30 से अधिक संशोधित फ़ाइलों को 35 मिनट पहले कम कर देगा। man पेज से

संदर्भ: -

-amin n 
      File was last accessed n minutes ago. 

    -atime n 
      File was last accessed n*24 hours ago. When find figures out how many 24-hour periods ago the file was last accessed, any fractional part is ignored, so to match -atime 
      +1, a file has to have been accessed at least two days ago. 

    -mmin n 
      File's data was last modified n minutes ago. 

    -mtime n 
      File's data was last modified n*24 hours ago. See the comments for -atime to understand how rounding affects the interpretation of file modification times. 
+0

ब्रावो !! इसने काम कर दिया :) – saurabh

संबंधित मुद्दे