![非常巨大的 Duplicity 缓存](https://linux22.com/image/680271/%E9%9D%9E%E5%B8%B8%E5%B7%A8%E5%A4%A7%E7%9A%84%20Duplicity%20%E7%BC%93%E5%AD%98.png)
我目前正在使用 duplicity 脚本将我的 110G/2T CentOS 服务器备份到 2T sftp 服务器。
4 天过去了,duplicity 只备份了 90G。这不是问题。主要问题是:我在“/user/.cache/duplicity”中获得了将近 600G 的缓存。这个大小不正常,所以我该怎么办?duplicity 完成任务后会缩小或删除这些缓存文件和文件夹吗?duplicity 也会备份其缓存吗(我没有排除 /user 文件夹)?
附加信息:我正在使用 Hetzner 服务器,这是我正在使用的备份脚本: https://wiki.hetzner.de/index.php/Duplicity_Script/en
此外,我只是从根目录中排除了目录 proc、sys 和 dev(并从根目录开始备份所有其他内容,因为我想要完整的服务器备份)。
答案1
根据邮件列表
您必须手动将其排除..
它保存您的备份链索引文件(备份存储库的目录)。在本地缓存它们可以加速状态和增量备份等选项。这些操作需要知道已经备份的内容才能工作。如果缓存了它们,则不需要每次都传输和解密它们。
.. 埃德
其余的似乎是一个长期存在的错误。
在 Debian 错误跟踪器上,他们建议
duplicity cleanup --extra-clean --force ....
警告:建议的--extra-clean
选项很危险,可能会给你带来很大的麻烦。它使备份无法通过常规方法恢复。
答案2
最好在配置文件中设置适当的参数来控制备份的有效性并清除它:
# Time frame for old backups to keep, Used for the "purge" command.
# see duplicity man page, chapter TIME_FORMATS)
MAX_AGE=6M
# Number of full backups to keep. Used for the "purge-full" command.
# See duplicity man page, action "remove-all-but-n-full".
MAX_FULL_BACKUPS=2
# Number of full backups for which incrementals will be kept for.
# Used for the "purge-incr" command.
# See duplicity man page, action "remove-all-inc-of-but-n-full".
MAX_FULLS_WITH_INCRS=2
# activates duplicity --full-if-older-than option (since duplicity v0.4.4.RC3)
# forces a full backup if last full backup reaches a specified age, for the
# format of MAX_FULLBKP_AGE see duplicity man page, chapter TIME_FORMATS
# Uncomment the following two lines to enable this setting.
MAX_FULLBKP_AGE=2M
然后运行清除命令以查看要删除的内容,然后使用 --force 选项重新运行它以删除它们:
duply your_config purgeFull --force
Start duply v2.2, time is 2023-08-05 23:52:50.
--- Start running command PURGEFULL at 23:52:50.544 ---
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: Fri Jul 21 18:13:20 2023
Deleting backup chains at times:
Sun Feb 26 10:32:51 2023
Sun Mar 19 08:07:44 2023
Mon Apr 17 13:46:08 2023
Fri May 19 16:40:16 2023
Sat Jun 10 09:24:03 2023
Deleting complete signature chain Sat Jun 10 09:24:03 2023
Deleting complete signature chain Sat Jun 10 09:24:03 2023
Deleting complete signature chain Fri May 19 16:40:16 2023
Deleting complete signature chain Fri May 19 16:40:16 2023
Deleting complete signature chain Mon Apr 17 13:46:08 2023
Deleting complete signature chain Mon Apr 17 13:46:08 2023
Deleting complete signature chain Sun Mar 19 08:07:44 2023
Deleting complete signature chain Sun Mar 19 08:07:44 2023
Deleting complete signature chain Sun Feb 26 10:32:51 2023
Deleting complete signature chain Sun Feb 26 10:32:51 2023
Deleting complete backup chain Sat Jun 10 09:24:03 2023
Deleting complete backup chain Fri May 19 16:40:16 2023
Deleting complete backup chain Mon Apr 17 13:46:08 2023
Deleting complete backup chain Sun Mar 19 08:07:44 2023
Deleting complete backup chain Sun Feb 26 10:32:51 2023
--- Finished state OK at 23:52:57.431 - Runtime 00:00:06.887 ---
如果您将其设为每月一次的 cron,则会相应地进行清理。
答案3
当我们开始远程清理非常旧的备份(S3)时,duply 命令就会开始自动删除非常旧的本地元数据。
也就是说,我们现在只保留 x 个月的备份。本地元数据缓存大小也相应缩小了。