bash出力は、dd /dev/zeroとダイアログボックス--gaugeを使用してファイルを生成します。

bash出力は、dd /dev/zeroとダイアログボックス--gaugeを使用してファイルを生成します。

次のコマンドを使用して新しいファイル(空のファイル)を作成しようとします。

dd if=/dev/zero of=file.txt count=10240 bs=10240

また、次のようにダイアログ出力--gaugeを使用したいと思います。

dd if=/dev/zero | pv | dd of=output.dat count=10240 bs=102400 iflag=fullblock | dialog --gauge "testing" 10 70 0

また、次のバリエーションを試しました。

(pv -n /dev/zero | dd if=/dev/zero of=output.dat  bs=1000M  count=1) | dialog --guage "Creating a file..." 10 70 0

しかし、動作しません。ファイルが完了したら教えてください。

ありがとうございます。

答え1

dialogスキップして「一般」を使用することをお勧めします。pv次のようにコマンドラインで進行状況を確認してください。

# dd if=/dev/zero bs=10240 count=102400| bash -c 'pv -s 1g  > /media/sudodus/usbdata/output.dat'
 320MiB 0:00:07 [39,2MiB/s] [=========>                        ] 31% ETA 0:00:15
...
1000MiB 0:00:34 [29,1MiB/s] [===============================>  ] 97%            
102400+0 records in
102400+0 records out
1048576000 bytes (1,0 GB, 1000 MiB) copied, 34,4327 s, 30,5 MB/s

私はUSBフラッシュドライブに書いて、より遅くて簡単に「見る」ことができるようにしました。

答え2

私が自分でやろうとしていたので、解決策はこんな感じです。

pvstderrに書き込むので、出力をstdoutにリダイレクトする必要があります。

暗号化されたパーティションにゼロを書きたいです。だから:

#dd if=/dev/zero of=/dev/mapper/swap_crypt bs=1M
    dd: error al escribir en '/dev/mapper/swap_crypt': No queda espacio en el dispositivo
    4269+0 registros leídos
    4268+0 registros escritos
    4475322368 bytes (4,5 GB, 4,2 GiB) copied, 4,1489 s, 1,1 GB/s

出力は不要なので、ddエラー以外は何も印刷しないように指示しますstatus=none

# dd if=/dev/zero of=/dev/mapper/swap_crypt bs=1M status=none
# 

さて、出力がありません!これで、pvを使用して進行状況を監視し、記録されたバイトも知っているので、送信されたバイトに基づいてパーセントを印刷するようにpvに指示できます。-n送信される割合とバイトを記録します-s

# dd if=/dev/zero | pv -n -s 4475322368 | dd of=/dev/mapper/swap_crypt bs=1M  status=none
16
32
43
52
61
69
77
84
88
dd: error al escribir en '/dev/mapper/swap_crypt': No queda espacio en el dispositivo
100
# 

stderrをstdoutにリダイレクトし、次にパイプしますdialog --gauge

#(dd if=/dev/zero | pv -n -s 4475322368 | dd of=/dev/mapper/swap_crypt bs=1M  status=none) 2>&1 | dialog --title "Status"  --gauge "Writing zeros..." 10 60 0 

これで、転送する前にどのくらいのバイトが必要かを把握し、pvの-sパラメータの数を変更します(簡単な操作)。

答え3

トピックから少し外れていますが、status=progressオペランドを使用すると、dd次のような結果が得られます。

748901888 bytes (749 MB, 714 MiB) copied, 3 s, 250 MB/s

関連情報