Восстановление полного тома Duplicity, отсутствуют некоторые файлы и службы

Восстановление полного тома Duplicity, отсутствуют некоторые файлы и службы

Я использую Duplicity в Ubuntu Xenial для создания и шифрования резервных копий и хранения их на 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):

  • /тмп
  • /проц
  • /сис
  • /ботинок
  • /dev
  • /мнт
  • /потерян+найден
  • /компакт-диск
  • /файл_подкачки
  • /vmlinuz
  • /vmlinuz.old
  • /initrd.img
  • /initrd.img.old

Мне нужна полная резервная копия, поэтому я указываю /в качестве источника в .scw-configrc: export SOURCE="/"

У меня нет проблем с ключами GPG или подключением к бакету. Проблема в том, что даже при запуске скрипта резервного копирования с sudo, он, похоже, не создает резервные копии определенных файлов, и поэтому, когда я делаю полное восстановление на новом экземпляре сервера, некоторые службы отсутствуют.

Когда я попытался сделать полную копию с исходного сервера на новый экземпляр с помощью rsync, те же самые службы скопировались и успешно запустились. Одним из примеров этого является postgres, jenkinsи postfix. Я могу сказать, что все три службы работают под разными пользователями, а не под root. И 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/

Связанный контент