FTP 使用硬链接的备份脚本

FTP backup script with hard links using

一般我用rsync based backup.
但现在我必须制作从 Windows 服务器到 linux 的备份脚本。 因此,没有 rsync - 只有 FTP。

我喜欢使用硬链接来节省磁盘 space 和增量备份以最大程度地减少流量的想法。

ftp有没有类似的备份脚本代替rsync?

更新:
我需要通过 FTP 备份 Windows 服务器。备份脚本在 Linux 备份服务器上执行。

解决方案:

我发现 this useful script 可以通过 FTP 使用硬链接和增量功能进行备份。

Ubuntu 用户请注意:Ubuntu 中没有 md5 命令。请改用 md5sum

#       filehash1="$(md5 -q "$curfile"".gz")"
#       filehash2="$(md5 -q "$mysqltmpfile")"
        filehash1="$(md5sum "$curfile"".gz" | awk '{ print  }')"
        filehash2="$(md5sum "$mysqltmpfile" | awk '{ print  }')"

编辑,因为从最初的问题来看设置对我来说不够清楚。

根据问题的更新情况是,您需要通过 ftp 从 windows 系统中提取备份服务器上的数据。在这种情况下,您可以调整自己找到的脚本(请参阅评论)或使用类似的想法,例如:

  • 使用 cp -lr 硬克隆以前的备份 links。
  • 使用 lftp --mirror 用远程系统上更新的任何内容覆盖此副本。

但我一开始假设你需要将数据从windows系统推送到备份服务器,即FTP服务器在备份系统上。这种情况不能这样处理(原回答如下):

因为 FTP 根本不知道 links 任何传输只会产生新的或覆盖的文件。唯一的方法是使用 SITE 命令发出站点特定命令并以这种方式处理硬 links。但是特定于站点的命令通常受到严格限制,因此您可以执行诸如更改权限之类的操作,但不能对 links.

执行任何操作。

即使您可以通过 SITE 支持硬 links,您也必须实施决定何时使用此类 links 的逻辑。使用 rsync,此逻辑内置于 rsync 服务器并在服务器站点上执行。使用 FTP 您必须在客户端构建所有逻辑,这意味着您必须下载一个文件以将其与本地文件进行比较,然后决定是否需要上传新文件或者是否需要可以使用现有文件的硬 link。