1. Criei um script para backup do Nextcloud, esse que roda no Ubuntu 20.04 LTS. Salvei o mesmo em "/usr/local/bin" e ao executar ele como super usuário, ele funciona corretamente.
2. Configurei o mesmo no cron, utilizando o comando "crontab -e" e inseri a linha "30 0 * * * bash /usr/local/bin/backup_cloud-server.sh" (sem as aspas) no arquivo de configuração para que o script seja executado todos os dias as 00:30. Fiz o teste e ele executa o script no horário programado.
Problema:
Sempre que executado automaticamente pelo cron, o script gera arquivo de backup com apenas 10k de tamanho, ou seja, o backup não está sendo feito corretamente. Quando executando manualmente o script, logado no terminal da estação, ele faz o backup corretamente, o arquivo ficando com dezenas de gigabytes, como deve ser. Abaixo, listei os arquivos de backup criados. Os com vários gigabytes de tamanho, são os backups gerei executando o script manualmente:
"root@cloud-server:/mnt/backup_cloud-server# ls -lh
total 99G
-rwxr-xr-x 1 root root 10G jan 31 12:02 20220131-144019_nextcloud-backup.tar
-rwxr-xr-x 1 root root 10G fev 1 00:47 backup_cloud-server_01-02-2022_00-24-41.tar
-rwxr-xr-x 1 root root 10G fev 18 00:45 backup_cloud-server_01-02-2022_06-57-37.tar
-rwxr-xr-x 1 root root 10K fev 18 00:45 backup_cloud-server_02-02-2022_02-00-01.tar
-rwxr-xr-x 1 root root 9,1G fev 18 00:59 backup_cloud-server_02-02-2022_07-56-34.tar
-rwxr-xr-x 1 root root 10K fev 18 00:59 backup_cloud-server_03-02-2022_02-00-01.tar
-rwxr-xr-x 1 root root 10K fev 18 00:59 backup_cloud-server_03-02-2022_07-20-01.tar
-rwxr-xr-x 1 root root 10K fev 18 00:59 backup_cloud-server_05-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 12G fev 18 01:20 backup_cloud-server_05-02-2022_10-33-19.tar
-rwxr-xr-x 1 root root 10K fev 18 01:20 backup_cloud-server_06-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 10K fev 18 01:20 backup_cloud-server_07-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 10K fev 18 01:20 backup_cloud-server_08-02-2022_00-30-02.tar
-rwxr-xr-x 1 root root 10K fev 18 01:20 backup_cloud-server_09-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 10K fev 18 01:20 backup_cloud-server_10-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 10K fev 18 01:20 backup_cloud-server_11-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 10K fev 18 01:20 backup_cloud-server_12-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 10K fev 18 01:20 backup_cloud-server_13-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 24G fev 18 02:03 backup_cloud-server_13-02-2022_07-59-21.tar
-rwxr-xr-x 1 root root 10K fev 18 02:03 backup_cloud-server_14-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 10K fev 18 02:03 backup_cloud-server_15-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 25G fev 18 02:46 backup_cloud-server_15-02-2022_20-47-38.tar
-rwxr-xr-x 1 root root 10K fev 18 02:46 backup_cloud-server_16-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 10K fev 18 02:46 backup_cloud-server_17-02-2022_00-30-01.tar
-rwxr-xr-x 1 root root 10K fev 18 02:46 backup_cloud-server_18-02-2022_00-30-01.tar
root@cloud-server:/mnt/backup_cloud-server# "
A questão é: como solucionar isso?
Abaixo, o script:
#!/bin/bash
#### PARAMETROS ####
source_path="/var/snap/nextcloud/common/backups" #DIRETORIO DE ORIGEM DO BACKUP
temp_path="/var/snap/nextcloud/common/backups_tmp" #DIRETORIO TEMPORARIO DE BACKUP
output_path="/mnt/backup_cloud-server" #DIRETORIO DE DESTINO DE BACKUP
date_format=$(date +'%d-%m-%Y_%H-%M-%S') #FORMATO DE DATA E HORA
final_filename="backup_cloud-server_$date_format.tar" #NOME DO ARQUIVO DE BACKUP
#### INICIO DO BACKUP ####
echo
echo Iniciando backup Nextcloud para $output_path/$final_filename
echo
rm -Rf $source_path/* # LIMPA DIRETORIO LOCAL
nextcloud.export # EXPORTA DADOS DO NEXTCLOUD
tar -cvf $temp_path/$final_filename $source_path #COMPACTA ARQUIVO
cp $temp_path/* $output_path #COPIA PARA SERVIDOR DE BACKUP
find $output_path -mtime 4 # EXCLUI ARQUIVOS ANTIGOS NO DIRETORIO DE DESTINO
find $temp_path -mtime 3 # EXCLUI ARQUIVOS ANTIGOS NO DIRETORIO TEMPORARIO
echo
echo Encerrando processo de backup Nextcloud.
echo Verifique o diretorio de saída $outuput_path
echo
ls -lh $output_path
#### FIM DO PROCESSO DE BACKUP ####
Obrigado!