最近、OpenSSHを6.0から7.5にアップグレードしました。
私のコードはput
/get
コマンド応答エコーをキャプチャし、確認のために処理します。
パスワード:
exec 3>&1 4>&2
exec > $TempSessionLog 2>&1
set -x
cd $LocalDir
sftp -o PreferredAuthentications=hostbased,publickey -P $rport -b $batfile "$ruser"@"$ripaddress" > $TempLogFile << EndFTP
EndFTP
retval="$?"
exec 1>&3 2>&4
set +x
OpenSSH 6.0では、応答は次TempLogFile
のようにキャプチャされます。
sftp> cd /user/data/errors/support/01
sftp> pwd
Remote working directory: /user/data/errors/support/01
sftp> mput "EVERYTHING_GAA_20131029_113243_R9976594.txt.D20131029.T1520.txt"
**Uploading EVERYTHING_GAA_20131029_113243_R9976594.txt.D20131029.T1520.txt to /user/data/errors/support/01/EVERYTHING_GAA_20131029_113243_R9976594.txt.D20131029.T1520.txt**
sftp> bye
OpenSSH 7.5にアップグレードした後、エコーが停止しました。
sftp> cd /user/data/errors/support/01
sftp> pwd
Remote working directory: /user/data/errors/support/01
sftp> mput "EVERYTHING_GAA_20131029_113243_R9976594.txt.D20131029.T1520.txt"
sftp> bye
応答エコーを復元する方法を知っていますか?
答え1
OpenSSH 6.3以降(犯罪)、その-b
意味は実際には-q
次の-q
とおりです。
「sftp -q」を使用して、ラベルに示されているとおりに実行してください。エラーを除くすべてを非表示にします。
case 'b':
// ...
showprogress = 0;
quiet = batchmode = 1;
if (!quiet)
printf("Uploading %s to %s\n", g.gl_pathv[i], abs_dst);
この動作を復元する方法はありません。
ただし、スクリプトがデフォルトで単一のコマンドを実行し、出力を使用して結果を確認した場合は、バッチモードなしで実行できます。標準入力を使用してコマンドを渡すだけです。