2017-04-10 6 views
1

私はリモートのSFTPの場所からダウンロードしようとしていますので、これは以下のスクリプトを使用しています。あなたは、サーバーにログインするとき、このテキストが画面に来る前にあるため、このパスワードを送信してsftpファイルのダウンロードスクリプト

#!/bin/bash 
expect -c " 
spawn sftp [email protected] 
expect \"password\" 
send \"[email protected]\r\" 
interact " 

問題は、リモートサーバーにいくつかの情報のMSGのconfigureです。

+0

パスワードを送信した後ならば、 '\期待していないものを「[email protected]:\」' – Jpsh

答えて

2

これを試してみてください -

#!/usr/bin/expect 
export PASSD="[email protected]" 
expect -c 'spawn sftp [email protected]; 
expect "*Password: "; 
send "$env(PASSD)\r"; 
expect "sftp>"; 
send "cd /home/user \r"; 
expect "sftp>"; 
send "get file.txt \r"; 
expect "sftp>"; 
send "bye \r"' 
+0

は、実際に彼らは前に画面上に来るいくつかのプライバシーポリシーを設定していますパスワードを要求し、画面を60秒間保持します。私たちのパスワードは、パスワードを求めるプロンプトが来る前に送信されます。 –

+0

@DeepeshUniyal - 更新された回答を確認してください。同社のp.p.を無視するように働く。メッセージ。 –

+0

ありがとう、理由は異なっています、expectコマンドにはデフォルトタイムアウトが10秒、リモートサーバーに60秒間保持されています。パスワードプロンプトウィンドウの前に。今はタイムアウト100を設定しました。今は正常に動作します。 –

関連する問題