با فرض اینکه برای گرفتن بکاپ از سی پنل استفاده کنید باید بدونید که اونها به صورت روزانه و هفتگی و ماهیانه نگه داری میشن. مشکل اینه که این بکآپها به صورت دورهای اوررایت میشن و اینطوری نیست که بشه مثلا به ۷ روز گذشته بکاپها دسترسی داشت. یا شاید بعضی اوقات لازم بشه آدم بک آپ دو ماه آخر رو یه نگاهی بندازه بهش.
خب اما برای اینکه این مشکل رو یه جورایی برطرف کنید کافیه توی cron یه همچین دستورایی رو وارد کنید.
1 2 3 |
0 3 * * * mydate=`date +“%A”`;rootf=/var/www/novid/cpbackup/daily;mkdir $rootf/$mydate;cd $rootf;for FILENAME in $rootf/*.tar.gz; do mv $FILENAME $rootf/$mydate; done 10 3 * * * mydate=`date +“%A”`;rootf=/var/www/novid/cpbackup/daily;mkdir $rootf/$mydate;cd $rootf;for FILENAME in $rootf/*.tar.gz; do mv $FILENAME $rootf/$mydate; done @weekly mydate=`echo $((($(date +%d)–1)/7+1))`;rootf=/var/www/novid/cpbackup/weekly;mkdir $rootf/$mydate;cd $rootf;for FILENAME in $rootf/*.tar.gz; do mv $FILENAME $rootf/$mydate; done |
برای استفاده از این دستورا کافیه rootf رو بسته به یوزری که میخواید بک آپ گرفته بشه تغییر بدید.
خط اول بک آپ روزانه یوزر novid رو درست میکنه. با اجرای این دستور سر ساعت سه صبح هر روز، هر چی فایل tar.gz وجود داشته باشه منتقل میشه به فولدر متناظر اون روز! که میتونه Friday باشه و الی آخر! بعد از ۷ روز ۷ تا فولدر بر اساس نام روزهای هفته دارید و از هفته بعد فایلها اوررایت میشن داخل این فولدرها :)
اما دستور دوم بکآپ ماهیانه یوزر novid رو درست میکنه و فولدرهایی بر اساس ماهی که در اون قرار گرفتیم ساخته میشه. بعد از یکسال فولدرهایی مشابه 01 و 02 و الی آخر رو خواهید داشت
دستور سوم هم برای اینکه بفهمه در چه هفتهای از ماه قرار داریم از تکنیک زیر استفاده کرده.
1 |
echo $((($(date +%d)–1)/7+1)) |
میتونید اگر دوست داشته باشید و مثلا به جای اینکه بکاپ ۴ هفته یک ماه رو داشته باشید، بکاپ هر هفته یک سال رو ذخیره داشته باشید اون رو با کامند زیر عوض کنید که مقدار هفتهای که در سال قرار گرفته رو بر می گردونه ( از صفر تا ۵۴)
1 |
date +“%W” |