[Unix] Test archive TAR corrompue ou non
Bonjour à tous.
Dans le cadre d'un script de rotation de log sous Unix, j'ai besoin de faire la manipulation suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
#!/usr/bin/perl -w
#use strict;
my @file= `find /export/home/lambda/archive/* -type d -prune`;
my @tab_date = localtime(time);
my $Jour = $tab_date[3];
my $Mois = $tab_date[4]+1;
my $Annee = $tab_date[5] + 1900;
#Pour chaque dossier présent dans le dossier des archives
foreach my $dir (@file)
{
chomp $dir; # enlève l'espace à la fin de la chaîne
my $temp=`tar cfv $dir-$Jour-$Mois-$Annee.tar $dir`; # Conception de l'archive
#si temp =0 -> rm -r $dir
print "$temp\n";
} |
En fait, les données qui ont été modifiée il y a plus d'un mois sont déplacée dans un dossier archive (cette opération est faite par un autre script).
Le script ci-dessus effectue alors un compressage des données une fois par semaine (grâce à un cron). Une fois les données compressée, j'aimerai supprimé les données qui viennent d'être compressée mais que ce passe t-il si il y a une archive conrompue? En d'autre termes, si je supprime des données qui n'ont pas été archivée, cela n'est pas correct.
Dans le man de TAR il est indiqué ceci :
Code:
1 2 3 4 5 6 7 8
|
EXIT STATUS
The following exit values are returned:
0 Successful completion.
>0 An error occurred. |
Mais je n'ai rien dans ma variable $temp après l'exécution de la commande...
Comment pourrais-je tester que mon archive n'est pas corrompue et que dès lors, je peux supprimer les données qui viennent d'être archivée?
Merci d'avance !