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。
一般我用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。