备份数百万资产的最佳方式?使用 Bash 脚本每周更改(仅添加)?

备份数百万资产的最佳方式?使用 Bash 脚本每周更改(仅添加)?

我目前正在建立一个网站,其中包括一个拥有数百万资产的 CMS。主要是小图片和大图片。我想定期备份这些文件。例如每周。我的机器上安装了一个 FTP,我可以将其复制到其中。昨天我想到使用 rsync 并只复制新文件。但 rsync 似乎需要花很长时间才能爬过所有文件。基本上需要很长时间,因为 FTP 存储很差。所以我最终想到在我的资产目录中仅查找最新修改(最近 24 小时)的文件并将它们复制到 FTP。以尽量减少 FTP 上的负载。但我对 bash 脚本还不熟悉,当然谷歌已经帮助了我,我想出了以下部分:

#!/bin/bash

Source="/my/source/folder"
Destination="/my/slow/ftp/"

ls find $Source -mtime -1 -ls
    do
        cp -a $Source $Destination
done    

我遗漏了什么?你能帮我完成吗?

如果我对备份增量的想法不是最佳的,请随时提出其他建议。

答案1

您可以一次性完成此操作find

对于这种需要时间精度的任务,请使用-mmin选项find以分钟为单位来表示时间限制,而不是以-mtime天为单位来表示。

find /source -mmin -1441 -exec cp -a -t /destination {} +

这将复制从现在起过去 24 小时(1440 分钟)内修改的文件,从/source/destination


要复制到远程服务器,请使用rsync,因为它将恢复任何部分传输(与不同scp):

find /source -mmin -1441 -exec rsync -a {} user@host:/destination/ \;

相关内容