总结下来两句命令完成增量备份:
#tar -g snapshot -zcf full20091109.tar.gz test
#tar -g snapshot -zcf inc20091109.tar.gz test
利用shell实现每日自动增量备份:
#!/bin/bash
tToday=`date "+%Y%m%d"`
if [ ! -d full20091109.tar.gz ]; then
tar -g snapshot -zcf full20091109.tar.gz ./20091109/
fi
if [ ! -d "inc$tToday.tar.gz" ]; then
tar -g snapshot -zcf "inc$tToday.tar.gz" ./20091109/
fi
使用 tar -g 参数进行增量备份实验
http://www.php-oa.com/2007/12/26/tar-incremental.html
完整备份:
#建立测试路径与档案
mkdir test
touch test/{a,b,c};
在test下生成三个文件
#执行完整备份
tar -g snapshot -zcf backup_full.tar.gz test
#查看 tarball 内容
tar ztf backup_full.tar.gz
test/
test/a
test/b
test/c
增量备份:
#新增一个档案
touch test/d
#执行第一次的增量备份 (注意 tarball 档名)
tar -g snapshot -zcf backup_incremental_1.tar.gz test
#查看 tarball 内容
tar ztf backup_incremental_1.tar.gz
test/
test/d
#新增一个档案, 并异动一个档案内容
touch test/e
echo 123 > test/a
#执行第二次的增量备份 (注意 tarball 档名)
tar -g snapshot -zcf backup_incremental_2.tar.gz test
#查看 tarball 内容
tar ztf backup_incremental_2.tar.gz
test/
test/a
test/e
还原备份资料:
#清空测试资料
rm -rf test
#开始进行资料还原
tar zxf backup_full.tar.gz
tar zxf backup_incremental_1.tar.gz
tar zxf backup_incremental_2.tar.gz
#查看测试资料
ls test
a b c d e
使用 tar -u 参数进行增量备份
第一次备份:
#建立测试路径与档案
mkdir test
touch test/a test/b test/c
#备份资料
tar zcf backup.tar.gz test
#查看 tarball 内容
tar ztf backup.tar.gz
test/
test/a
test/b
test/c
增量备份:
#新增一个档案, 并异动一个档案内容
touch test/d
echo 123 > test/a
#执行增量备份 (-u 参数只能执行於未压缩的 tarball)
gunzip backup.tar.gz
tar uf backup.tar test
gzip backup.tar
#查看 tarball 内容
tar ztf backup.tar.gz
test/
test/a
test/b
test/c
test/
test/a
test/d
还原备份资料:
#清除测试资料
rm -rf test
#解包 tarball
tar zxf backup.tar.gz
#查看测试资料
ls test
a b c d