这是连接:
[Server1] <---> [my desktop] <---> [Server2]
Server1 和 server2 不允许直接互相交谈(不要问)。但是,我的桌面能够通过 ssh 访问两台服务器。
我需要将文件从 server1 复制到 server2。
传统上,我一直在使用 ssh+tar hack,例如:
ssh -q root@Server1 'tar -vzc /path/to/files ' | ssh -q root@Server2 'tar -vzx -C /'
这很好用,但我想更进一步,通过我的桌面在两台服务器之间进行 rsync 工作。
现在我知道我可以在一个终端中启动一个 ssh 端口转发隧道,然后在另一个窗口中通过该隧道进行 rsync,但我不想在第二个终端上大惊小怪,或者创建和断开一个单独的端口转发隧道。我想要的是:
有人有这样做的技巧吗?
编辑:这是工作命令!大家辛苦了: 1. 对于 rsa 关键路径,不能使用 tildae,必须使用“/root/”。2. 这是最终的命令行:
ssh -R 2200:SERVER2:22 root@SERVER1 "rsync -e 'ssh -p 2200 -i /root/.ssh/id_rsa_ROOT_ON_SERVER2' --stats --progress -vaz /path/to/big/files root@localhost:/destination/path"
Run Code Online (Sandbox Code Playgroud)
炸药爆炸了。
我使用 rsync 在本地目录和远程主机之间同步文件。我还使用 plink 来自动化我的 SSH 密码输入。
我想不通的是如何将 rsync 与 plink 一起使用。这就是我认为的语法应该是:
rsync -args --rsh="plink user@remote" local_dir/ :/remote_dir
Run Code Online (Sandbox Code Playgroud)
但我收到“拒绝访问”消息。有没有办法做到这一点?简单吗?
编辑以反映我认为语法应该是什么样子。我以前犯过大错。
我在桌面上使用 VirtualBox 已经有一段时间了。最近买了一个笔记本,我希望能够随身携带我的 Ubuntu 虚拟机,并将我在笔记本上所做的更改传播到桌面,反之亦然,当我到达/离开家时。两台计算机上的主机操作系统都是 Windows 7,运行 VirtualBox 4。
我的第一个想法是同步虚拟磁盘文件本身。我选择的工具是rsync,更具体地说是它的 Cygwin 版本,使用--inplace选项尽可能减少写入。但这将是不可行的:它会阻止我在 VM 上单独工作,因为rsync如果不了解容器内的文件系统,就无法检测冲突并正确合并它们。
下一个选项是rsync将正在运行的机器相互连接。这会在不搞乱包管理的情况下工作吗?除了新内核或驱动程序等更新之外,我还需要手动执行任何操作吗?有没有其他解决方案可以更好地工作?
是什么区别rsnapshot和rdiffbackup?
哪个更适合将我的笔记本电脑的新快照(通过 Internet 从某个远程位置)备份到我的服务器(已经有以前的备份)?
据我所知,它们都存储(在备份服务器上)最新的备份和许多以前版本的备份文件(以压缩的反向增量增量的形式)。他们都使用 rsync 来更快地通过互联网进行备份。
我正在寻找适用于 Windows 的同步/备份客户端:
命令行界面优于 GUI。
其他东西越少越好。
有任何想法吗?
我正在使用带有-vrlHh --delete --stats --force选项的rsync来镜像两个目录。第一个目录是源,它是我的外部高清,目标目录是空的,因为我刚刚创建了它。
我运行rsync -vrlHh --delete --stats --force my_hd dest_dir并得到这个输出。
...
2012/05/12 11:59:29 [18094] Number of files: 189315
2012/05/12 11:59:29 [18094] Number of files transferred: 178767
2012/05/12 11:59:29 [18094] Total file size: 241.57G bytes
2012/05/12 11:59:29 [18094] Total transferred file size: 241.57G bytes
2012/05/12 11:59:29 [18094] Literal data: 241.57G bytes
2012/05/12 11:59:29 [18094] Matched data: 0 bytes
2012/05/12 11:59:29 [18094] File list size: 4.08M
2012/05/12 11:59:29 [18094] File list generation time: 0.002 seconds
2012/05/12 11:59:29 …Run Code Online (Sandbox Code Playgroud) 我正在尝试从我的 MacOS 机器 rsync 到在 Windows Azure 上运行的 Ubuntu 服务器。要 ssh 到它,我必须执行以下操作:
$ ssh -i myPrivateKey.key -p 22 me@me.cloudapp.net
Run Code Online (Sandbox Code Playgroud)
我认为密钥文件可能是 X509 公钥,如果有帮助的话(抱歉,我不是系统管理员)。无论如何,我可以使用上述命令成功 ssh。
现在我想将文件同步到远程服务器。我是否需要以.key某种方式提供文件作为选项?
正常的 rsync 命令失败:
$ sudo rsync -avz -e my/file me@me.cloudapp.net:/my/path
rsync: Failed to exec my/file: Permission denied (13)
rsync error: error in IPC code (code 14) at /SourceCache/rsync/rsync-42/rsync/pipe.c(86) [receiver=2.6.9]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at /SourceCache/rsync/rsync-42/rsync/io.c(452) [receiver=2.6.9]
Run Code Online (Sandbox Code Playgroud) 是否有rsync可以在当前 Windows 版本上运行并且可以处理非 ASCII 文件名的版本?我检查过的每个版本(包括 cwRsync 和 rsync.net 客户端)在名称中包含 Unicode 字符的文件上都失败了。
如果rsync不存在这样的版本,我可以使用什么其他工具来在 Windows 和 Linux 之间进行带宽高效的文件同步?
我正在通过相对较慢的链接同步大型的、很少更改的文件树。rsync 样式的同步和完整复制方法之间的区别是显着的。
我在 vServer 上有一个相对较大的日志文件 (46M),我只对最近的部分感兴趣。
如何只下载文件的最后 10%?
服务器正在运行 Debian,我在本地使用 Ubuntu。
我在 Mac OS X 10.8.5 上使用 rsync3.1.0pre1,并尝试将一个文件夹同步到另一个文件夹。目标是通过 SMB 挂载的 ZFS 卷。
我遇到的问题是以下划线开头的文件(例如,'_filename.jpg')没有成功同步到目标。我收到以下错误消息:
rsync: mkstemp "/path/to/destination/._filename.jpg.NUgYJw" failed: Permission denied (13)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,_filename.jpg不会到达目的地。
我知道 rsync 在目标位置创建隐藏的临时文件,这些文件前面带有.随机文件扩展名。但是原始文件名以_, not开头._,并且我没有要求 rsync 复制扩展属性/资源分支(除非它总是这样做)。
我正在使用的 rsync 命令是:
rsync -av --exclude='.DS_Store' --exclude '.Trash' --exclude 'Thumbs.db' --exclude '._*' --delete /source/ /destination/
Run Code Online (Sandbox Code Playgroud)
有没有人找到解决这个问题的方法?谢谢!