Estou tentando criar um script de backup que crie um tarball completo do meu sistema a cada noite. Para fazer isso, eu segui o tutorial aqui .
Então, para testar, decidi criar um backup manual:
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
Quando tento executar este comando, recebo o erro:
tar: /run/: file is on a different filesystem; not dumped
Isso resulta em um código de saída 1. No entanto, eu quero executar este comando em um script e se o código de retorno for 0
, eu quero mover o arquivo de saída, caso contrário, excluí-lo. Se eu entendi corretamente a partir do tutorial vinculado acima o --one-file-system
implica que /run/
é ignorado. Mas por que eu recebo o erro então?
Para completar, o script (WIP) é mostrado abaixo:
#!/bin/bash
# Location to store backups
STORAGE=/media/storage/backups/full
# Current date
DATE=$(date +"%d.%m.%YT%H.%M")
TAR="$DATE.tar.gz"
# Check if the file already exists. Should never be the case though.
if [ ! -f /tmp/$TAR ]; then
echo "Changing dir to /"
cd /
# Create tarball
echo "Creating tarball"
tar -cvpzf /tmp/$TAR --exclude=/tmp/$TAR --one-file-system /
retcode=$?
echo "Exit status: $retcode"
if [ $retcode = 0 ] ; then
echo "Moving file.."
# Move the file
mv /tmp/$TAR $STORAGE/$TAR
echo "Done!"
fi
fi