使用 rsync 进行 ftp

使用 rsync 进行 ftp

我使用 Windows 7 计算机和 Putty 连接到 UNIX 服务器。我需要将某些文件从这些服务器 FTP 到我的本地 Windows 计算机。为此,我使用 FileZilla 或 WinSCP 等 FTP 客户端。

但是,我想创建一个脚本,它可以:

  1. 从我的 Windows 机器连接到 Unix 服务器。
  2. 将文件从某些目录 FTP 到 Windows 机器。
  3. FTP 下载完成后终止连接。
  4. 这应该定期发生。

我已经安装了 rsync 3.0 和 cygwin。当我输入以下命令时:

rsync -e ssh user@host:/remote_directory .

它询问我:Enter Securid PASSCODE:。然后我输入相同的密码,但出现错误:

sh: rsync:  not found.
rsync: connection unexpectedly closed (0 bytes received so far) [Receiver]
rsync error: remote command not found (code 127)
   at /home/lapo/package/rsync-3.0.9-1/src/rsync-3.0.9/io.c(605) [Receiver=3.0.9]

请帮助我理解我为什么会遇到这个问题。

答案1

使用卷曲相反,rsync 不会执行您所需的操作。

答案2

我认为您收到此错误是因为找不到 rsync 路径,请尝试使用完整路径。

您也可以使用 curl 执行此操作,但我知道可以使用 rsync 执行此操作,或者您可以尝试 scp。我不清楚您是否安装了 FTP 服务器,或者您只是通过 SSH 使用 SFTP...

答案3

FTP 是一种协议/命令套件(传统,最早的 Internet 协议之一,带有 TELNET),SCP 是另一种协议/命令套件(使用 SSH,一种用于远程运行命令的加密连接,也用于来回复制文件)。RSYNC 是一种程序/协议,用于r情感上同步同步文件(通过慢速网络连接),同样与上述内容不同。如今,大多数文件传输都是通过 HTTP 进行的,因为在 21 世纪初,HTTP 已成为未受教育的大众的互联网代名词(因此所有基础设施都已针对它进行了精心优化)。

每种替代方案(当然还有其他替代方案......)都需要自己的服务器和客户端设置。有一些多语言程序,例如wgetcurl,它们可以使用 HTTP 和 FTP,也许还有其他协议(cURL 代表“查看 URL”,它旨在处理全部多种 URL)。可用性可能因操作系统而异。还请考虑法西斯防火墙设置可能会禁止使用某些协议。

使用哪种替代方案主要取决于个人喜好。 的优点rsync是它尽力减少网络流量,只传输更改。 其他人则复制所有内容。 SSH 套件非常灵活,统一处理用户身份验证,用于远程命令和来回复制文件,并添加强加密。 基于 FTP 和 HTTP 的工具(FTP 客户端、、wgetcurl允许您从公开可用的来源获取内容(即获取大量源代码包,获取组成在线出版书籍的所有 PDF 文件),无需对源系统有特殊访问权限。

相关内容