3 votes

Code de sortie Tar non nul

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

1voto

f01 Points 246

Vous devez déclarer --one-file-system d'abord avant la règle d'exclusion. Il y a une note du même guide que vous avez suivi.

Si vous voulez exclure tous les autres montages autres que celui en cours - en courant - j'entends par là les partitions montées sur des répertoires - utilisez alors l'option --un-système-de-fichiers ajouté avant les règles d'exclusion. Cela a pour effet d'empêcher tar d'accéder à tout autre montage dans n'importe quel répertoire, y compris /mnt ou /mac. répertoire, y compris /mnt ou /media.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X