是否有一些类似 ssh 的 unix 实用程序,但它也可以将当前文件夹与服务器同步?

是否有一些类似 ssh 的 unix 实用程序,但它也可以将当前文件夹与服务器同步?

如果我能做这样的事我会非常有用:

  1. 进入本地目录
  2. 通过 SSH 连接到远程主机
  3. 本地目录同步到远程主机(本地 -> 远程)
  4. 远程运行命令
  5. 再次同步结果(远程 -> 本地)

有没有办法使用像 ssh 这样的标准工具或可以执行此操作的应用程序来做到这一点?

答案1

你可以看看sshfs- 通过 SSH 挂载目录而不是来回传输文件。

在这种情况下,您将连接到服务器并挂载 PC 的目录。然后,您可以直接操作文件,然后再卸载和断开连接。

根据网络,您可能需要转发本地 SSH 服务器的监听端口。

它是 FUSE,因此不需要 root / sudo。


安装:

sshfs user@host:/home/myuser/mydir ./mydir

使用以下方式卸载:

fusermount -u ./mydir

答案2

您可以将rsync --rsh=ssh其用于步骤 2+3、ssh步骤 4,然后rsync再次用于步骤 2+5。

的参数rsync一开始可能看起来有点复杂 - 但您可以先进行测试--dry-run

答案3

对于列表中的同步部分(因为你想双向传输),你也可以看看齐奏,它与 rsync 类似但不同。您可以在命令之前和之后运行它,它将使双方保持同步。

与rsync类似:

  • 通过 SSH 传输(以及本地和其他传输)
  • 底层的差异传输,如果文件的部分内容相同,则不需要完全传输它们,而只需传输已更改(或不同)的部分,并在另一端重建整个文件,这对于减少带宽使用非常有用

与 rsync 不同:

  • 需要两端都进行 unsion —— 并且对 unison 版本号非常挑剔
  • 双向同步:将自上次同步以来更改的文件从一端同步到另一端 - 并检测两者是否都已更改,然后忽略它或让您选择
  • 提供用于交互使用的文本用户界面和图形用户界面以及非交互模式

如果你想明确复制方向,我也会建议使用 rsync,就像 jvb 在 https://superuser.com/a/1219619/738892– 以--dry-run(或-n简称)开头也很有帮助。Atties 对斜线的评论也很重要:从-av复制目录开始(带有输出 - 看看会发生什么)。

您可能想要或不想使用--del和朋友,这取决于您是否要删除从 DEST 中的 SRC 消失的文件。根据您的使用情况,--update(跳过 DEST 上较新的文件),可能对你有用。

相关内容