Shell-Script
SFTP腳本未下載所有文件
我有一個包含以下詳細資訊的 sftp 文件腳本,我的伺服器文件夾如
BCP11,BCP12,BCP13,BCP14.....BCPXX
. 在哪個BCPDUMP
文件夾中有文件。文件名 :
file_sftp.sh
#!/usr/bin/expect spawn sftp user@xx.xxx.x.xxx expect "user@xx.xxx.x.xxx's password:" send "password\n" expect "sftp>" send "get *Backup/GetBackup/BCP*/*BCPDUMP/20150925/20150925_profile*\n" expect "sftp>" send "bye\n"
當我執行這個腳本時,我只得到一個文件,而伺服器大約有 12 個文件。我得到低於腳本輸出。
spawn sftp user@xx.xxx.x.xxx Connecting to xx.xxx.x.xxx... Password: sftp> get *Backup/GetBackup/BCP*/*BCPDUMP/20150925/20150925_profile* Couldn't get handle: No such file or directory^M Couldn't get handle: No such file or directory^M Couldn't get handle: No such file or directory^M Fetching /rsi/Backup/GetBackup/BCP10/BCPDUMP/20150925/20150925_profile_410.list.Z to 20150925_profile_410.list.Z ^M/rsi/Backup/GetBackup/BCP10/BCPDUMP/20150925/20150925_profile_410.list.Z 0% 0 0.0KB/s --:-- ETA^M/rsi/Backup/GetBackup/BCP10/BCPDUMP/20150925/20150925_profile_410.list.Z 66% 1152KB 1.1MB/s 00:00 ETA^M/rsi/Backup/GetBackup/BCP10/BCPDUMP/20150925/20150925_profile_410.list.Z 100% 1730KB 864.9KB/s 00:02
由於您正在嘗試檢索目錄,因此您應該使用
get -r
. 試試看。
如果您已經知道目錄 BCP* 和 *BCPDUMP 的名稱,請嘗試對所有 ( * ) 使用此字元一次。
如果您認為在不同的行中鍵入目錄名稱不是一個好主意,您可以使用該
ls
命令列出所有目錄並將它們放入一個數組中,之後您將為每個不同目錄或不同的數組值下載所有可用文件小路。