3

我正在尝试找到一种方法来在远程系统上创建和更新文件的 tar 存档,在该远程系统上我们没有通过 ssh 的写权限(远程文件系统是只读的)。我发现创建档案的方法是,

ssh user@remoteServer "tar cvpjf - /" > backup.tgz

但是,我想知道是否有某种方法可以从此时开始仅执行增量备份(仅执行实际更改的文件?)。对此的任何帮助都非常感谢。

4

1 回答 1

2

您可以尝试使用 tar 的 --listed-incremental 选项:

http://www.gnu.org/software/tar/manual/html_node/Incremental-Dumps.html

主要问题是您无法通过 stdout 传输 snar 文件,因为您已经在传输 backup.tgz 因此存储它的最佳选择是在 /tmp 目录中创建该文件,您应该具有写入权限和然后在备份会话结束时下载它。

例如:

ssh user@remoteServer "tar --listed-incremental=/tmp/backup-1.snar -cvpjf - /" > backup-1.tgz
scp user@remoteServer:/tmp/backup-1.snar

在接下来的会话中,您将使用该 .snar 文件来避免复制相同的文件:

scp backup-1.snar user@remoteServer:/tmp/backup-1.snar
ssh user@remoteServer "tar --listed-incremental=/tmp/backup-1.snar -cvpjf - /" > backup-2.tgz
于 2013-10-10T23:45:50.330 回答