Bash 脚本通过 FTP 递归传输文件夹而不覆盖

Bash 脚本通过 FTP 递归传输文件夹而不覆盖

我需要一个 bash 脚本来通过 FTP 递归传输文件夹。用户名/密码/IP - 静态定义。

  1. 脚本运行的服务器:Linux
  2. 源服务器:Samba(Linux...)
  3. 目标服务器:Linux

因为要传输的文件是大型数据库文件(.bak 等)覆盖应该避免. 最好不要提示,因为脚本必须“cronned”才能在晚上运行。

(我不是 Bash 的英雄,但我的印象是对于这种情况它是最简单的)

提前感谢!

答案1

如果目标服务器是 Linux,我是否建议只使用带有 ssh 密钥的 rsync?FTP 未加密,并且不支持增量备份。

只需一个带有如下命令行的 rsync 即可。

rsync -auv -e "ssh -i /path/to/keyfile" /path/to/source_directory/* \
    user@remotehost:/path/to/destination_directory/

答案2

您可以安装FTP文件系统以及cp那里的一切。请确保禁用 delta-transfer,这样它就不会从那里下载文件 :)

date顺便问一下,您如何在不覆盖的情况下进行这些备份?如果您不使用文件夹名称,您将拥有一堆旧文件和一些新文件混合在一起。

相关内容