2016-10-28 2 views
0

リモートLinuxサーバからログファイルをローカルのWindows PCに(複数の操作を実行した後に)ログファイルをダウンロードするシェルスクリプトを作成しています。書き込み、put、getなど)がリモートサーバーで完了し、ログファイル 'has'が正常に書き込まれた場合、ダウンロードします。私はこのためにwhileループを使用しようとしています。PSFTP(Linux)whileループを実行する方法

これは、私がFTPに保存したファイルの1つがサーバー上に存在するかどうかをチェックしています。存在しない場合(サーバがいつかファイルを削除してログファイルに書き込むため)、ログファイルをダウンロードします。ファイルがまだ存在する場合は、削除されるのを待ってください。以下はスニペットです:

call while [ ! -f /tmp/foo.txt ]; sleep 2; done 
get FileWriter1.log 

問題は、whileコマンドがpftpによって認識されていないことです。私もそれの前に 'コール'を入れてみましたが、それでも動作しません。どうすればそれを動かすことができますか?

ご協力いただきありがとうございます。

答えて

0

psftpにはcallコマンドがありません。

実際にスクリプトはWinSCP scriptのように見えます。

WinSCPにはcallgetの両方のコマンドがあります。

+0

こんにちはMartin、私は早くwinscpを使用していましたが、後でしないと決めました。呼び出しはwinscpで機能していたので、私はpsftpでも動作するかもしれませんが、そうはしませんでした。なぜ 'while'のような特定のコマンドは正常に実行できないのですか?それを実行するための代替構文は何ですか? –

+0

まず、SFTPクライアントでシェルコマンドを実行できると期待していますか? –

+0

こんにちはマーティン、私は今これを理解し始めたと思います。私はシェルスクリプトとLinuxには全く新しいので、SFTPクライアントはget、putなどの他のコマンドと同じようにシェルコマンドをサーバーに送ることができると仮定していました。 –

関連する問題