- ベストアンサー
コマンドプロンプトのFTPコマンドについて質問 | FTPバッチの成功・失敗判断方法について教えてください
- コマンドプロンプトのFTPコマンドを使用して、WindowsサーバからUNIXサーバにファイルを送信するバッチ処理を作成しました。FTPの成功・失敗をログファイルに出力する方法を知りたいです。
- バッチ処理では、FTPの設定ファイルとログファイルのパスを指定し、FTPコマンドを実行しています。FTPの設定ファイルには、サーバのIPやポート、ログインID、パスワード、バイナリモード、プロンプトモード、送信するファイルのパターンを記述しています。
- FTPの実行結果を判断する方法として、ログファイルに「FTPバッチ起動」と「FTP開始」のメッセージを出力し、FTPの実行コマンドをログファイルに追記することで、成功・失敗を判断することができます。また、FTP失敗時にはメール通知を行いたいとのことです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>そもそも、転送元のファイルサイズと、転送したファイルサイズが違っているので、 binモードなのにファイルサイズと転送サイズが違っているのなら、転送が失敗していると言うことです。 >また、相手側の都合上WindowsにFTPサーバを常駐させる事はNGらしく、mgetもできません・・・。 ??こちらがWindowsで、相手がUnix(FTPサーバあり)なのでは? 何の問題も無いと思いますが?混乱してませんか?落ち着いてください。
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
FINDSTR 等でログファイルから自分が成功と判断する文字列を探してあれば成功と見なします。 特に複数ファイルを転送するようなので、何を以て成功とするか難しいでしょうね。 ログに出る転送バイト数とそれぞれのファイルサイズを比較するのでしょうか。 setlocal enabledelayedexpand ・・・・・ set ERR=0 for /f "usebackq tokens=1-8" %%A in ("%logFileName%") do ( if %%A==150 set for /f %%X in (%%H) do set SIZE=%%~zX if %%A==ftp: if not %%B==!SIZE! set /a ERR+=1 ) if not %ERR% == 0 ( エラーがあった時の処理 ) これは私がさっきやってみたログの場合なので、OSが違うと修正が必要な可能性があります。 他には、mput したあと、別のディレクトリに lcd して mget して、元のファイルとコンペアするとか。
お礼
回答ありがとうございます。 どうやら出来ていないようです。 そもそも、転送元のファイルサイズと、転送したファイルサイズが違っているので、 この方法は使えないみたいです・・・。 また、相手側の都合上WindowsにFTPサーバを常駐させる事はNGらしく、mgetもできません・・・。
お礼
>binモードなのにファイルサイズと転送サイズが違っているのなら、転送が失敗していると言うことです。 なるほど。 見た感じちゃんと転送できてそうでしたが、ちゃんと調べる必要がありますね・・・。 >??こちらがWindowsで、相手がUnix(FTPサーバあり)なのでは? 何の問題も無いと思いますが?混乱してませんか?落ち着いてください。 確かに、言うとおりです。 UNIXにmputして、別ディレクトリにmgetしてファイルの個数が一致してたらOKにしようと思います。 明日確認してみます。 また躓いたらよろしくおねがいします。