我们的网站托管在第三方网络服务器上。我拥有所需的所有管理员访问权限。我有一台本地 Win2K3 计算机,它使用 retrospect 备份所有联网的计算机和服务器,使用 navicat 在本地和远程 linux 网络服务器上备份 mysql dbs。
因此,唯一剩下的部分就是对 Web 服务器上的文件进行增量备份。有人对如何执行此操作有什么建议吗?
需要注意的是:
- 备份必须自动化
- Windows 服务器无法向外界公开,因为它包含所有公司数据。但它可以联系外界并请求数据。
- 这是一个共享服务器,因此安装新的 rsync 客户端(如 Unison)将不起作用
更新:在 Windows 机器上尝试 DeltaCopy Client 时,出现错误消息“连接被拒绝”。即使启用了 ssh 并在身份验证选项卡中输入了用户/密码。所以我猜我的主机不允许我使用 rSync。(仍在调查此事)。确认后,我的主机说“您只能使用 FTP,不能使用 rSync”
答案1
这不太漂亮,但是cwrsync
?它只是 Cygwin 版本的一个独立包rsync
,仅包含最少的 DLL。从内存来看,所有内容都位于一个目录中,因此它不会与 Windows 服务器上的任何其他内容发生冲突。然后,您可以在客户端模式下将其作为计划任务运行。
编辑:
鉴于您的托管服务提供商告诉您 FTP 是您唯一的选择,我能想到的最好的选择就是使用wget
。它可以镜像 FTP 站点。有Windows 二进制文件适用于较旧版本 (1.11.x),应该可以满足您的需求。然后您可以在批处理文件中执行如下操作:
wget --mirror --ftp-user=you --ftp-password=pass -P c:/dir ftp://your.host/path/
该--mirror
选项会尝试智能地不下载未更改的文件。默认情况下,它会将文件放在以 FTP 服务器命名的目录中,并包含文件的完整 (FTP) 路径。您可以使用--no-host-directories
和--cut-dirs
选项控制这一点。
答案2
我想说的是,像 DeltaCopy 这样的东西就是你想要的,作为服务运行,支持 Rsync(从你的 Windows 服务器传输到 Linux 机器),并且在核心中执行 rsync 样式差异,因此你只需移动你需要的数据,而不是每天移动所有数据。
除非你想使用付费解决方案,否则可以使用 SecondCopy 之类的解决方案 -http://www.centered.com/- 它也作为服务运行,并支持 FTP。
答案3
目前,我通过 FTP 使用 wget,直到主机启用 rsync。一旦 rsync 可用,我就会切换到它,因为我已经有cwrsync 服务器在 Windows 服务器上运行。后者与我们内部的 Linux 机器配合得很好。
当前的 wget 解决方案会创建一个日志文件。同步完成后,将解析日志以查找本次同步与上次同步之间的差异,忽略一些始终会发生变化的内容。这样,我就会收到一封电子邮件,告知我是否有任何文件被修改、添加或删除。当我们切换到 rsync 时,我会查看其日志并执行相同的操作。