2017-02-14 7 views
-1

複数のフォルダの場所からローカルにSFTPサイトにアイテムをアップロードしようとしています。私が知っている既存のシェルスクリプトを使用していますが、ローカルの単一の場所からのアップロードにはうってつけですが、複数のローカルの場所からアップロードするための方法を理解できません。シェルスクリプトを使用して複数のディレクトリからSFTPサイトにファイルをアップロードする

私はかなり新しくコーディングしており、バッチスクリプティングの基本的な経験と既存のシェルスクリプトのマイナーな編集しかないので、私は何か助けていただければ幸いです。ここで

これは、以前に私たちのためによく働いた

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

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

私の既存の単一のローカルの場所のアップロードスクリプトのサンプルですが、私は1つのプロセスにそれらを組み合わせることで、当社の既存のスクリプトの一部をクリーンアップしようとしていること自動化されたタスクとして実行されますが、このような複数のタスクを連鎖させる方法を理解することはできません。

+0

どのSFTPクライアントを使用していますか?あなたは "シェルスクリプト"と言うが、投稿したコードは[WinSCPスクリプト](https://winscp.net/eng/docs/scripting)のように見える。 –

答えて

0

ただ、場所ごとにアップロードコードを繰り返す:

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

参照してください:それは本当にWinSCPのスクリプトだ場合、あなたは次のようにただ一つのコマンドを使用することができますが

cd /remote/directory 

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

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

put commandのドキュメント:

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

...

以上のパラメータは、すべてのアップロードするファイルのセット指定し、最後の1を除いて、指定された場合。ファイル名はWindowsワイルドカードに置き換えて複数のファイルを選択できます。ディレクトリ内のすべてのファイルをアップロードするには、マスク*を使用します。

最後のパラメータは、ターゲットリモートディレクトリを指定します。オプションで、ファイルを別の名前で保存する場合は、operation maskを指定します。宛先ディレクトリはスラッシュで終わる必要があります。 ...

関連する問題