Bonjour,
J'ai fait un petit script qui me copie de(s) fichier(s) d'un machine à une autre et mon soucis est de savoir si la copie s'est effectuée ou pas. Pour ce faire j'ai utilisé le mot --stats de rsync et j'obtiens ceci:
Donc mon idée est de récupérer les deux lignes contenants "Number of files". Voici mon script :sending incremental file list
Number of files: 3
Number of files transferred: 0
Total file size: 1997744 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 75
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 84
Total bytes received: 12
Voici le résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #!/bin/bash -x SRC_PATH="/tmp/test_directory/config/*" DST_PATH[1]="<user>@<host>:/tmp/test_directory/config/dir1/test" DST_PATH[2]="<user>@<host>:/tmp/test_directory/config/dir2/test" DST_PATH[3]="<user>@<host>:/tmp/test_directory/config/dir3/test" OPTS="-auvz --stats -e ssh" for i in 1 2 3 do RSYNC[$i]=`/usr/bin/rsync $OPTS $SRC_PATH ${DST_PATH[$i]} 2>&1 |grep Number|awk -F":" '{print $2}'` echo "rsync : ${RSYNC[$i]} " done
Comme je récupère le champs 2, j'ai les deux résultats 3 et 0! Sont-ils sur deux lignes? Comment les insérer chacun dans une variable pour que je puisse les tester?rsync : 3
0
rsync : 3
0
rsync : 3
0
Y a-t-il une solution plus simple?
Merci d'avance pour votre aide...
Partager