OVH Cloud OVH Cloud

Commande tar : comportement bizarre

4 réponses
Avatar
B. Huck
Bonjour à tous,

J'ai écris un petit script de backup de mon système basé sur la commande
tar. Je fais un tar -cvf archive.tar mes_fichiers pour la créer : aucun
problème. Par contre, je souhaite utiliser la commande tar -uvf pour ne
mettre à jour que les fichiers qui ont été modifiés... hors cela ne
fonctionne pas lorsque je lance cette commande en tant que root....
(???) Avec un user lambda, aucun souci, mais avec root, tous les
fichiers sont intégrés à chaque fois ce qui me fait des archives
doublées à chaque sauvegarde. J'ai essayé pas mal d'options mais là je
jette l'éponge.... Si un master du tar pouvait me dépanner...

4 réponses

Avatar
TiChou
Dans l'article news:,
B. Huck écrivait :

Bonjour à tous,


Bonsoir,

J'ai écris un petit script de backup de mon système basé sur la
commande tar. Je fais un tar -cvf archive.tar mes_fichiers pour la
créer : aucun problème. Par contre, je souhaite utiliser la commande
tar -uvf pour ne mettre à jour que les fichiers qui ont été
modifiés...


L'option -u de la commande tar ne met pas à jour dans l'archive les fichiers
qui ont été modifiés mais les ajoute dans l'archive sans les remplacer.
D'ailleurs c'est bien ce qui est dit dans l'aide et le man :

-u, --update
only append files that are newer than copy in archive
^^^^^^^^^^^

hors cela ne fonctionne pas lorsque je lance cette
commande en tant que root.... (???) Avec un user lambda, aucun souci,
mais avec root, tous les fichiers sont intégrés à chaque fois ce qui
me fait des archives doublées à chaque sauvegarde. J'ai essayé pas
mal d'options mais là je jette l'éponge.... Si un master du tar
pouvait me dépanner...


Ce que vous décrivez quand vous êtes root est le fonctionnement normal de la
commande tar comme précédement dit.
Par contre en tant qu'user normal permettez moi de douter sérieusement que
le fonctionnement de la commande tar avec l'option -u serait différent.

D'ailleurs :

pegase root # id -un
root
pegase root # tar cvf bash.tar .bash*
.bash_history
.bash_profile
.bashrc
pegase root # touch .bash_history
pegase root # tar uvf bash.tar .bash*
.bash_history
pegase root # tar tvf bash.tar
-rw------- root/root 10949 2004-01-24 22:51:13 .bash_history
-rw-r--r-- root/root 232 2003-11-07 16:46:26 .bash_profile
-rw-r--r-- root/root 812 2003-11-07 16:46:26 .bashrc
-rw------- root/root 10949 2004-01-25 00:08:42 .bash_history

La nouvelle version de .bash_history a été ajouté à l'archive et non
remplacé.

pegase root # su - tichou
tichou $ id -un
tichou
tichou $ tar cvf bash.tar .bash*
.bash_history
.bash_profile
.bashrc
tichou $ touch .bash_history
tichou $ tar uvf bash.tar .bash*
.bash_history
tichou $ tar tvf bash.tar
-rw------- tichou/users 2896 2004-01-25 00:07:56 .bash_history
-rw-r--r-- tichou/users 232 2003-11-07 12:25:49 .bash_profile
-rw-r--r-- tichou/users 812 2003-11-07 12:25:49 .bashrc
-rw------- tichou/users 2896 2004-01-25 00:11:56 .bash_history

Comportement identique qu'avec root.

--
TiChou

Avatar
TiChou
Dans l'article news:4012fc46$0$22300$,
j'oubliais de dire :

tichou $ tar --version
tar (GNU tar) 1.13.25

--
TiChou
Avatar
huck
Oui, d'accord avec le fait que le fichiers sont ajoutés à l'archive ;
c'est ce que je souhaite. Mais mon problème, c'est que TOUS les
fichiers sont systématiquement ajoutés, même ceux qui n'ont pas été
modifiés ! Et c'est là que je ne comprends pas ...

"TiChou" wrote in message news:<4012fce0$0$22325$...
Dans l'article news:4012fc46$0$22300$,
j'oubliais de dire :

tichou $ tar --version
tar (GNU tar) 1.13.25


Avatar
TiChou
Dans l'article news:,
B?bert écrivait :

Oui, d'accord avec le fait que le fichiers sont ajoutés à l'archive ;
c'est ce que je souhaite. Mais mon problème, c'est que TOUS les
fichiers sont systématiquement ajoutés, même ceux qui n'ont pas été
modifiés ! Et c'est là que je ne comprends pas ...


D'accord, en relisant votre premier post cela est plus clair maintenant. :)

Cela parait effectivement très étrange. Pourriez vous faire les essais et
donner le résultat des commandes suivantes sur l'archive et les fichiers qui
posent problème :

ls --full-time mes_fichiers
tar cvvf archive.tar mes_fichiers
tar dvvf archive.tar
tar tvf archive.tar
tar uvf archive.tar mes_fichiers
tar tvf archive.tar

Cela permettra peut être de voir si la commande tar voit différemment la
date de modification de vos fichiers.

Entre temps je vous invite à lire le site suivant :
http://www.giromini.org/usenet-fr/repondre.html

Pas toujours agréable de lire à l'envers. ;-)

--
TiChou