2011-08-16 48 views
1

我是相對性新手腳本等,但我試圖做一個腳本,將運行在特定的時間,將網絡驅動器備份到非現場的目的地。Linux腳本編寫的問題

我的命令手動工作,並已找出的時機,但試圖運行腳本時,我收到以下錯誤:

cd /volume1/Data 
    lftp -u [username],[password] [Destination] 
    Mirror [directoryname] -R -n 

不能cd到的volume1 /數據,3號線鏡不找到。

我必須檢查大小寫和拼寫。

回答

2

Mirror是lftp的命令,並且lftp的處理結束後,這不會發生,因爲程序是交互式的,並等待輸入的腳本執行它,就好像它是一個外殼命令。你需要做的是通過lftp的命令lftp的標準輸入:

cd /volume1/Data 
echo "Mirror [directoryname] -R -n" | lftp -u [username],[password] [Destination] 

或者,你可以使用的lftp的能力,執行腳本(檢查手冊-f選項)和獨立的lftp命令到一個單獨的文件,然後將此文件傳遞給lftp,或查看-e選項。它允許您將lftp命令內聯到參數列表中。

2

您需要通過mirror命令lftp

cd /volume1/Data 
user=joe 
passwd=foo 
host=myhost 
dir=somedir 

lftp -e "mirror $dir -R -n" -u $user,$passwd $host 
+0

-ash:CD:線路1:斜面光盤目錄 – Ranger

+0

你確定目錄是否存在,你有權限訪問它? – dogbane

+0

它確實有一個它的登錄,如果它包含在腳本中? – Ranger

2

您還可以使用 「立即文檔」 是這樣的:

#!/bin/sh 
host=Destination 
user=username 
pass=password 
folder=directoryname 
cd /volume1/Data 
lftp -u $user,$pass $host << EOF 
mirror $folder -R -n 
EOF 
+0

感謝我們的幫助在這。 – Ranger

+0

仍然會出現錯誤-ash:第6行:cd:cant cd到目錄 – Ranger

+0

這意味着它只是將其更改爲可以寫入的其他目錄(例如,第6行的cd/home/myhome或cd/tmp) – UUlum