>> ...., а в самой базе отчистить таблицы
> Это уже третья переменная, про неё Вы в начале не писали. :)
> Тогда можно ежедневные делать со 2-ого числа
> 00 4 2-31 * * root mysqldump ....Господа ! Все налабал и протестил Вот такое й скомный результат Может кому и понадобиться
#Create mysql backup
#!/bin/bash
#function create_file_name build name file with month archive
function create_month_archive(){
F_D=""
F_T=""
FILE_DATE=""
F_T=$(echo `find /backup/mysql -name 'pet_*' -type f -cmin +1000 -exec ls {} \;`)
F_D=$(echo `date -r $F_T` | awk '{print substr( $0, 5, 3) substr( $0, 25, 4)}')
echo $F_D
FILE_NAME=pet-$F_D.tar.bz2
/etc/init.d/mysqld stop;
sleep 30;
FILE_DATE=$(echo `date +%d-%Y`)
tar -cjf /backup/mysql/pet_${FILE_DATE}.tar.bz2 /var/lib/mysql/test/*;
find /backup/mysql -name 'pet_*' -type f -cmin +1000 -exec ls -la {} \;
echo "DELETE OLD"
find /backup/mysql -name 'pet_*' -type f -cmin +1000 -exec rm -rf {} \;
echo "RENAME"
mv /backup/mysql/pet_${FILE_DATE}.tar.bz2 /backup/mysql/$FILE_NAME;
/etc/init.d/mysqld start;
sleep 30;
mysql test < /usr/local/sbin/mysql_backup.sql;
echo "Month archive cteate success. Base traffics was refresh!" > /usr/local/sbin/mysql_backup.txt;
}
function create_incremental_archive(){
/etc/init.d/mysqld stop;
sleep 30;
FILE_DATE=$(echo `date +%d-%Y`)
tar -cjf /backup/mysql/pet_${FILE_DATE}.tar.bz2 /var/lib/mysql/test/*;
find /backup/mysql -name 'pet_*' -type f -cmin +1000 -exec ls -la {} \;
echo "DELETE OLD"
find /backup/mysql -name 'pet_*' -type f -cmin +1000 -exec rm -rf {} \;
/etc/init.d/mysqld start;
sleep 30;
echo "Yesterday rchive cteate success." > /usr/local/sbin/mysql_backup.txt;
FILE_DATE="";
}
CUR_DAY=$(echo `date +%d`)
if [ $CUR_DAY -eq "01" ]
then {
create_month_archive;
}
else
{
create_incremental_archive;
}
fi