linux下用tar来进行增量备份

本文介绍如何在Linux环境下利用tar命令进行增量备份,并详细解释了增量备份的概念、参数设置以及操作步骤。通过创建info_file记录时间戳,实现只备份自从上次全备后修改的文件,有效节省存储空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

另外,推荐压缩时使用选项p,保持文件访问权限。

转载自http://blog.tangjianwei.com/2010/08/06/perform-a-incremental-backup-with-tar-in-linux/


近来无聊,博客又好久没有更新了,来说说linux下面的文件备份吧。

备份无非就是全量备份与增量备份。linux下面的全量备份自然不用说,很多命令与软件都能实现;增量备份相对来说软件就要少些,我常用的就是rsync与tar。

rsync与tar相比,rsync的优点在于可以异机备份,缺点在用不能对文件进行压缩。tar的优点就是可以调用bzip2或者gzip进行压缩,但是只限于本机备份。rsync我这里就不多讲了,今天就来说说tar吧

开题不说闲话,其他参数格式我都不说了,说说我们今天要用的参数格式:

tar -g /path/to/info_file -zcvf /path/to/files_need_backup

在这里对info_file
info_file是一个纯文本文件,以UNIX时间记录备份的时间戳。这个文件一般是第一次全备时自动创建,也可以手动创建。如果你手动创建这个文件,那tar就只会备份在这个时间戳之后修改过的文件,所以严格意义上来说,tar的增量备份并不能算做是增量备份,而只是按时间戳备份而已。这点远远比不上rsync。

ok,了解了一下概念,我们正式开始:

$ mkdir dest
$ touch dest/{1,2,3}
$ tar -g /tmp/timestamp -zcvf backup0.tgz dest/
dest/
dest/1
dest/2
dest/3
$ cat /tmp/timestamp 
1281096816

由于/tmp/timestamp原来是不存在的,所以这次备份下来的backup0.tgz就是一个全备份文件。备份之后的timestamp文件内容是1281096816。

然后我们继续。这个时候就要记得info_file要继续用上次全备文件之后文件:

$ tar -g /tmp/timestamp -zcvf backup1.tgz dest/
dest/
dest/4
dest/5
dest/6
$ cat /tmp/timestamp 
1281097104

我们可以看到,这次生成的backup1.tgz并没有备份还在dest目录下面的文件1, 2, 3,而只备份了新生成的文件4, 5, 6。

然后,我们再来一个测试

$ touch dest/{7,8}
$ date +%s > /tmp/timestamp
$ touch dest/9
$ tar -g /tmp/timestamp -zcvf backup2.tgz dest/
dest/9
$ cat /tmp/timestamp 
1281097553

我在创建文件7, 8之后,利用date命令手动刷新了一下info_file的内容,然后再创建了文件9,之后的备份,大家就可以很明显的看到,文件7, 8并没有被备份。

大家应该也就应该看出来了,这就存在一个问题,就是-g做增量备份时的这个info_file到底记录的是什么时刻的时间。大家可以通过实验得到,info_file的更新时间在在.tgz文件之后的,但究竟记录的时间是不是刚刚开始时间呢?

这个我们也可以通过一个小实验来得到:

$ for i in `seq 1 100`; do dd if=/dev/zero of=dest/test$i bs=1M count=10;done
$ date +%s && tar -g /tmp/timestamp -zcf backup3.tgz dest && cat /tmp/timestamp && date +%s
1281098446
1281098523
1281098524

怎么样,很明显了吧。如果直接用这种方式备份的话,那么从你备份开始到备份结束之间生成的文件是不会被备份的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值