Como eu automatizo o backup borg?

1

Antecedentes

Eu gostaria de usar o Borg Backup como uma solução de backup para o meu servidor Ubuntu. Eles oferecem um script sh muito conveniente que dizem que você pode simplesmente executar como um cron job , mas não está funcionando para mim.

Problema

Como eu automatizo o backup borg? Se a melhor maneira é usar o cron, então o que há de errado com a minha imputação?

Dados

Crontab do Root:

# 5 2 * * * sh /home/***/Scripts/borgBackup_run.sh >/dev/null      # Back up the root partition daily (2:05a)
* * * * * sh /home/***/Scripts/borgBackup_run.sh >/dev/null      # Test the script

borgBackup_run.sh:

Modificado do original para ser muito básico:

#!/bin/sh

echo 'Starting backup now...' >> 
/home/***/Logs/borgBackup_create.log

#/usr/bin/borg create --verbose --filter AME --list --stats --show-rc --compression lz4 --exclude-caches --one-file-system --exclude-from ~/Scripts/borgBackup_exclude.txt /mnt/RootBackup/borg::'{hostname}-{now:%Y-%m-%d}' /
/usr/bin/borg create /mnt/RootBackup/borg::cronTest /home/***/Logs/ # Backup a small folder as a test

echo 'Done.' >> /home/***/Logs/borgBackup_create.log

"ls -l ~ / Scripts / borgBackup_run.sh"

-rwxr-xr-x 1 root root 455 Sep 27 12:34 Scripts/borgBackup_run.sh

Notas:

Quando borgBackup_run.sh é executado a partir da linha de comando, como: sudo Scripts/borgBackup_run.sh , o script funciona perfeitamente, criando um novo arquivo morto em /mnt/RootBackup/borg .

Além disso, após cada minuto (quando o cronjob é executado), o arquivo .log em /home/***/Logs/borgBackup_create.log mostra os dois Starting backup now... e Done. , indicando que o script foi executado até o final, mas o borg não funcionou alguma razão.

Eu tentei remover sh do arquivo crontab, usando bash e alterando o interobang para #!/bin/bash em vez de #!/bin/sh . Eu também tentei envolver a linha /user/bin/borg create ... line em borgBackup_run.sh in bash -c "..." .

Qualquer ajuda seria muito apreciada!

    
por sgbrown 27.09.2018 / 19:49

1 resposta

1

Eu descobri o problema e estou postando a solução caso alguém no futuro tenha um problema semelhante.

Configurei meu repositório para ser descriptografado, o que fez com que borg tentasse executar interativamente (solicitando stdout se o backup em um repositório não criptografado está correto). Para fazer o borg funcionar de forma não interativa, eu tive que exportar um "respondente automático" em borgBackup_run.sh , antes da chamada para borg create ... . A nova linha no script se parece com:

export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes

O nome dessa variável foi encontrado na página man de borg . Vários outros "respondentes automáticos" também podem ser encontrados na página man , para garantir que o borg seja executado de forma não interativa em um script.

    
por 29.09.2018 / 00:48