• 締切済み

ftpのタイムアウト指定

バッチファイルから ftp -s:ftpcmd.txt のようにos標準添付のftpコマンドを使用しているのですが ftpコマンドにはタイムアウト時間の指定はないのでしょうか? 以前ftpで通信したところ2日間終了せず ずっと動きつづけていた事があります 一定時間でタイムアウトするようにしたいのです ダイムアウトする方法について教えて下さい

みんなの回答

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.1

ご利用環境を明記していただかないと、回答が難しいです。 例えば、こちらの事例のように、60秒でタイムアウトする場合もあります。 http://support.microsoft.com/kb/888769/ja

ken090301
質問者

お礼

回答ありがとうございます 環境はFTPクライアント側がwindwos2003R2です FTPサーバ側がwindows2003R2のiisについているftpです 転送するファイルは数mb程度のものです 年に数回程度なのですが ftpを起動しているバッチファイルが終了しないでフリーズする事が あります どういった場合にタイムアウトになり どういった場合に永遠にフリーズ状態になってしまうのかが よくわからないのです

関連するQ&A

  • ftp受信確認

    FTPサーバはwindows2003のIISです FTPクライアントはwindows2000,xpの標準添付のftpコマンドです バッチファイル中でFTP -S:C:\FTPCMD.TXT みたいな感じで起動していますが FTP正常・異常にかかわらず常にERRORLEVELは0が 返ってきます なんとかバッチファイル中で正常通信できたか できないか判断したいのです その判断方法をアドバイス下さい ※その他の手段として  バッチファイルでコマンド起動できるFTPクライアントソフト  (できればフリー)を使えばERRORLEVELが返ってくるよという  ものがありましたら紹介頂けると嬉しいです もしくは ProFTPDが転送中のファイルを".in.{ファイル名}"として、転送完了すると"{ファイル名}"に変更する機能がある そうですがこれと同じような機能はIISのFTPにはないのでしょうか? 設定を探してみましたが見つかりませんでした (FTPサーバーはIIS以外に変更できません)

  • dosコマンドでのftp接続について

    コマンドプロンプト上でのftp接続について教えてください。 いろいろと調べて ****************************** [ftp.bat] ftp -s:ftpcmd.txt [ftpcmd.txt] open "IPアドレス" "ログイン名" "パスワード" put test.txt bye ****************************** でできることがわかりました。 しかし、上記のような方法の場合、ftpcmd.txtの中身を参照してしまうと使用者にアカウント、パスワードがわかってしまいます。 使用者にアカウント、パスワードがわからない形でコマンドプロンプト上でのftp接続ほうほうはないでしょうか。 (例えば、ftpcmd.txtを暗号化するとか…) ご教授をお願いします。

  • wshで起動したコマンドををタイムアウト終了させる

    たとえば以下のようなバッチファイルとvbsファイルを用意して test.batを実行した場合 ftpのダウンロード処理が完了した後 ダウンロードしたファイルを処理したいのです 以下のようにすれば処理待ちになるのでそこは 実現できるのですが ftp.exeがなんらかの原因で稀に終了しない事があるので そうなるといつまでも処理待ちになってしまうので タイムアウトさせたいのです ftpコマンドをあえてquitしないで(終了しない状態を再現させる) WScript.timeout=10 をいれてみて試してみたのですが タイムアウトが有効になりません ftpのプロセスは最悪残ってしまってもかまわないのですが 起動をかけたバッチファイルのほうは永遠待ち状態ではなく 一定時間応答がなければ次の処理に移したいのです 何かいいタイムアウトの実装方法はないでしょうか? アドバイスお願い致します test.bat cscript test.vbs ←ここでftp.exeが終了しないと永遠待ち状態になってしまう rem ftpが完了後に行いたい処理 exit test.vbs WScript.timeout=10 CreateObject("WScript.Shell").Run "CMD.exe /C ftp -s:c:\cmd.txt", 1, True

  • Windows マシンでFTPバッチが動かない

    Windowsサーバから、UNIXサーバにFTPでファイル取得しようとすると、エラーがでてすすみません。 コマンドプロンプトで 対話的に動かす分には問題なく動作するのですが、バッチで動かすと エラーがでてしまうのです。 動かそうとしているバッチファイルとその読み込みスクリプトは以下です。 (変数部分はぼかしています) ==== myftp.bat BGN ==== set dirname=%DATE:/=% mkdir D:\master\%dirname% ftp -s:ftpcmd.txt ==== myftp.bat END ==== ==== ftpcmd.txt BGN ==== open hoge user_naem pass_word bin lcd D:\master get file.txt quit ==== ftpcmd.txt END ==== これらを動かすと、 スクリプト ファイル ftpcmd.txt を開くときにエラーが発生しました。 というエラーがでて前に進みません。 対話ベースでは、ftpcmt.txt ファイルの内容をコピペして、きちんと動くので、 何が原因がわかりかねています。 どなたか知恵を貸してください。

  • バッチファイルからftpを実行時に処理完了を待たない方法

    ある市販のjava系のアプリから時間起動でバッチファイルを起動します そのアプリは同時に複数のバッチファイルを起動できない仕様で ある外部プログラム(バッチファイル)を起動したら処理の完了を 待ってから次の処理バッチファイルを起動するのです 同時起動はできません なので最初に起動したバッチファイルがフリーズしてしまうと 次のバッチファイルが起動できずに永遠と待ち状態になってしまうんです そのソフトのメーカーに問い合わせしてみたのですが 呼び出し側はタイムアウトさせるような設定はない仕様なので 呼び出ししたプログラムのほうでタイムアウトするようにして下さい という回答でした なんとか回避しようと そのバッチファイルは ftp -s:c:\cmd.txt というようにftpコマンドを利用しているのですが (稀に何らかの原因でftpがフリーズしてしまう現象があります) ftpコマンドがフリーズしてしまったらどうしょうもないですよね・・・ この現象を回避したくて バッチファイルを start ftp -s:c:\cmd.txt exit に変更しました こうすればftpの完了を待たずにバッチファイルが終了するので たとえftpの処理が一つフリーズしてしまったとしても 別のバッチファイルの起動は問題なく行えると考えたからです しかしその市販アプリが内部的にどのようにバッチファイルを起動しているかわからないのですがテストしてみましたところ (ftpのコマンドをわざとquitしないようにして終了しないftp処理にして バッチファイルを起動してみたのです) 結果としては起動したバッチファイルが完了したとはみなしてくれず 次のバッチファイル起動ができないまま永遠に待ち状態になってしまいました・・・ バッチファイルからftpコマンドを別プロセスで起動する (ftpの完了を待たずにバッチファイルを終了させる) という事はできないでしょうか? アドバイスお願い致します

  • バッチ処理でftpから自動的にダウンロード

    バッチ初心者です。 バッチを使用してLAN内のftpサーバーからcsvを別のマシンのフォルダへ定期的(10分毎)にダウンロードするようにしたいのです。 テキストファイル(ファイル名ftpcmd.text)に以下のように記述しました。 open 「ftpサーバーのIPアドレス」 「ユーザー名」 「パス」 mget*.csv quit バッチファイル(auto_ftp.bat)に以下のように記述しました。 ftp -i-s:ftpcmd.txt ダウンロード先の指定と10分毎に実行させるにはどのようにすればいいですか? 宜しくお願いします。

  • SolarisからWindowsへFTPするときのオプション

    Solaris8上でftpコマンドに関するのシェルを作成しています。 処理概要はSolaris上にあるファイルをWindwosのFTPサーバーに送信したいのです。そのFTP処理時、FTPの一連のコマンドを記入したテキストファイルを指定して実行したいのです。Windows上でバッチ処理をするときは、以下のように処理しています。  ftp -s:xxxx.txt  (ここでxxxx.txtには、ftpコマンドが記入) Solaris上でftpのオプションをmanで確認したいのですが、それらしきものがありませんでした。  よろしくお願いします。

  • バッチファイルにてFTPで指定したファイルを取得する

    OSはWindoswXPProです。 以下のようなBATファイルとバッチファイルを作成しました。 ---FTP.bat--- echo off ftp -s:get.ftp ---get.ftp--- open 10.0.X.X username password cd /log get log.yymmdd(実際には日付) c:\access_all_log.txt quit logというディレクトリには日次でログファイルが作成され ファイル名としてlog.yymmddと名づけられています。 やりたいことは2つあります。 1つめはftpするファイル名の日付部分をコマンドなどから 範囲指定して取得するファイルを指定できないか。 (たとえば070301~070315のファイルを一括で取得したい) 2つ目はftpでのファイル取得終了後に続いて バッチスクリプトを流したいのですが、その方法。 お分かりになる方いらっしゃいましたらよろしくお願いいたします。

  • ftpコマンドバッチファイルのリダイレクト結果

    以下のようなバッチファイルを作成しました ftp -s:ftpcmd.txt > ftplog.txt FIND /i "226 Transfer complete" ftplog.txt >NUL exit /b %ERRORLEVEL% ftpcmd.txt open hoge anonymous hoge prompt cd /xxxx/ put test.txt quit こうする事でftp送信が正常に終了したかどうかを exitの終了コードで判断しようとしていたのです バッチファイルを手動で動作させたところ成功です しかしこのバッチファイルを Webサーバのサーブレット(javaプログラム)から 動作させるとftplog.txtの出力結果がなぜか プログラムから実行した時のftplog.txt User (hoge:(none)): open hoge prompt cd /xxx/ put test.txt quit こんな結果になってしまうんです あれれ?ftpコマンドが出力するメッセージがリダイレクトされない んです 手動でこのバッチファイルを実行した時は 以下のようになります 226 Transfer complete. のメッセージがサーブレットからバッチファイルを実行しても ftplogファイルに出力されるように したいのですが 何かいい方法はないでしょうか? 手動実行した場合のftplog.txt ftp> Connected to hoge open hoge 220 Microsoft FTP Service User (hoge:(none)): 331 Anonymous access allowed, send identity (e-mail name) as password. 230 Anonymous user logged in. ftp> Interactive mode Off . ftp> prompt cd /xxx/ 250 CWD command successful. ftp> put test.txt 200 PORT command successful. 150 Opening ASCII mode data connection for test.txt. 226 Transfer complete. ftp: 59523 bytes sent in 0.00Seconds 59523000.00Kbytes/sec. ftp> quit 221

  • フリーFTPソフトBASP21のタイムアウト

    現在、こちらで(↓)提供されているフリーのFTPライブラリ「BASP21」を使用して http://www.hi-ho.ne.jp/babaq/index.html FTPでのファイルダウンロードを行なっています。 OSはWindowsXP、開発言語はVB6.0です。 使い方はいたってシンプルで、抜粋したソースを以下に示します。 ' FTPオブジェクトの生成 Set FTPObj = New BASP21Lib.FTP ' コネクト (各変数には適切な値が入っています) rResult = FTPObj.Connect(URL, User, Pass) ' 指定ファイルの受信 rResult = FTPObj.GetFile(RemoteFilePass, LocalFilePass) ' FTPオブジェクトの破棄 Set FTPObj = Nothing この処理をファイル数分(RemoteFilePass/LocalFilePass)、繰り返しています。 Connect関数で指定するタイムアウト時間は、10秒としています。 するとなぜか、最初の1個目のファイルだけタイムアウトエラーとなってしまいます。 2個目以降のファイルは問題なく受信できています。 試しにタイムアウト時間を30秒にすれば1個目のファイルも受信できるのですが、 OpenLog関数で出力されるFTP実行ログを見ますと、最初の1個だけGetFile関数 に21秒もかかっており、 (1) RETR /ファイルパス (2) 150 Opening ASCII mode data connection for /ファイルパス ※(1)と(2)の間が21秒かかっている 2個目以降のファイルは1秒以下で受信できています。 どうして最初の1個だけ異常に長い時間がかかっているのか分からず、悩んでいます。 環境的な問題(FTPサーバとか、BASP21とか…)なのでしょうか? もし心当たりのある方がいらっしゃいましたら、ヒントや、回避方法のアドバイスなど 頂ければ大変助かります。 ちなみに、BASP21は最新版を使用しています。 以上、よろしくお願い致します。

専門家に質問してみよう