2017-02-14 213 views
-1

我試圖從多個文件夾位置本地上傳項目到SFTP站點。我正在使用一個現有的shell腳本,我知道它適用於從一個本地位置上傳,但我無法弄清楚如何使它適用於從多個本地位置上傳。使用Shell腳本將多個目錄中的文件上傳到SFTP站點

我對編碼相當陌生,只有基本的批處理腳本和現有shell腳本的一些小編輯的經驗,所以我將不勝感激任何幫助。

這裏的

open sftp://(userid):(password)@(sftp site) -hostkey="(hostkey)" 

pwd 
ls 
lcd "(local directory)" 
lls 
cd (remote directory) 
ls 
put * -filemask=|*/ ./ 
exit 

這在以前的工作很適合我們我的現有的單本地位置上傳腳本的樣本,但我試圖把它們合併成一個過程來清理我們的一些現有的腳本的那作爲一項自動化任務運行,但我無法弄清楚如何將這樣的多個任務鏈接在一起。

+0

您使用的是什麼SFTP客戶端?你說「shell腳本」,但是你發佈的代碼看起來像[WinSCP腳本](https://winscp.net/eng/docs/scripting)。 –

回答

0

只是重複上傳的代碼爲每個位置:

cd /remote/directory 

lcd /local/directory1 
put * -filemask=|*/ ./ 

lcd /local/directory2 
put * -filemask=|*/ ./ 

但如果這真是一個WinSCP賦予腳本,你可以只使用一個命令,如:

put -filemask=|*/ /local/directory1/* /local/directory2/* /remote/directory/ 

put command的文件:

put <file> [ [ <file2> ... ] <directory>/[ <newname> ] ]

...

如果指定了多個參數,所有除了最後一個指定設置文件的上傳。文件名可以用Windows通配符替換以選擇多個文件。要上傳目錄中的所有文件,請使用掩碼*

最後一個參數指定目標遠程目錄,並可選擇使用operation mask以不同名稱存儲文件。目的地目錄必須以斜槓結尾。 ...