이중 전체 볼륨 복원, 일부 파일 및 서비스 누락

이중 전체 볼륨 복원, 일부 파일 및 서비스 누락

백업을 생성 및 암호화하고 이를 S3 버킷(Scaleway)에 저장하기 위해 Ubuntu Xenial에서 이중성을 사용하고 있습니다.

제가 사용하고 있는 백업 스크립트는 다음과 같습니다.

#!/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
  • /sys
  • /신병
  • /개발자
  • /mnt
  • /분실+발견
  • /CD 롬
  • /스왑 파일
  • /vmlinuz
  • /vmlinuz.old
  • /initrd.img
  • /initrd.img.old

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

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

를 사용하여 원본 서버에서 새 인스턴스로 전체 복사를 시도했을 때 rsync동일한 서비스가 성공적으로 복사되고 실행되었습니다. 이에 대한 한 가지 예는 postgres, jenkins및 입니다 postfix. 내가 알 수 있는 것은 세 가지 서비스가 모두 루트가 아닌 다른 사용자로 실행되고 있다는 것입니다. 그리고 postgresql과 postfix는 모두 /usr/lib많은 파일이 누락된 것으로 보이는 반면 jenkins는 /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/

관련 정보