无法使用TAR执行增量备份

环境:Azure中的Ubuntu 16.04

我正在尝试备份特定的文件夹。 我正在使用一个简单的tar命令,没有压缩。 我的目标是保持文件一个月,每天增加一次更改,然后压缩焦油,并开始一个新的每月一次。

我的问题是这样的:本地备份对我来说没有意义,因为如果本地文件系统死亡或错误,原始和备份死亡。 (似乎很明显,但为了清楚起见,我声明)

我尝试使用SMB连接备份到单独的Azure存储容器,并通过NFS备份到另一个相同的Ubuntu计算机。

我尝试了第二个选项,因为我阅读了这篇文章: tar增量备份是支持一切,每当在Dropbox目录上使用

所以,无论我做什么,在发出以下命令时,tar似乎忽略了-u标志:

cd /savelocation; sudo /bin/tar --ignore-failed-read -up -f /savelocation/backupfoldername.tar /var/www/foldertobackup 

代替增加几个megs,代表添加或更改的文件,我得到一个44GB的文件,这个文件的大小是原来的两倍。

任何想法或问题是最赞赏。

根据我的testing在这里。

第一:我相信为了执行命令, cd不是必需的。

其次:你应该在命令中使用--listed-incremental

-g, – 列出的增量文件

处理新的GNU格式增量备份

看来, --listed-incremental ,只有当你已经有一个TAR文件,根据我的testing和评论中列出的意见之一的作品。

与空文件的文件夹

 $ ll folder total 8,0K -rw-rw-r-- 1 ivanleon ivanleon 9 Jun 6 11:32 file1 -rw-rw-r-- 1 ivanleon ivanleon 9 Jun 6 11:32 file2 -rw-rw-r-- 1 ivanleon ivanleon 0 Jun 6 11:27 file3 

创build磁带归档文件

 $ sudo /bin/tar -cvf folder.tar folder folder/ folder/file2 folder/file3 folder/file1 

列出磁带归档文件

 $ tar tvf folder.tar drwxrwxr-x ivanleon/ivanleon 0 2017-06-06 11:27 folder/ -rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file2 -rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file3 -rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file1 

在文件夹的某些文件中添加/修改数据

 $ echo "newdata1" >> folder/file1 $ echo "newdata2" >> folder/file2 

生成新的磁带归档文件(执行增量备份)

 $ sudo /bin/tar -cvf --listed-incremental folder.tar folder folder.tar folder/ folder/file2 folder/file3 folder/file1 

列出磁带存档文件(文件被replace)

 $ tar -tvf folder.tar drwxrwxr-x ivanleon/ivanleon 0 2017-06-06 11:27 folder/ -rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file2 -rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file3 -rw-rw-r-- ivanleon/ivanleon 0 2017-06-06 11:27 folder/file1 

我做了一些关于 – 增量的研究。 大多数文章充其量只是混淆,没有足够的细节来充分理解。 然后我发现下面的文章解释得非常清楚:

http://paulwhippconsulting.com/blog/using-tar-for-full-and-incremental-backups/

我向作者提出的唯一问题就是,如果你在一个小目标上进行testing,看起来你没有得到一个像样的增量,如果你马上做出来,开销在增量中。 但是,一旦你在更大的备份上实现它,它将完美运行。

而不是备份到我通过SMB连接的单独的Azure存储帐户,我做了第二个相同的服务器,并通过nfs连接它。 它更稳定,没有文件系统的差异,可以搞砸了。 我正在设置一个脚本,用于压缩每个备份,然后在每次备份完成后将其复制到Azure存储容器。 这通过在备份服务器上执行zip来节省生产服务器的处理时间和电源。 我希望这可以帮助别人。