原文参考:http : //peterpetrakis.blogspot.com/2013/06/automating-and-encrypting-duplicity.html
过去遭受过数据丢失和对存储的黑客攻击表明定期备份是个好主意。我想要冗余以防我的本地服务器出现故障,并且我想使用受密码保护的 gpg 密钥加密我的备份。
当前的解决方案使用保存在备份路径之外的纯文本密码。我计划研究将 gpg 密钥移到智能卡上,并改为使用密码解锁。如果有人有任何其他解决方案,请详细描述它们。
从 cron 运行任何东西都会将它从当前环境中分离出来,你会丢失所有描述事物的变量,比如你的 ssh-agent gpg-agent,你需要开始与远程服务器通信的东西。
我采取了一个简单的方法,在我的 ~.bashrc 中我创建了以下内容。
cat > ~/.backenvrc << EOF # 由 crontab 备份脚本使用 导出 SSH_AGENT_PID=$SSH_AGENT_PID 导出 SSH_AUTH_SOCK=$SSH_AUTH_SOCK 导出 GPG_AGENT_INFO=$GPG_AGENT_INFO export GPGKEY=XXX-insert-your-gpg-key-here-XXX EOF
并简单地从我的 crontab 中引用的备份脚本中获取它,我只需要登录一次即可填充此文件。
# crontab -l # mh dom mon dow 命令 MAILTO=ppetraki@localhost BACKUP=/home/ppetraki/Documents/System/Backup # 0 0 * * * /usr/bin/crontab -l > $BACKUP/crontab-backup 0 0 * * * /usr/bin/dpkg --get-selections > $BACKUP/installed-software 0 0 * * * /usr/local/bin/ppetraki-backup.sh inc 0 0 * * 周五 /usr/local/bin/ppetraki-backup.sh 已满
请注意,我也在备份我的 crontab 和我已安装的软件列表,最终我会将它移到另一个脚本中,该脚本也执行类似的操作
1) 从 chrome 和 firefox 备份我的书签
2) 以非二进制格式备份邮件
当前的 cron 格式每晚执行一次增量备份,每周五执行一次完整备份。
这包装了重复性的调用并获得了必要的环境变量。Duplicity 本身对于所有命令行开关来说可能很麻烦,如果您有多个目标,则甚至会带来更多负担。我有冗余备份,首先是本地服务器和 rsync.net 提供的远程服务(很棒的客户支持!)。我发现 horcrux是一个很棒的、轻量级的、口是心非的包装器,可以满足我的需求。
驱动程序脚本位于我的备份路径之外,还包含我的 GPG 密码来加密我的备份。最终,我希望转向智能卡驱动系统 [此处说明] ( http://blog.josefsson.org/2011/10/11/unattended-ssh-with-smartcard/ )
[/usr/local/bin/ppetraki-backup.sh]
#!/bin/bash 导出 PATH=$PATH:/usr/local/bin 行动=$1 导出用户=XXX 导出 HOME=/home/$USER 源 $HOME/.backenvrc echo "验证环境" 回声“gpg-agent:${GPG_AGENT_INFO}” echo "gpg-key: ${GPGKEY}" echo "ssh-agent-pid: ${SSH_AGENT_PID}" echo "ssh-auth-sock: ${SSH_AUTH_SOCK}" 如果 [ -z $action ]; 然后 echo "需要一个动作!" 出口 1 菲 导出密码= [ -z $PASSPHRASE ] && 退出 1 回声“开始” 用于 local_backup remote_backup 中的配置 做 魂器清洁 $config 魂器 $action $config 完毕
Horcrux 有配置文件的概念,它消除了管理双重 CLI 的所有复杂性。这是配置文件的示例。
cat /home/ppetraki/.horcrux/local_backup-config destination_path="rsync://192.168.1.XXX/backups/personal"
cat ~/.horcrux/local_backup-exclude - /home/ppetraki/沙盒 - /home/ppetraki/Bugs - /home/ppetraki/下载 - /home/ppetraki/视频 - /home/ppetraki/.xsession-errors - /home/ppetraki/.thumbnails - /home/ppetraki/.local - /home/ppetraki/.gvfs - /home/ppetraki/.systemtap - /home/ppetraki/.adobe/Flash_Player/AssetCache - /home/ppetraki/.thunderbird - /home/ppetraki/.mozilla - /home/ppetraki/.config/google-googletalkplugin - /home/ppetraki/.config/google-chrome - /home/ppetraki/.cache - /home/ppetraki/**[cC]ache*
我发现仅备份 mozilla 和 google-chrome 等内容的子目录有问题,相反,我将编写一个额外的脚本来挑选这些文件进行备份。
主要魂器配置文件
猫 ~/.horcrux/horcrux.conf source="/home/ppetraki/" # 确保尾部斜杠 encrypt_key=XXXXXX # 用于加密备份的公钥 ID sign_key='-' # 用于签署备份的密钥 ID(保留为 '-' 表示不签名) use_agent=false # 使用 gpg-agent? remove_n=3 # 要删除的完整文件集的数量 verbosity=5 # 记录所有文件更改(参见 duplicity 手册页) vol_size=25 # 将备份拆分为 25MB 的卷 full_if_old=30D # 导致 'full' 操作执行完整 # 如果超过 360 天,则备份 backup_basename='backup' # 本地备份的目录名(即目的地 # /Volumes/my_drive/backup/ 或 /media/my_drive/backup/) dup_params='--use-agent' # 传递给 Duplicity 的参数
这很棒,因为它减少了备份调用:
$ horcrux inc local_backup
我在我的 crontab 中定义了 MAILTO,并且还安装了 mutt 和重新配置的 postfix 以用于本地邮件传递。每天晚上我都会收到一份关于备份如何运行的进度报告。
我花了很多时间来确定如何自动化并提供强大的加密。希望这个对你有帮助。
归档时间: |
|
查看次数: |
8344 次 |
最近记录: |