전체 볼륨 복구의 이중성, 일부 파일 및 서비스 손실

전체 볼륨 복구의 이중성, 일부 파일 및 서비스 손실

저는 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
  • /프로세스
  • /체계
  • /시작하다
  • /개발자
  • /mnt
  • /분실+발견
  • /CD
  • /스왑 파일
  • /vmlinuz
  • /vmlinuz.old
  • /initrd.img
  • /initrd.img.old

전체 백업을 원하므로 이를 /.scw-configrc의 소스로 설정합니다. export SOURCE="/"

GPG 키나 버킷 연결에 문제가 없습니다. 제가 겪고 있는 문제는 백업 실행 스크립트를 사용해도 sudo특정 파일을 백업하지 않는 것 같아서 새 서버 인스턴스에서 전체 복원을 수행할 때 일부 서비스가 손실된다는 것입니다.

을 사용하여 소스 서버에서 새 인스턴스로 전체 복제를 수행하려고 하면 rsync동일한 서비스가 성공적으로 복제되고 실행됩니다. 한 가지 예는 postgres및입니다. 내가 알 수 있는 것은 세 가지 서비스가 모두 루트가 아닌 다른 사용자로 실행되고 있다는 것입니다. 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/

관련 정보