Habe die Lösung!
Und zwar brauch ich den grafischen Schnickschnack mit der Fortschrittsanzeige als Balkenform gar nicht. Das generiert ja nur diese Steuercodes und anhand des Bufferings krieg ich diese Anzeigeprobleme. Habe nun einfach den Schalter
-n verwendet für "numeric" Anzeige. Dann braucht man den Schalter
-f nicht mehr.
Der Einzeiler sieht dann also so aus (für meinen Test):
Code: Alles auswählen
(dd if=/dev/zero bs=$bs count=$((4294967296 / $bs)) | pv -n -p -t -e -r -a -s 4G | dd of=/dev/null) >test.monitor 2>&1
und in der test.monitor wird folgender Output generiert. Die einzelnen Zeile entsprechen dem Prozentanteil, wieviel bereits abgeschlossen ist. Und wenn das bei 100 angelangt ist, kriegt man am Ende auch die Zusammenfassung mit Infos wie "übertragene Datenmenge", durchschnittlicher Durchsatz, usw...
4
9
13
18
23
27
32
37
41
46
50
55
60
64
69
74
78
83
88
92
97
33554432+0 Datensätze ein
33554432+0 Datensätze aus
4294967296 Bytes (4,3 GB) kopiert, 21,5802 s, 199 MB/s
6963036+1923266 Datensätze ein
8388608+0 Datensätze aus
4294967296 Bytes (4,3 GB) kopiert, 21,5811 s, 199 MB/s
Somit genau das was ich haben wollte. Ich kann jederzeit durch Betrachten der "test.monitor" nachschauen, wieweit der dd-Prozess ist.
EDIT: Das einzige was noch blöd ist, daß ca. 2x in der Sekunde eine neue Zeile geschrieben wird. Das bedeutet, daß im Outputfile so was drinstehen wird beim Klonen einer 2TB Platte:
0
0
0
0
0
0
0
0
0
...und nach Stunden immer noch hunderte/tausende Zeilen mit diesen Nullen
5
5
5
5
5
5
5
5
5
5
5
5
...und so weiter...
Wie könnte man das unterbinden, so daß KEINE neue Zeile verwendet wird ? Ich glaub mittels dem pv-Kommando kann man das ja nirgends einstellen, denn in der 'man' heißt es ja, dass immer eine neue Zeile geschrieben wird.
-n: Numeric output. Instead of giving a visual indication of progress, pv will give an integer percentage, one per line, on standard error, ...
könnte man da evtl. noch nachträglich awk pipen und das so irgendwie lösen?? Evtl. mit nem if- und last statement innerhalb awk?? Meillo, wo steckst du awk-Guru?
*help*
Man gibt Geld aus, das man nicht hat, um damit Dinge zu kaufen, die man nicht braucht, um damit Leute zu beeindrucken, die man nicht mag.