• 締切済み

シーケンス順にget (ftp)

シーケンス順にget (ftp) こんにちは。 当方Windows 2003 Server、相手はWindows系でIIS6.0という構成でFTPで通信を 行いたいと思います。 相手側の所定のフォルダーに、例えば MB001.txt MB002.txt MB003.txt という具合にファイルが格納されています。 これを、当方側がgetで引き取りたいのですが、このときの仕様として、 ・シーケンス順を守りたい(例で言うと001から順に) ・引き取った後はデータを削除する があります。 そこで、シーケンス順を守る形でgetでき、getできたファイルだけを削除する方法が あれば教えてく頂きたいと思います。 どうぞ宜しくお願い致します。

みんなの回答

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

なぜ順番にgetする必要があるのかわかりませんが、getした先に存在するファイルを削除するようにしておけばいいんでしょ。 getするftpと削除するftpと2回実行すればいいだけのこと。

YT0925
質問者

お礼

Listをファイルに出力し、その情報を基にgetしたファイルだけを 削除するようにしました。

関連するQ&A

  • FTPファイルのget後のファイル削除について

    IIS7.5とWindows Server 2008 R2でFTPサーバーを構築しています。 FTPサーバーにファイルを保存して、そのファイルをお客様がFTPサーバーに 接続してgetします。 その際に、同じファイルが2回get出来ないように、getされたファイルのみを 削除したいと考えています。 また、getされた場合だけ削除したいので、getされていないファイルの削除は 出来ない為、コマンドによる自動削除は行えません。 getされた場合にのみ該当ファイル削除するようなソフトや方法などがあれば お教え下さい。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • FTPでのGET

    サーバ上にあるファイルをFTPのGETでダウンロードする場合、 転送中のサーバ上のファイルは、どうなるのですか? 切り取りで転送することは可能ですか? サーバ側では、 クライアント側で転送中であるかどうか、 もしくは削除して欲しいのですが。 転送中に、そのファイルを触れないようにするため。

  • FTPの”GET”について

    2つのサーバー間において、FTPサーバーは両方に入っているのですが、 片方のFTPはサービスを停止しています。残りの一方から、停止している 側へFTPのGETを使って、ファイルを取っているようなのですが、どういう 仕組みなのでしょうか。相手方にFTPサービスが稼動していなくても、 こちら側のFTPからファイルをもってくることが可能なのですか? どのなたかよろしくお願いします。

  • FTPコマンドでgetしたい

    FTPコマンドでファイルを転送したい。操作はクライアントで行っています。 サーバ⇒クライアントです。ディレクトリー構成は。(サーバー側)c:\2.txt を⇒(クライアント側)c:\2.txt に転送したいのですがエラーが出ます。次のように実行しています。 ftp>get c:\2.txt c:\2.txt としています。これを実行すると次のエラー 【550 c:\2.txt :The filename is incorrect】 と出ます。どうすればよいでしょうか? ファイルタイプもascii にしたりbin にしたり試しているがだめです。 お願いします。

  • FTPのgetとputの使いわけ。

    FTPについてですが、getとputのどちらを使えばいいのかいまいち理解できません。FTPで入ったマシンからみてget,putなのか、ファイルのある側からみてget,putなのかどちらなのでしょうか? 教えてください。

  • FTPクライアントからのバッチ起動は可能??

    Windows2003ServerのIISでFTPサイトを立ち上げています。 この度、所定のフォルダからファイルをコピーした後に、 コピーしたファイルをGetする必要が生じました。 あまり、長々と書くとややこしくなるので要件を簡潔に述べます。。。 要するに、 FTPクライアントからFTPサーバ側のローカルにあるBatファイルを起動することは可能でしょうか? 可能だとしたらどのような方法があるのでしょうか? ちなみにポートは21番しか通信できない状態です。 どなたか知識をお持ちの方お助け下さい。 何卒よろしくお願い致します。

  • phpのftp_get()でエラーが出ます。

    今回phpを使ってftp関数であるftp_getを実行してみたところ【Warning: ftp_get(): Error opening】が出てきました。 サイトで調べた結果、パスの指定のミスかパーミッションが原因だと言うことがわかりました。 それから小一時間あれこれ試してみましたがダメでした・・・。 そこで今度はperlを使って同じ内容のスクリプトを書いてみると成功しました。 どなたかphpの方ではなぜ正しく動作出来ないのかをご教示ください。 以下はphpとperlのスクリプトです。 =========================================================================== <?php $FTPSERVER = "!!!"; $FTPUSER = "@@@"; $FTPPASSWORD = "***"; //ftpサーバに接続 $ftp = ftp_connect($FTPSERVER); //ユーザログイン ftp_login($ftp, $FTPUSER, $FTPPASSWORD); ftp_pasv($ftp, true); $srverfile = "test.txt"; $localfile = "data1.txt"; ftp_get($ftp, $localfile, $srverfile , FTP_BINARY); ftp_quit($ftp); ?> ============================================================================ #!/usr/local/bin/perl use Net::FTP; my $host = '!!!'; # 接続先 my $user = '@@@'; # FTPのユーザ my $pass = '***'; # FTPのパスワード my $remote_file = 'test.txt'; # リモートのファイル(これを取得) my $local_file = 'data1.txt'; # ローカルファイル(ここに保存) my $ftp = Net::FTP->new($host) or die "can not connection: $@"; $ftp->login($user, $pass) or die $ftp->message; # ログイン $ftp->binary; # バイナリモードに変更 $ftp->get($remote_file, $local_file) or warn $ftp->message; # ファイル取得 $ftp->quit; # 終了

    • 締切済み
    • PHP
  • ftpのgetが正常できる方法について

    約100Mバイトのログファイルの差分をとるため、下記のバッチファイルとteratermマクロを実行させました。 やり方は、差分をとりたい2つのログをfptにてサーバーへ転送し、サーバーでsdiffを実行し、差分結果をftpにてとってくるものです。 バッチファイル  echo open xx.xx.xx.xx > "%~dp0put.txt"  echo abcdef >> "%~dp0put.txt"  echo pwabe >> "%~dp0put.txt"  echo put log1 log1 >> "%~dp0put.txt"  echo put log2 10g2 >> "%~dp0put.txt"  echo quit >> "%~dp0put.txt"  ftp -s:"%~dp0put.txt"  del "%~dp0put.txt"  "c:\ProgramFiles\teraterm\ttpmacro.exe" "%~dp0sdiff.ttl"  cho open xx.xx.xx.xx > "%~dp0get.txt"  echo abcdef >> "%~dp0get.txt"  echo pwabc >> "%~dp0get.txt"  echo get kekka kekka >> "%~dp0get.txt"  echo del log1 >> "%~dp0get.txt"  echo del log2 >> "%~dp0get.txt"  echo quit >> "%~dp0get.txt"  ftp -s:"%~dp0get.txt"  del "%~dp0get.txt"  exit/b teraterm macro (sdiff.ttl)  connect'xx.xx.xx.xx.:xx/ssh/2/auth=/user=abcdef/passwd=pwabc'  wait'$'  sendln 'sdiff logl log2 > kekka'  sendln 'mv kekka kekka1'  sendln 'perl -pe "s/\n\r\n/"kekka1 > kekka'   wait'$'  sendln 'rm kekka'  sendln 'rm kekka1'  Sendln 'logout'  end ここから相談です。 ftpでgetしてきた差分は、ログの頭から3分の1程度しかなく、全ての差分をとることができませんでした。 調査したところ、サーバー側はログ全ての差分を取れていることを確認しました。 なぜ、ftpで作業結果をgetすると、3分の1しかないのか原因がわからないまま、試行錯誤で対処方法を見つけたのが次の方法です。 方法1(teraterm macroの変更1)  次のようにwait'$'を追加する。  sendln 'sdiff logl log2 > kekka'  wait'$'  sendln 'mv kekka kekka1'  wait'$'  sendln 'perl -pe "s/\n\r\n/"kekka1 > kekka' 方法2(teraterm macroの変更2)  次のように20秒のpauseをとる。  sendln 'sdiff logl log2 > kekka'  pause 20  sendln 'mv kekka kekka1' 方法1も方法2もタイミングを取るような方法ですが、このやり方で、なぜftpでgetした差分結果が正常(ログすべての差分が取れている)になるのかがわかりません。本当にこの対処でよいか判断できません。 どなたか上記方法でよい理由がお解りでしたら、教えてください。

  • プロキシサーバー経由でftpのgetを行う方法

    社内LANからプロキシサーバーを経由して、外部のサーバにあるファイルをftpでgetしようとし ています。 方法としては、定期実行するためにスクリプトで下記のようなテキスト(ftpcmd.txt)を作成し、 バッチファイル(auto.bat)でftpコマンドを実行する予定です。 <ftpcmd.txt> open xxx.xxx.xxx.xxx user1 passwd1 ascii get /logfiles/todaylog.txt quit <auto.bat> ftp -s:ftpcmd.txt ここで、質問なのですが、上記のような方法を用い、プロキシサーバー経由でftpを使ったgetを 行うには、どのように行えばいいでしょうか。または、DOSコマンドを使って、行うことは無理な のでしょうか。その場合、ほかにはどのようなやり方が考えられるでしょうか。どなたか、ご助言 いただけませんでしょうか。

  • VBSでFTPを記述できますか?

    OSはWIN2K PROですが、 FTPサーバーより、あるファイルをGETする バッチファイルを作成しました。 ftp 172.16.1.1 get test.txt c:\temp\get.txt バッチファイルで作成したのですが、 VBSでFTPサーバーよりファイルをGETする ということは可能でしょうか? 初心者ですが、よろしくお願いいたします。