私は現在1秒あたりのディスクロードiostat -dx 1
(特に%util列)を取得するためにiostatを使用しています。しかし、私はこれをbashスクリプトに入れて、次のようにwatch
間隔を制御したいと思いますwatch -n 1 ./script.sh
。
次のコマンドを実行すると、script.sh
何も印刷されません。
io_load=`iostat -dx 1`
echo $io_load
どんなアイデアがありますか?
答え1
あなたはiostat -dx 1
終了せずに引き続き価値を報告します。 (1
計算間隔を示します。)
あなたは次のようなものが欲しいかもしれません
io_load=$(iostat -dx)
echo "$io_load"
答え2
マニュアルページには次のようiostat
に記載されています。
The interval parameter specifies the amount of time in seconds between each
report. The first report contains statistics for the time since system
startup (boot), unless the -y option is used (in this case, this report is
omitted). Each subsequent report contains statistics collected during the
interval since the previous report.
つまり、最初の出力はiostat -dx 1
と同じですiostat -dx
が、後続の出力は異なります。 - を使用してこの動作を再現することはできませんwatch
。