Hallo zusammen,
ich möchte mir ein kleines Skript basteln, um den gesamten rsync-kopier-Vorgang in einem Fortschrittsbalken darszustellen. Dazu will ich die Ausgabe von rsync auslesen und die Anzahl der übertragenen Bytes aufsummieren.
Leider bekomme ich beim Kombinieren von grep, tr und cut (auch awk) immer nur das erste Lineupdate, bei größeren Dateien fehlen also etliche Bytes. Ich habe mal ein paar Ausgaben gepostet, die verdeutlichen was ich meine.
Am liebsten wäre es mir, wenn ich jedes Update der Zeile zurückbekomme und eine extra Info, wenn die nächste Zeile ausgegeben wird z.B.:
while (gleiche Zeile) do(für jedes Update)
irgentwas
end
Wenn das nicht geht, wäre es auch ok, wenn ich nur das letzte Update der Zeile bekomme.
Hoffe ihr könnt mir weiterhelfen.
Gruß Zorki
$ rsync -av --progress $src $dest | tr -s " " | grep xfer
17136 100% 0.00kB/s 0:00:00 (xfer#1, to-check=10/12)
492718 100% 46.99MB/s 0:00:00 (xfer#2, to-check=9/12)
5365 100% 436.60kB/s 0:00:00 (xfer#3, to-check=8/12)
5351 100% 435.47kB/s 0:00:00 (xfer#4, to-check=7/12)
11653 100% 948.32kB/s 0:00:00 (xfer#5, to-check=6/12)
1434878 100% 39.10MB/s 0:00:00 (xfer#6, to-check=5/12)
8915 100% 241.83kB/s 0:00:00 (xfer#7, to-check=4/12)
8915 100% 241.83kB/s 0:00:00 (xfer#8, to-check=3/12)
13785 100% 373.94kB/s 0:00:00 (xfer#9, to-check=2/12)
614677 100% 12.74MB/s 0:00:00 (xfer#10, to-check=1/12)
1298656 100% 17.69MB/s 0:00:00 (xfer#11, to-check=0/12)
$ rsync -av --progress $src $dest | tr -s " " | grep xfer | cut -d " " -f 2 ; rm -r test/*
17136
32768
5365
5351
11653
32768
8915
8915
13785
32768
32768
$ rsync -av --progress $src $dest | tr -s " " | grep xfer | cut -d " " -f 3
100%
6%
100%
100%
100%
2%
100%
100%
100%
5%
2%