web-dev-qa-db-ja.com

sshpassとSCPを使用しているときのホイップテールの進行状況の表示

Golangアプリの構築、コピー、およびリモートサーバーへの実行を自動化するbashスクリプトを書いています。 whiptailを使用して、ユーザーにいくつかのオプションを選択させ、いくつかの詳細(SSHサーバー名、ユーザー名、パスワードなど)を入力させます。

sshpass -p mypassword scp myfile user@remoteserver:/location/to/myfileを使用すると、何も進行しません。端末は、コピーされるまでそこに座ってから続行します。明らかに、これをホイップテールのゲージオプションに渡すことはできません。 sshpassなしで実行すると、画面に進捗情報が表示されますが、sshpassを使用します(scpがパスワードを要求するときは言うまでもなく、whiptailのダイアログボックスが壊れます)。 -vを指定してscpを実行すると、大量のデバッグ情報が得られますが、クリーンアップしてウィップテールにフィードすることはできません

それでは、SSH経由でファイルがコピーされている間に、ユーザーにプログレスバーを表示するにはどうすればよいでしょうか?

4
Grayda

私はsshpassに不慣れです。 scpには、-3オプションを使用したプログレスバーがあります。

 $ls -l
-rw-r--r-- 1 root     root     50043369 Jul 17 21:59 gv.tgz

j0h@M0h:~$ scp -3 -P 7935 gv.tgz  [email protected]:/home/j0h/
[email protected]'s password: 
gv.tgz                       100%   48MB  11.9MB/s   00:04 

アップロード中、最後の行は変化しており、0%から100%への進行を示していました。これはあなたが使用できるものですか?

1
j0h