转载自:http://blog.csdn.net/dazui/article/details/43817711

项目要求

    1.自动打包某一个文件目录,

    2.自动将打包文件放置至一个指定目录

    3.自动清除5天前的文件;


实现:

 1.使用crontab 进行定时备份

 2.使用tar压缩

 3.使用shell算出日期 ,remove 旧文件

 4. 在/usr/sbin目录中加入备份文件:baksvn


#!/bin/sh
rq=`date +%Y%m%d`
rm -f /home/svnbak/`date -d '-5 days' +%Y%m%d`.tar.gz
tar zcvf /home/svnbak/$rq.tar.gz /var/svn/document



同理可以,实现mysql的备份。

只要在压缩前加上

 mysqldump -uroot -p XXXXXX > /home/XXXXXXx_bak_20150108.dat

如下所示:


#!/bin/sh
rq=`date +%Y%m%d`

 mysqldump -uroot -p XXXXXX > /home/XXXXXXx_bak_$rq.dat
rm -f /home/svnbak/`date -d '-5 days' +%Y%m%d`.tar.gz
tar zcvf /home/svnbak/$rq.tar.gz /var/svn/document


-----------------------分割线--------------------------------------------

参考上面的逻辑思维,我自己也写了个用于备份文件夹

#!/bin/sh
nowDate=`date +%Y%m%d`
backupDir=/home/backup/
dbDir=/home/testsql
logFile=/home/backup/"$nowDate.log"

oldBackupFile=$backupDir`date -d '-5 days' +%Y%m%d`.tar.gz #需要删除的前五天的文件
backupFile=$backupDir$nowDate.tar.gz

echo "--------------------------------------" >> $logFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $logFile

rm -f $oldBackupFile
echo "delete old backup file $oldBackupFile"  >> $logFile

tar zcvf $backupFile $dbDir
echo "backup dir $dbDir as new file $backupFile" >> $logFile 



Logo

更多推荐