Imagino que seja um problema simples, mas não tenho ninguém para verificar meu trabalho.
Aqui está meu script bash
#!/bin/bash
# establish date format and dump name
DATE=$(date +"%Y%m%d-%H%M")
DUMPFILE=$DATE.dump
# path to log dir and name of output log file
LOGDIR=/opt/mongodb/backups/logs
DBLOG=$DATE-dump.log
# backup the database and output to a dump file, redirect output to a log
docker exec -i mongodb sh -c "mongodump --archive" > \
$DUMPFILE 2> \
$LOGDIR/$DBLOG
# archive the dump file and the file uploads
ARCHIVENAME=$DATE.tgz
ARCHIVELOG=$DATE-archive.log
tar -czvf $ARCHIVENAME /opt/mongodb/$DUMPFILE /opt/mongodb/files &> \
$LOGDIR/$ARCHIVELOG
Onde estou preso, o script emite corretamente o log de despejo. No entanto, quando chega ao fim, recebo
./backup.sh: line 20: /opt/mongodb/backups/logs/20250328-0942-archive.log: No such file or directory
Tentei usar o caminho absoluto em vez do da var:
tar -czvf $ARCHIVENAME /opt/mongodb/$DUMPFILE /opt/mongodb/files &> \
/opt/mongodb/backups/logs/$ARCHIVENAME
Mas recebo o mesmo erro. Estou supondo que isso seja meu entendimento ruim de redirecionamentos, tar ou um erro de sintaxe. Qualquer ajuda seria apreciada.
EDIT: Um arquivo chamado "' '" é criado toda vez que executo o script. Se executado
cat ' '
Vejo que esse arquivo é o log, então ele redireciona a saída para um arquivo, mas não da maneira desejada.