Archive tar incrémentiel
Résolu
sispheor
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je souhaiterais savoir si il est possible avec tar de faire une sauvegarde incrémentiel mais dans la même archive compressée.
En gros:
Jour 1: sauvegarde du fichier no 1 dans une archive tar.gz
Jour 2: il repère qu'il y a un nouveau fichier no2, il l'ajoute à la même archive sans recopier à nouveau le premier.
J'utilise la commande ---listed-incremental avec un script qui fait en sorte de sauvé sur le nom de fichier de la veille. Le problème c'est que dans l'exemple je me retrouve le deuxième jour avec une archive contenant que le fichier no 2 alors que je souhaite qu'il s'ajoute à l'archive ou le premier fichier est déjà présent.
Merci de le pas me répondre RTFM par ce que bon le man de tar est assez balaise. Si vous n'avez pas de solution pour moi je le lirais que même.
Un grand merci pour vos réponses.
je souhaiterais savoir si il est possible avec tar de faire une sauvegarde incrémentiel mais dans la même archive compressée.
En gros:
Jour 1: sauvegarde du fichier no 1 dans une archive tar.gz
Jour 2: il repère qu'il y a un nouveau fichier no2, il l'ajoute à la même archive sans recopier à nouveau le premier.
J'utilise la commande ---listed-incremental avec un script qui fait en sorte de sauvé sur le nom de fichier de la veille. Le problème c'est que dans l'exemple je me retrouve le deuxième jour avec une archive contenant que le fichier no 2 alors que je souhaite qu'il s'ajoute à l'archive ou le premier fichier est déjà présent.
Merci de le pas me répondre RTFM par ce que bon le man de tar est assez balaise. Si vous n'avez pas de solution pour moi je le lirais que même.
Un grand merci pour vos réponses.
A voir également:
- Archive tar incrémentiel
- Archive story instagram - Guide
- Téléchargez cette archive (dossier compressé). en extraire tous les fichiers dans un dossier local. quel fichier contient l’expression trouverpix ? ✓ - Forum Windows
- Le fichier à télécharger est une archive compressée. parmi les fichiers que contient cette archive : quel est le fichier avec le taux de compression le plus élevé ? quel est le fichier dont la taille a le plus diminué ? ✓ - Forum Compression
- Retrouver message archivé gmail iphone ✓ - Forum Gmail
- Archive sms - Guide
6 réponses
Si ton script s'occupe de détecter les nouveaux fichiers à ajouter tu peux te contenter d'utiliser l'option -r pour ajouter le fichier à une archive existante.
Et bien le programme me répond "Une archive compressée ne peut pas être mise à jour". Comme ça j'ai ma réponse. Merci.
Dans ce cas ne la compresse pas. Tu créé ton archive la première fois comme ça :
tar cvf ./archive.tar fichiers_a_archiver
Et ensuite pour ajouter tes nouveaux fichiers :
tar --append --file=./archive.tar nouveaux_fichier
tar cvf ./archive.tar fichiers_a_archiver
Et ensuite pour ajouter tes nouveaux fichiers :
tar --append --file=./archive.tar nouveaux_fichier
Bon ça ne marche pas...
Soit ça me rajoute a nouveau les fichiers et je me retrouve avec des doublons dans l'archive, soit ça me dit que l'archive est déja existante sous ce nom blablabla.
J'explique ce que je veux faire. Je veux un dossier pour chaque jour de la semaine. Dedans il y aura la sauvegarde de mon système ou autre données. Je veux pour gagner du temps faire une incrémentiel.
Exemple: Le premier lundi la sauvegarde est complète et va dans le dossier "lundi"
Tout les autre jour de la semaine pareil cela fait une complète la première fois.
Le lundi suivant le script repère juste les fichier qui ont changés et les ajoutes ou les enlève de l'archive du lundi. Pareil pour le reste de la semaine. COmme ça en cas de problème j'ai qu'une seule archive a restaurer. Celle du jour de la semaine que je préfère. Voilou.
Merci pour vos réponses !
Le début fonctionne bien. J'ai encadré le problème plus bas qui concerne l'incrémentiel.
Voila mon script:
#!/bin/sh
#variable
date=$(date +%F)
jour=$(date +%A)
backup_dir=/home/moi/Bureau/save/${jour}/
source=""
echo "Vérification de l'existence de l'archive";
# On teste si l'archive du jour a bien été créée
if [ -e "$backup_dir" ];
then
echo ""
echo "Disque de sauvegarde présent";
echo ""
else
echo ""
echo "Dossier de sauvegarde non présent";
echo "Creation du fichier"
mkdir ${backup_dir}
echo ""
fi
echo "lecture du fichier contenant les chemins de sauvegarde"
while read line ## ici j'ajoute toute les ligne du fichier contenant les chemins des dossier a sauver dans la variable $source
do
#line="\"$line\" "
source="$source$line "
#source="$source\" "
done < /home/moi/Bureau/asauver
echo "Les repertoires à sauver sont: $source"
echo ""
dossier="/home/moi/Bureau/save/${jour}/"
cd $dossier
echo "Le dossier de sauvegarde est: $(pwd)"
ancien=$(ls |head -1) ##on chope n'ancien nom d'archive
echo ""
echo "Archive présente dans le dossier de sauvegarde: $ancien"
echo ""
if [ -e *.tar ] # si ancien existe
then
if [ $ancien = "$date.tar" ] # et qui est à la meme date
then
echo "Archive déja présente pour cette date"
echo ""
else # sinon il est pas a la bonne date
echo "Sauvegarde incrémentiel en cours..."
######### PROBLEME ###########"
echo ""
#tar -rvf $backup_dir/${ancien} --listed-incremental=/$backup_dir/save.list $source
echo "Mise à jour de la date"
mv $ancien "$date.tar"
fi
else # le fichier n'existe pas alors on fait une complete
echo "Sauvegarde complete en cours..."
echo ""
tar -cvf $backup_dir/${date}.tar $source
# --listed-incremental=/$backup_dir/save.list
fi
Soit ça me rajoute a nouveau les fichiers et je me retrouve avec des doublons dans l'archive, soit ça me dit que l'archive est déja existante sous ce nom blablabla.
J'explique ce que je veux faire. Je veux un dossier pour chaque jour de la semaine. Dedans il y aura la sauvegarde de mon système ou autre données. Je veux pour gagner du temps faire une incrémentiel.
Exemple: Le premier lundi la sauvegarde est complète et va dans le dossier "lundi"
Tout les autre jour de la semaine pareil cela fait une complète la première fois.
Le lundi suivant le script repère juste les fichier qui ont changés et les ajoutes ou les enlève de l'archive du lundi. Pareil pour le reste de la semaine. COmme ça en cas de problème j'ai qu'une seule archive a restaurer. Celle du jour de la semaine que je préfère. Voilou.
Merci pour vos réponses !
Le début fonctionne bien. J'ai encadré le problème plus bas qui concerne l'incrémentiel.
Voila mon script:
#!/bin/sh
#variable
date=$(date +%F)
jour=$(date +%A)
backup_dir=/home/moi/Bureau/save/${jour}/
source=""
echo "Vérification de l'existence de l'archive";
# On teste si l'archive du jour a bien été créée
if [ -e "$backup_dir" ];
then
echo ""
echo "Disque de sauvegarde présent";
echo ""
else
echo ""
echo "Dossier de sauvegarde non présent";
echo "Creation du fichier"
mkdir ${backup_dir}
echo ""
fi
echo "lecture du fichier contenant les chemins de sauvegarde"
while read line ## ici j'ajoute toute les ligne du fichier contenant les chemins des dossier a sauver dans la variable $source
do
#line="\"$line\" "
source="$source$line "
#source="$source\" "
done < /home/moi/Bureau/asauver
echo "Les repertoires à sauver sont: $source"
echo ""
dossier="/home/moi/Bureau/save/${jour}/"
cd $dossier
echo "Le dossier de sauvegarde est: $(pwd)"
ancien=$(ls |head -1) ##on chope n'ancien nom d'archive
echo ""
echo "Archive présente dans le dossier de sauvegarde: $ancien"
echo ""
if [ -e *.tar ] # si ancien existe
then
if [ $ancien = "$date.tar" ] # et qui est à la meme date
then
echo "Archive déja présente pour cette date"
echo ""
else # sinon il est pas a la bonne date
echo "Sauvegarde incrémentiel en cours..."
######### PROBLEME ###########"
echo ""
#tar -rvf $backup_dir/${ancien} --listed-incremental=/$backup_dir/save.list $source
echo "Mise à jour de la date"
mv $ancien "$date.tar"
fi
else # le fichier n'existe pas alors on fait une complete
echo "Sauvegarde complete en cours..."
echo ""
tar -cvf $backup_dir/${date}.tar $source
# --listed-incremental=/$backup_dir/save.list
fi
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Peut être devrais-tu jeter un oeil à ça :
http://www.gnu.org/software/tar/manual/tar.html#SEC94
:-))
Peut être devrais-tu jeter un oeil à ça :
http://www.gnu.org/software/tar/manual/tar.html#SEC94
:-))