Bonjour à tous.
Dans le cadre d'un script de rotation de log sous Unix, j'ai besoin de faire la manipulation suivante :
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).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"; }
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 :
Mais je n'ai rien dans ma variable $temp après l'exécution de la commande...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 EXIT STATUS The following exit values are returned: 0 Successful completion. >0 An error occurred.
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 !
Partager