如何使用参数在遥控器之间复制文件

How to copy files between remotes with params

我想使用 scp

将所有目录从一个远程复制到另一个
scp -r -3 remote1:/dir1 remote2:/dir1

但过几天我会复制新文件。但是 scp 会覆盖现有文件。有人可以帮我设置正确的参数来只复制那些 -mtime +N

的文件吗

谢谢

我在 scp 中不知道有这样的选项。如果 rsync 是一个选项,那么尝试:

ssh remote1 'rsync -aH /dir1/ remote2:/dir1/'

如果您在 remote1remote2 之间没有联系,使用 rsync 仍然可以完成任务,但要困难得多。试试这个:

ssh -R 127.0.0.1:12345:remote2:22 remote1 \
    'rsync -e "ssh -p 12345" -aH /dir1 127.0.0.1:/dir1'

注意:第一行的 \ 将命令继续到第二行。该命令执行以下操作:

  1. ssh -R 127.0.0.1:12345:remote2:22 ... - ssh 将绑定到 127.0.0.1:1234 并通过您的机器(您启动命令的地方)转发所有连接到 remote2:22.
  2. ...rsync -e "ssh -p 12345" -aH /dir1 127.0.0.1:/dir1 - ssh 将在 remote1.

  3. 上启动此命令
  4. rsync -e "ssh -p 12345" - 这告诉 rsync 在端口 12345 上使用 ssh 连接到远程机器。

  5. ... -aH /dir1 127.0.0.1:/dir1 - 这使得 rsync 在 /dir1127.0.0.1:/dir1 之间同步。

因此 rsync 在 remote1 上连接到 127.0.0.1:12345,ssh 将其转发到 remote2:22。所以你的 ssh 在两个主机之间进行代理。希望我能解释清楚...

也许

scp `find BLABLA -mtime TIME` USER@HOST:

根据需要进行调整。