J'essaie de construire une sauvegarde script qui crée une archive complète de mon système chaque nuit. Pour ce faire, j'ai suivi le tutoriel aquí .
Pour le tester, j'ai donc décidé de créer une sauvegarde manuelle :
tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /
Lorsque j'essaie d'exécuter cette commande, j'obtiens l'erreur suivante :
tar: /run/: file is on a different filesystem; not dumped
Il en résulte un code de sortie de 1. Cependant, je veux exécuter cette commande dans un script et si le code de retour est 0
Je veux déplacer le fichier de sortie, sinon le supprimer. Si j'ai bien compris le tutoriel dont le lien est donné plus haut, le fichier de sortie doit être déplacé. --one-file-system
implique que /run/
est ignorée. Mais pourquoi est-ce que je reçois l'erreur alors ?
Pour être complet, le script (WIP) est présenté ci-dessous :
#!/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