2013-06-05 153 views
1

我需要使用Shell腳本將文件從一臺服務器移動到另一臺FTP服務器。shell腳本中的FTP filemove

#!/bin/sh 
HOST='ftp.server.com' 
USER='username' 
PASSWD='password' 
FILE='"https://stackoverflow.com/a/b/test.sh"' 
DIR='/x/y/' 

ftp -n $HOST <<END_SCRIPT 
quote USER $USER 
quote PASS $PASSWD 
cd $DIR 
put $FILE 
quit 
END_SCRIPT 
exit 0 

這裏我的問題是,

,我需要選擇從服務器上的文件,並把它放到FTP的特定位置。我的原始文件位於/a/b/test.sh路徑中。這應該被移動到/x/y FTP的路徑。

我在想什麼。我是新的shell腳本。

回答

2

嘗試使用lcd命令來更改本地計算機上的工作目錄。

像這樣的東西:

#!/bin/sh 
HOST='ftp.server.com' 
USER='username' 
PASSWD='password' 
LOCALPATH='/a/b/' 
FILE='test.sh' 
DIR='/x/y/' 

ftp -n $HOST <<END_SCRIPT 
quote USER $USER 
quote PASS $PASSWD 
cd $DIR 
lcd $LOCALPATH 
put $FILE 
quit 
END_SCRIPT 
exit 0 
+0

,如果我有2個文件,如「/a/b/test.sh」和「/a/b/test1.sh」,那麼什麼都是變化我應該使兩個文件都移動到FTP ..? – user2314387

+0

一個選項是使用'FILE1 ='test.sh''和'FILE2 ='test2.sh'。然後'把$ FILE1'和'把$ FILE2'放在一起。第二種選擇是如果FTP服務器支持使用'mput'命令。 –

+0

謝謝..如果文件名是動態生成的,那麼我們可以循環/ a/b/dir並移動到ftp ..?如果是的話,應該是什麼changed.?ftp -n $ HOST << END_SCRIPT 報價USER $ USER 報價PASS $ PASSWD CD $ DIR 液晶$爲 「&了localPath」 條目* 了localPath 做 放到$ ENTRY 完成 退出 END_SCRIPT 退出0.我試過像這樣 – user2314387