Duplicity のフルボリューム復元、一部のファイルとサービスが欠落

Duplicity のフルボリューム復元、一部のファイルとサービスが欠落

私は、Ubuntu Xenial で duplicity を使用してバックアップを作成し、暗号化し、S3 バケット (Scaleway) に保存しています。

私が使用しているバックアップ スクリプトは次のとおりです。

#!/bin/bash
source ./.scw-configrc

HOST=`hostname`
DATE=`date +%Y-%m-%d`
TODAY=$(date +%d%m%Y)

currently_backuping=$(ps -ef | grep duplicity  | grep python | wc -l)

if [ $currently_backuping -eq 0 ]; then
# Clear the recent log file
cat /dev/null > ${LOGFILE_RECENT}

log ">>> removing old backups"
duplicity remove-older-than ${KEEP_BACKUP_TIME} ${SCW_BUCKET} >> ${LOGFILE_RECENT} 2>&1

log ">>> creating and uploading backup"
duplicity \
    incr --full-if-older-than ${FULL_BACKUP_TIME} \
    --asynchronous-upload \
    --exclude-globbing-filelist exclude-list.txt \
    --encrypt-key=${GPG_FINGERPRINT} \
    --sign-key=${GPG_FINGERPRINT} \
    ${SOURCE} ${SCW_BUCKET} >> ${LOGFILE_RECENT} 2>&1

cat ${LOGFILE_RECENT} >> ${LOGFILE}
fi

これらのファイルをバックアップから除外します (exclude-list.txt):

  • /tmp
  • /proc
  • /システム
  • /ブート
  • /開発
  • /分
  • /紛失+拾得
  • /のCD-ROM
  • /スワップファイル
  • /vmlinuz
  • /vmlinuz.old
  • ファイル名
  • /initrd.img.old

/完全なバックアップが必要なので、 .scw-configrc でソースとして 設定します。export SOURCE="/"

GPG キーやバケットへの接続には問題はありません。 でバックアップ スクリプトを実行しているにもかかわらずsudo、特定のファイルがバックアップされないという問題が発生しており、新しいサーバー インスタンスで完全復元を実行すると、一部のサービスが失われます。

を使用してソース サーバーから新しいインスタンスに完全コピーを実行しようとしたところrsync、同じサービスがコピーされ、正常に実行されました。 、および がその一例ですpostgres。3 つのサービスすべてが、root ではなく異なるユーザーで実行されていることがわかります。 また、postgresql と postfix はどちらも の下にありますが、多くのファイルが不足しているようです。一方、jenkins は から実行されていますが、これもファイルが不足しています。jenkinspostfix/usr/lib/usr/bin/

これは復元スクリプトです (ただし、ここで言及しているファイルはそもそもバックアップされていないはずです)。

#!/bin/bash
source ./.scw-configrc

if [ $# -lt 2 ]; then
        echo -e "Usage $0 <time or delta> [file to restore] <restore to>
    Exemple:
    \t$ $0 2018-7-21 recovery/  ## recovers * from closest backup to date
\t$ $0 0D secret data/  ## recovers most recent file nammed 'secret'";
exit; fi

if [ $# -eq 2 ]; then
    duplicity -vd --force \
        --rsync-options="--super --del --recursive --force --ignore-errors" \
        --time $1 \
        ${SCW_BUCKET} $2
fi

if [ $# -eq 3 ]; then
    duplicity -vd --force \
        --rsync-options="--super --del --recursive --force --ignore-errors" \
        --time $1 \
        --file-to-restore $2 \
        ${SCW_BUCKET} $3
fi

ファイルの所有権に問題があるのでしょうか?それとも私が何か間違っているのでしょうか?実行されていないサービスはすべてサブディレクトリから実行されているようです。/usr/

関連情報