
Estou usando duplicidade no Ubuntu Xenial para criar e criptografar backups e armazená-los em um bucket S3 (Scaleway).
Este é o script de backup que estou usando:
#!/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
Excluo esses arquivos do backup (exclude-list.txt):
- /tmp
- /proc
- /sys
- /bota
- /dev
- /mnt
- /perdido+encontrado
- /cdrom
- /arquivo de troca
- /vmlinuz
- /vmlinuz.old
- /initrd.img
- /initrd.img.old
Quero um backup completo, então estou configurando /
como fonte em .scw-configrc:
export SOURCE="/"
Não tenho problemas com chaves GPG ou conexão com o bucket. O problema que estou tendo é que, embora esteja executando o script de backup sudo
, ele parece não fazer backup de determinados arquivos e, portanto, quando faço uma restauração completa em uma nova instância de servidor, alguns serviços estão faltando.
Quando tentei fazer uma cópia completa do servidor de origem para uma nova instância com rsync
, esses mesmos serviços foram copiados e executados com êxito. Um exemplo disso é postgres
, jenkins
e postfix
. O que posso dizer é que todos os três serviços estão sendo executados sob usuários diferentes, e não como root. E tanto o postgresql quanto o postfix estão localizados em /usr/lib
que parece estar faltando muitos arquivos, enquanto o jenkins é executado em /usr/bin/
, que também está faltando os arquivos.
Este é o script de restauração (embora eu tenha certeza de que os arquivos dos quais estou falando não fazem backup):
#!/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
Existem problemas com a propriedade dos arquivos? Ou estou fazendo algo errado? Todos os serviços que parecem não funcionar parecem estar sendo executados em subdiretórios de/usr/