在本地机器上通过ssh创build和更新存档

我试图find一种方法来创build和更新远程系统上的文件的tar档案,我们没有写权限(远程文件系统是只读的)通过SSH。 我发现创build一个档案的方法是,

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

不过,我想知道是否有某种方式从这一点上只执行增量备份(只有实际上已更改的文件?)。 任何帮助,这是非常感谢。

你可以尝试使用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