分类: Python/Ruby
2011-04-25 22:10:02
http://blogold.chinaunix.net/u2/89310/showart_1768574.html
http://blogold.chinaunix.net/u2/89310/showart_1768574.html
http://www.itpub.net/thread-891576-1-1.html#
1.tar最简单的增量备份命令
tar -g snapshot -zcf full.tar.gz test
tar ztf full.tar,gz
第二次依然是
tar -g snapshot -zcf increase-$date+%Y-%m-%d test
这说明要理解tar活用tar各个参数的意思。
2.待续
这是我正在使用的一段备份脚本 mybackup.sh
在redhat Linux 7.2 下运行正常
mybackup.sh
代码:
#!/bin/sh
umount /mnt/bak
mount /dev/sdb1 /mnt/bak
if [ `date +%d` = '01' ] #每月1号进行完全备份
then
bakdir="/mnt/bak/daybak/month/"`date +%m%d`
zl="" #进行完全备份
else
bakdir="/mnt/bak/daybak/"`date +%d`
zl="-N "`date +'%Y-%m-01 00:00:01'`; #差异备份
#zl="-N "`date -d '-1 day' +'%Y-%m-%d 00:00:01'` #日增量备份
fi
tmpbakdir=${bakdir}tmp
rm -rf ${tmpbakdir}
mkdir ${tmpbakdir}
tar "${zl}" -czf ${tmpbakdir}/ /var/www/html
tar "${zl}" -czf ${tmpbakdir}/etc.tgz /etc
tar "${zl}" -czf ${tmpbakdir}/mysql.tgz /var/lib/mysql
tar "${zl}" -czf ${tmpbakdir}/home.tgz /home
tar "${zl}" -czf ${tmpbakdir}/name.tgz /var/name
rm -rf $bakdir
mv $tmpbakdir $bakdir
umount /mnt/bak
把mybackup.sh 放到 /etc/cron.daly 中即实现可月循环 差异/增量 备份
为方便恢复数据我使用了差异备份,如果想节约空间可以使用日总量备份,不过那样恢复数据时刻就要麻烦点了,另外你也可以很容易把上面的脚本改为周循环
事项增量备份的另外方法是利用find命令,
例如只备份一天前修改过的文件
代码:
find /var/www -type f -mtime -1 -print>/tmp/filelist.txt
tar -cz -T /tmp/filelist.txt -f /mnt/bak/
3.
1.完全备份
tar -g snapshot -zcvf backup.tar --directory / --exclude=mnt --exclude=misc --exclude=proc --exclude=dev --exclude=sys --exclude=tmp --exclude=var/log .
其中 -g 选项为backup建立一个index,当第一次tar时,会建立这个index,以后就会根据这个index建立增量backup。
--directory 把当前目录移到/目录,别忘记最后那个.
根据当前的情况,选择1周1次完全备份,每天增量备份。用lftp把备份上传到备份服务器上,以下是script
#!/bin/bash
tar -g /home/alex/snapshot -zcvf /home/alex/backupdailyRING1`date +%Y%m%d`.tar.gz --directory / --exclude=mnt --exclude=misc --exclude=proc --exclude=dev --exclude=sys --exclude=tmp --exclude=home/alex --exclude=var/log .
cd /home/alex
lftp < < EOF
open 192.168.0.1
user administrator 246069945
mput backupdailyRING1*
bye
EOF
rm -f backupdailyRING1*
EOF内为lftp的命令,注意mput才可以用正则表达式。
可以用tar -zft backup.tar 查看文件列表
2.gzip
tar文件并没有压缩,所以用gzip压缩
gzip -9 backup.tar
-9为最高压缩率,解压缩gzip -d backup.tgz
3.加入crontab
47 9 * * * /etc/webmin/cron/tempdelete.pl
30 1 * * 1-6 /home/alex/ringbackup.sh
0 1 * * 0 /home/alex/ringfullbackup.sh
0为星期日
4.