Duplicity 和 Amazon S3 脚本

qui*_*cel 13 backup amazon-s3

我希望使用双重性将我的 linux 服务器备份到 Amazon S3。

我在这里找到了一个很好的资源,它帮助我进行了设置,并且我正在使用为我列出的基本脚本,现在复制到这里:

#!/bin/sh
# Export some ENV variables so you don't have to type anything
export AWS_ACCESS_KEY_ID=[your-access-key-id]
export AWS_SECRET_ACCESS_KEY=[your-secret-access-key]
export PASSPHRASE=[your-gpg-passphrase]

GPG_KEY=[your-gpg-key]

# The source of your backup
SOURCE=/

# The destination
# Note that the bucket need not exist
# but does need to be unique amongst all
# Amazon S3 users. So, choose wisely.
DEST=s3+http://[your-bucket-name]/[backup-folder]

duplicity \
    --encrypt-key=${GPG_KEY} \
    --sign-key=${GPG_KEY} \
    --include=/boot \
    --include=/etc \
    --include=/home \
    --include=/root \
    --include=/var/lib/mysql \
    --exclude=/** \
    ${SOURCE} ${DEST}

# Reset the ENV variables. Don't need them sitting around
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export PASSPHRASE=
Run Code Online (Sandbox Code Playgroud)

有没有其他人有双重经验,他们可以改进此脚本和/或分享最佳实践以帮助创建更好的脚本?

Oll*_*lly 15

我正在使用该脚本的变体进行备份。我最近对其进行了一些更改,以尝试在我的 Amazon S3 账单上节省一些钱(个人服务器,否则我不会这么介意)。

完整的脚本在这里,但我会在下面列出我所做的更改。

--full-if-older-than 1M
--volsize 250
Run Code Online (Sandbox Code Playgroud)

第一个选项确保 Duplicity 每月进行一次完整备份。这很有用,因为这意味着如果我需要从 S3 中删除文件,我可以删除到最新的完整备份。

第二个选项减少了 S3 上重复存储的文件数量,从而减少了向 S3 发出的请求数量,从而降低了成本。

我还在备份运行后添加了以下内容。这将从 S3 中删除超过 6 个月的任何备份。

duplicity remove-older-than 6M --force ${DEST}
Run Code Online (Sandbox Code Playgroud)