次のコマンドを使用して新しいファイル(空のファイル)を作成しようとします。
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
私が自分でやろうとしていたので、解決策はこんな感じです。
pv
stderrに書き込むので、出力を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