私は私たちのネットワークにリモートファイルをコピーするために毎日のFTPジョブを含むスクリプトを使います。 FTPがハングすることがありますが、その理由を理解したいのですが。
私の会社のFTPサイトにアクセスするには、WindowsのコマンドラインFTPを使用します。ほとんどの日、それはうまくいきます。たまには、FTPが接続してユーザーとパスワードの入力を求め、その後、私のスクリプト内で、またはWindowsコマンドラインからハングアップします。エラーは返されません。コマンドラインからFTPを実行する場合は、FTPコマンドラインと対話できます。たとえば、入力した場合は「ls」と表示されますが、コマンドは実行されません。試みはまだハングします。スクリプト内からFTPを実行した場合、スクリプトは無期限にハングします。私たちのオフィスマネージャが物理的にFTPサーバを再起動すると、FTPは再び機能しますが、それまで私のスクリプトは実行できず、他のftp以外のタスクの世話をすることもできません。私はFTPサーバーにアクセスすることができず、オンサイトでのITサポートもありません。そのため、以下の質問についての洞察があれば、これを回避したり解決策を提案するのに役立ちます。私はWindowsのコマンドラインにこだわっていて、他のFTPクライアントをインストールすることはできません。
1)FTPがハングしたとき何が起きていますか? FTP接続時にエラーが発生しないのはなぜですか?
2)接続前にFTPがハングするかどうかをテストする方法はありますか?私のスクリプトはFTPジョブをスキップするか、または再起動を要求するためにオフィスマネージャに電子メールを送ることができます。
3)FTPコマンドがアクティブになっている時間を制限する方法はありますか?現在は無期限にハングしていますが、タイムアウトになった場合は私のスクリプトを続行できます。
L
そして S
あなたのキーボードでは、彼らは画面に表示されますか?これは、入力した場合とは異なりますか quux
、 zaphod
または beeblebrox
? (2)(Ctrl)+(C)または(Ctrl)+(Break)を押してブレークアウトできますか。 (3)ブレークアウトした場合、または新しいウィンドウ(または別のホスト)に移動してからやり直した場合、どうなりますか? (突然、奇跡的に機能しますか、それともまだハングしますか?)コメントで回答しないでください。 編集する より明確でより完全なものにするためのあなたの質問。
sleep
コマンドがある場合は、 timeout
コマンド、または ping
(シミュレートする sleep
)、 taskkill
。私はそのようなことを書くことができるかもしれません、しかし、私はそれにいくらかの時間を費やす必要があるでしょう、そして彼らの睡眠中にそれをすることができる人々がここにおそらくあります。