저는 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가 실행 중인데 누락된 파일이 많은 것 같고, 누락된 파일도 있는 것 같습니다.jenkins
postfix
/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/