2013-06-24 54 views
0

考慮下面的腳本爲什麼ftp腳本失敗,/ home/dbadmin是目錄錯誤?

ftp -n $HOST <<END_SCRIPT 
quote USER $USER 
quote PASS $PASSWD 
cd /home/dbadmin/backup 
mput *.gz 
quit 
END_SCRIPT 

mput *.gz從目錄/backups包含此錯誤*。廣州的文件,結果:

mput t1.gz? mput t2.gz? ./temp.sh: line 14: /home/dbadmin: is a directory

我不知道如何改變腳本,而不put個別文件名稱。我想要mput這個目錄下的所有文件。

通過在END_SCRIPT之後放置0退出,錯誤消失了,我對這種情況發生的原因感興趣。

+0

該腳本的第14行是什麼? – loentar

+0

第14行是腳本的結尾,什麼都沒有。 – octopusgrabbus

回答

0

怎樣將mput替換爲生成的put

ftp -n $HOST <<END_SCRIPT 
quote USER $USER 
quote PASS $PASSWD 
cd /home/dbadmin/backup 
$(find *.gz -maxdepth 0 -type f -printf 'put %p\n') 
quit 
END_SCRIPT 

它是如何工作的:

的時候,這裏-IS文檔將得到解決,find *.gz ...會產生多行的每個文件由面具*.gz發現:

put 1.gz 
put 2.gz 
... 

和腳本內容將執行ftp將如下所示:

quote USER your_user_name 
quote PASS your_passwd 
cd /home/dbadmin/backup 
put 1.gz 
put 2.gz 
... 
quit 

關於/home/dbadmin: Is a directory我相信你的腳本中有單行/home/dbadmin(或類似$SOME_COMMAND /home/dbadmin)。