如何使用 rsync 从 Windows PC 到远程 Linux 服务器?

par*_*d0x 39 linux windows-7 rsync

如何使用rsync从本地 Windows 7 机器到远程 Linux 服务器的命令?

在 Windows 7 机器上需要什么软件才能使用rsync

远程 Linux 服务器使用亚马逊的 Linux AMI。该命令rsync已在机器上启用,我可以编辑对机器的任何需要的访问权限。

这是为了在远程机器上设置 Web 服务器并在我的本地机器上进行编辑并保持文件同步。

我不想在机器之间进行双向访问,我只想在本地机器上编辑文件并在远程机器上保持更新。

更新:

我在 Windows 7 机器上安装了cygwin并安装了rsync包。有人可以提供远程设置从 Windows 7 机器到 Linux 服务器的连接的步骤吗?

假设我想C:\www在我的 Windows 机器上调用一个文件夹并\var\www在我的远程机器上保持更新,我该怎么做?它本身不是备份,它会更新我用本地计算机编辑的文件。

Ben*_*Ben 18

我在 Windows 7 上有MinGW(也称为“Git Bash”),还有一个批处理文件,它运行 rsync 来备份远程 linux 计算机上外部驱动器上的文件。这是批处理文件 ( my_rsync_file.bat)

REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
cd ../
REM starting rsync...
bash -c "rsync -avzh -P --stats --timeout=60  --exclude Downloads . 'my_remote_linux_computer@128.95.170.200:/media/my_remote_linux_computer/LaCie/My\ Documents'"
Run Code Online (Sandbox Code Playgroud)

下面是一些逐行的解释:

REM Changing directory... (assuming we are in G:/My Documents/My Various Things)

这只是发出一条消息来提醒我发生了什么。

cd ../

这会将目录从批处理文件所在的位置上一级更改(更改为“我的文档”)。批处理文件位于我的 Windows 计算机上的外部驱动器中。我想将此外部驱动器上的所有“我的文档”文件夹与远程 linux 计算机上外部驱动器上的同名文件夹同步。

REM starting rsync...

只是打印另一条消息。

bash -c "rsync -avz -P --stats --timeout=60 --exclude Downloads . my_remote_linux_computer@128.95.155.200:/media/my_remote_linux_computer/LaCie/My\\ Documents"

bash:启动具有内置 rsync 库的 MinGW
-c:不确定它的作用
rsync:用于同步文件的库,随 MinGW 提供
-avzh:a-Archive、v-Verbose、z-Compress、h-Human-readable,这些是常用选项(更多:http : //linux.die.net/man/1/rsync
-P:显示大文件的进度,所以我知道它是否被冻结
--stats:显示最后传输的文件和字节数的摘要
--timeout=60:之后杀死它60 秒,如果它被卡住,
--exclude从同步中忽略文件/目录,在这种情况下,我排除了一个名为“下载”的目录
.:指示同步“我的文档”的所有内容(期望在上面的行中排除指定的内容)
my_remote_linux_computer:名称我的远程 linux 计算机(不是实际名称;)
@128.95.155.200:我的远程 linux 计算机的IP 地址,来自https://www.whatismyip.com/(不是我的实际 IP 地址:)
/media/my_remote_linux_computer/LaCie/My\\ Documents:我要接收文件的远程 linux 计算机上目录的路径。这是一个外部驱动器。

请注意,“我的文档”中的空格用两个反斜杠转义,远程目标的全名和目录用双引号括起来。

当我开始双击 bat 文件时,系统会提示我输入远程 linux 计算机的密码。完成后,我会得到一些摘要输出,并提示按任意键关闭。

  • bash man 中的“-c”参数描述:如果存在 -c 选项,则从字符串中读取命令。如果字符串后面有参数,它们将被分配给位置参数,从 $0 开始。 (2认同)
  • 很棒的东西,帮了我大忙。对于使用非默认端口的用户,请执行 `"rsync -avzh -e 'ssh -p portnumber' -P --stats --timeout=60 --exclude Downloads . 'my_remote_linux_computer@128.95.170.200:/media/my_remote_linux_computer/LaCie /My\ Documents'"`,归功于 https://www.howtoing.com/sync-files-using-rsync-with-non-standard-ssh-port/。 (2认同)

Lin*_*000 10

如果您想要一个将 cygwin 和 rsync 与漂亮的图形界面捆绑在一起的免费应用程序,请查看Deltacopy

http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

  • 增量备份- 复制实际修改的部分文件
  • 任务计划程序- DeltaCopy 中的配置文件可以根据计划运行
  • 电子邮件通知- 管理员可以收到有关成功和失败传输的电子邮件确认
  • 一键还原- 可以轻松还原备份的文件。
  • Windows 友好环境- 无需手动修改配置文件或使用命令行选项。


Jam*_*ell 6

一种选择是通过在 Windows 上安装 cygwin 来安装 rsync。可能有一种更直接的方法。

另一种选择可能是从 linux 端进行 rsync - 您可以设置远程机器访问本地文件的方法,然后从那里进行 rsync(看看挂载 smb/cifs 共享)。

我怀疑还有更好的选择,但也许这会有所帮助。


2017 年更新

使用 Windows 10 中提供的 Linux 子系统,您可能可以非常轻松地安装 ssh 和 rsync 服务器,并通过它在 Windows 中使用 rsync。


小智 5

MinGW 有一个内置的 rsync 似乎工作得很好。它甚至有一个守护进程模式——尽管我还没有测试过。我推荐 MinGW 而不是 cygwin 有几个原因:MinGW 是一个较小的安装,它是 Windows 原生的。