2011-03-21 20 views
10

का उपयोग करके फ़ाइलें मैं दैनिक बैकअप मेरी डीबी के लिए निम्न crontab रिकॉर्ड का उपयोग करें:को हटाने वर्ष crontab

0 2 * * * MYSQL_PWD=password mysqldump -u user db_name > $HOME/db_backups/db_name-$(date +\%Y-\%m-\%d-\%H-\%M).sql 2>> $HOME/db_backups/cron.log 

मैं एक crontab रिकॉर्ड है कि डीबी डंप है कि पुराने तो एक महीने के हैं को नष्ट करेगा जोड़ना चाहते हैं।

कोई विचार?

+0

लॉग्रोटेट का उपयोग करें (8) – knittl

+0

@knittle logrotate लॉग के लिए है (?) – AlxVallejo

+1

जबकि लॉग्रोटेट एक निश्चित आयु की फ़ाइलों को हटा सकता है, यह केवल उन फ़ाइलों पर काम करता है जो यह घुमाता है; एक डीबी बैकअप के लिए एक ठेठ परिदृश्य नहीं है। निश्चित रूप से आप 'find ... -exec rm {} \; 'कमांड (अन्य उत्तरों में प्रलेखित) को लॉग्रोटेट कॉन्फ़िगरेशन के भीतर एक स्क्रिप्ट के रूप में जोड़ सकते हैं। यह कुछ मामलों में उपयोगी हो सकता है; [उदाहरण के लिए किसी अन्य मंच पर वार्तालाप थ्रेड की अंतिम प्रविष्टि में] [http://www.directadmin.com/forum/archive/index.php/t-3654.html) –

उत्तर

19

बस एक और क्रॉन बनाएँ:

0 3 * * * find $HOME/db_backups -name "db_name*.sql" -mtime +30 -exec rm {} \; >> $HOME/db_backups/purge.log 2>&1 

यह सभी बैकअप 30 दिनों से पुराने खोजने के लिए और उन्हें नष्ट होगा।

+0

क्या हम ऐसे फ़ाइल नाम लिख सकते हैं जिन्हें हटा दिया जाएगा संदर्भ के लिए फ़ाइल। –

+0

निश्चित रूप से, आप हटाए जा रहे फ़ाइलों के नाम आउटपुट करने के लिए या तो 'rm -v' या' find -print' का उपयोग कर सकते हैं। – dogbane

25
find /db_backups/ -mtime +30 -delete 

यह आदेश 30 दिनों से अधिक पुराने डीबी बैकअप को हटा देगा।

3

tmpreaper नामक एक उपकरण है जो अतीत में किसी एक्सेस या संशोधन दिनांक n दिनों जैसे सुरक्षित मानदंडों से मेल खाने वाली फ़ाइलों को सुरक्षित रूप से हटा देता है।

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