Scpを使用してインタラクティブにパスワードを入力すると、ファイルコピーの進行状況がコンソールに送信されますが、スクリプトで sshpass を使用してファイルをscpする場合、コンソール出力はありません。
$ sshpass -p [password] scp [file] root@[ip]:/[dir]
Sshpassがscpのコンソール出力を抑制または非表示にしているようです。コンソールへのsshpass scp出力を有効にする方法はありますか?
後
Sudo apt-get install expect
ファイル send-files.exp
は必要に応じて機能します。
#!/usr/bin/expect -f
spawn scp -r $FILES $DEST
match_max 100000
expect "*?assword:*"
send -- "12345\r"
expect eof
この方法では:
output = $(sshpass -p $ PASSWD scp -v $ filename [email protected]:/ root 2>&1)
エコー "出力= $出力"
コンソール出力を変数出力にリダイレクトします。
または、scpコマンドのコンソール出力のみを表示したい場合は、ssh passコマンドに-vコマンドのみを追加する必要があります。
sshpass -p $ PASSWD scp -v $ filename [email protected]:/ root
まさに何が望まれていたかではありませんが、沈黙よりは良いです:
SSHPASS="12345" sshpass -e scp -v -r $FILES $DEST 2>&1 | grep -v debug1
-e
は-p
よりも少し安全であると見なされていることに注意してください。