2017-04-10 251 views
1

我想從遠程sftp位置下載一個,所以爲此我正在使用下面的腳本。sftp文件下載腳本

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

的問題是在遠程服務器中的一些信息味精配置,當你登陸服務器,所以因爲這個密碼發送這條短信來自於屏幕前。

+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

謝謝,原因不同,期望命令有默認超時10秒,遠程服務器持有60秒。在密碼提示窗口之前。現在我把它設置爲'設置超時100'。現在它的工作正常。 –