【问题标题】:Create and update archive over ssh on local machine在本地机器上通过 ssh 创建和更新存档
【发布时间】:2013-10-11 07:45:50
【问题描述】:

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

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

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

【问题讨论】:

  • 也许你可以通过sshfs将远程文件系统挂载到你有写权限的本地机器上

标签: linux ssh backup tar remote-backup


【解决方案1】:

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

【讨论】:

  • 谢谢,这很好用。我正在尝试将其放入脚本中,但不断提示输入密码两次(ssh 和 scp)。有没有办法把这两个一起完成?
  • 您可以使用 ssh 密钥进行无密码身份验证:debian-administration.org/articles/152
猜你喜欢
  • 2023-04-06
  • 1970-01-01
  • 2012-08-05
  • 1970-01-01
  • 1970-01-01
  • 2015-10-03
  • 2018-10-12
  • 2021-11-14
  • 1970-01-01
相关资源
最近更新 更多