- PR -

LinuxとWindowsサーバ間での安全なファイル交換方法

1
投稿者投稿内容
うぐいす
会議室デビュー日: 2004/01/21
投稿数: 2
投稿日時: 2004-01-28 10:56
ども。LinuxとWindowsサーバ間でファイル交換方法について質問です。
FTPサーバをLinuxで運用するのですが、Windowsからファイル書込みが完了した
ことをLinux側でどのように検知するか。またその逆はどうするか。各々タイマー
制御でディレクトリを監視する方法だとファイル書込みが完了しないうちに読み出し
たりするのをどうやって制御するか悩んでいます。なにかいい方法ないでしょうか。
Redhat 9 + proftp + jdk1.4 + perl5.8 + etc.
Windows2000 server + VB6 + etc.
uzzra
会議室デビュー日: 2003/12/08
投稿数: 7
投稿日時: 2004-01-28 21:46
色々な方法がありますが、
たとえばLockファイルを使うだけでも良くないですか?

1. WindowsからLockファイル(たとえば lock.txt)をftpサーバ上にput
2. Windowsから目的のファイルをput
3. ftpサーバからlock.txtを削除

で、Linux側は
lock.txtがあるかどうかを見てから処理。
J-Forrest
会議室デビュー日: 2004/04/03
投稿数: 2
投稿日時: 2004-04-04 00:18
たいていのftpサーバでは転送が終了したらログを残せるはずです。

Linuxの場合、ログサーバに syslog-ng を使うとログ中の文字列とパターンマッチをかけ、プログラムを起動したり、パイプに流したりすることができます。
(私はWindowsではどうなのかは、使用したことがないので、わかりません。)
ちいにぃ
大ベテラン
会議室デビュー日: 2002/05/28
投稿数: 244
投稿日時: 2004-04-04 13:18
引用:

J-Forrestさんの書き込み (2004-04-04 00:18) より:
たいていのftpサーバでは転送が終了したらログを残せるはずです。



ちょっと試してみました。(Linuxではなく、Cygwinのproftpd 1.2.9-1ですが)
ProFTPDの場合、ログ出力の内容をある程度カスタマイズできるので、次のように
すれば検出できそうです。

1) LogFormatディレクティブででファイルのアップロードに関する情報のフォーマットを
作成。
2) ExtendedLogディレクティブで、1)で作ったフォーマットを使ってファイルの書き込みの
ログを出力するように設定。

例えば、proftpd.confに次の設定を追加すると、

LogFormat checkwrite "%t %u %s %f %m"
ExtendedLog /var/log/proftpd.write.log WRITE checkwrite

/var/log/proftpd.write.logに次のログが残ります。

[04/Apr/2004:12:56:46 +0900] username 226 /home/username/testdata STOR


ProFTPDについてはこちら。
http://www.proftpd.org/docs/directives/linked/config_ref_ExtendedLog.html
http://www.proftpd.org/docs/directives/linked/config_ref_LogFormat.html
http://www.infoscience.co.jp/technical/proftpd/reference.html#ExtendedLog
http://www.infoscience.co.jp/technical/proftpd/reference.html#LogFormat

FTPの規格(Reply codeやmethod)についてはこちら。
http://www.ietf.org/rfc/rfc0959.txt
http://hp.vector.co.jp/authors/VA002682/rfc959j.htm
http://www.atmarkit.co.jp/fnetwork/rensai/netpro10/netpro01.html
http://www.atmarkit.co.jp/fnetwork/rensai/netpro11/netpro01.html
1

スキルアップ/キャリアアップ(JOB@IT)