SSHを介してリモートで実行されているローカルスクリプトから最小進行状況バーを取得するのに問題があります。コマンドによっては、他の不要な進行インジケータ(wgetの点線)が表示されます。
私が意味するものを説明するために、例を見てみましょう。
wget -q --show-progress https://some.file -P /tmp
some.file 11%[=========> ] 20,08M 4,47MB/s ETA 38s # Nice looking progress bar
同じコード行がリモートで実行されます。
ssh user@server 'wget -q --show-progress https://some.file -P /tmp'
0K .......... .......... .......... .......... .......... 0% 1,43M 2m6s # Not so nice for longer scripts and big files
50K .......... .......... .......... .......... .......... 0% 1,73M 1m55s
100K .......... .......... .......... .......... .......... 0% 5,16M 88s
150K .......... .......... .......... .......... .......... 0% 2,56M 84s
200K .......... .......... .......... .......... .......... 0% 5,14M 74s
250K .......... .......... .......... .......... .......... 0% 5,36M 67s
... (etc)
カールがうまく機能することに言及したいと思います。しかし、私が言ったように、tarを使用して抽出中に進行状況バーを取得しようとすると、pvでも同じ問題に直面しました。
答え1
マニュアルページから:
--progress=type
使用する進行状況インジケータの種類を選択します。法的指定子は「ドット」と「バー」です。デフォルトでは「バー」マークが使用されます。検索状態を示すために、ASCIIプログレスバーグラフィック(「温度計」ディスプレイとも呼ばれる)を描画します。 出力がTTYでない場合、デフォルトでは「ポイント」列が使用されます。
最初のフラグメントの進行状況バーは「バー」、2番目のフラグメントは「ドット」です。コマンドラインで提供されたコマンドを実行すると、デフォルトでssh
リモート側にttyが割り当てられないため、進行状況バーのwget
スタイルが変更される可能性があります。
wget --progress=bar:force
そのスタイルを選択するように強制したり、ssh -t
SSHクライアントにTTYを割り当てるように指示したりできます。