ある目的のためFTPサーバーが受け取ったファイルを受け取った直後に必要な処理をするため、処理をするプログラムを受け取ったファイルを引数にして起動したいのですが、具体的にどうすればいいのでしょうか?
現在その方法がわからないので、crontab を使ってFTPで受け取るディレクトリを監視し新しいファイルが出来てたら処理を開始しているのですが、FTPの受信かた直ちに処理を開始出来た方がいろいろ都合がよいのです。
なにか方法がありそうな気もするのですが、分かりませんでした。ご存知の方がおられましたらお教えください。
No.3ベストアンサー
- 回答日時:
そもそも
・正しくファイルが転送されて、かつ、正しくディスクにファイルが書き込まれた
っていう確証を得るのがFTPでは難しいと思うので私は、#1さんのおっしゃりように賛成です。
そんな訳で以下は上記を無視して都合のいいように転送と書き込みもろもろがうまく処理されている前提でのものです。ま、ただのアイデアですね。
1. ファイル監視のタイミングを短くする
cronから呼び出す(例えば)シェルスクリプトでループ処理とsleepを使えばすぐ出来ます。スクリプト自体も2重起動しないようにしておけばよりベターですね。「ファイルの監視処理が重い」とありますが(サーバスペックが分からないのでなんともいえませんが)やり方によってはそんなに重くないと思うんですけどねぇ。どうやって監視しているかによりますけど。
2. ファイルの存在ではなくてxferlog(当然転送処理を出力させる)を監視する
ログ監視プログラムは結構あります。Logsurferだったりswatchあたりが有名です。ログに特定のキーワードが出力されればコマンドを実行出来ます。しかし、常駐するものが増える点では同じですのでsyslogデーモンをsyslog-ng辺りに変えてしまうのもいいかもしれません。これはログの文言をトリガーにコマンドを実行出来ます。最近のディストリビューションでは含まれているものもありますね。あとswatchとかはログローテ時にはまる場合もあるんで注意が必要です。
3. まず許されてないんじゃないかと予想しますが相手にsshで入ってもらって処理をキック
不定期とはいえpushする側は転送処理の終了タイミングは分かるんですからお奨めなんですが。。。
プログラムを自作~とありますが、wrapperを作るぐらいならwu-ftpdのソースに手を入れて転送終了時に外部コマンドを実行するようにした方が断然楽だと思いますよ。
No.2
- 回答日時:
シェルでncftpgetなどコマンドラインftpで
受け取れば、時系列的な処理なので受け取った
あとに次の処理にうつりますね
サーバー側が常にファイルを監視する仕組みは
サーバーの負担も大きいでしょうし、あまり
実用的ではない気がします。
この回答への補足
ncftpge ってどんなものでしょうか?
現在の受信は xinetd を通して wu-ftpd で受信しています。送信側からは不定期に送られてきます。できるだけ早く結果を反映させたいので、1分ごとに crontab でファイルを監視しています。おっしゃるとおり、この処理は重いです。もし、wu-ftpd と同等、あるいはこれをラップしたようなシェルスクリプトがあれば、ちょっと手を加えればできそうな気がするのですが。
最後の手段としては inetd の仕組みを自分で勉強して、ftpd との橋渡しをするプログラムを自作するという手もあるかとも思いますが、もしすでに誰かが作られているのなら無駄になるので質問した次第です。
すいません、お礼ではなく補足の続きです。
いろいろ考えてみているのですが、ファイルを監視するより xferlog を監視する方が簡単そうですね。デーモンでこれをやるとして、最後に追加されたところを監視するにはどうしたらいいんでしょう? tail -f みたいに。
No.1
- 回答日時:
このような(ファイル受信後プログラムを起動するという)高度なファイル転送の仕組みには、ソリューションベンダー系のファイル転送プロダクトが必要になります。
例えばLinkExpress(富士通)やHULFTなどです。企業向けなので結構高いですね。
フリーで実現できるものは、ちょっと心当たりがないです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
FTPで書き込み中のファイルの完了を知りたい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FTPに接続し、 あるフォルダ内...
-
ファイルの作成・更新日時が200...
-
ZIPファイルのアップロード方法...
-
Apache2.2.6にてBasic認証の設定
-
FTPで見えるファイルと見えない...
-
FFFTPで属性変更できない(Fedr...
-
robocopyでファイルがあるのに...
-
FTPのmputで出るnetoutについて
-
win2008serverでaspxを表示させ...
-
WinSCPを使ってgetし、ローカル...
-
シェルでftp接続によるファイル...
-
JPEGからRAWデータへの変換に関...
-
SONY ICカードリーダー RC-S330...
-
GOMplayerの代わりになるソフト
-
著作権法違反
-
サポートされてないファイル形...
-
MPC-BEのアスペクト比
-
Excelで勝手に保存画面に飛びま...
-
ZIPファイル内のファイルを...
-
txt ファイル (テキストフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FTPに接続し、 あるフォルダ内...
-
robocopyでファイルがあるのに...
-
ファイルの作成・更新日時が200...
-
FTP受信直後に受け取ったファイ...
-
FTPで見えるファイルと見えない...
-
バッチファイルでフォルダ内の...
-
MacOSエラー -50
-
win2008serverでaspxを表示させ...
-
シェルスクリプトで外部ファイ...
-
私はマクロソフトのOneDrive(...
-
読み取り専用ファイルとして認...
-
ApacheでSorryサーバを作りたい
-
tftpというものを体験したい。
-
FTPのアスキーモードってバイナ...
-
index.html をブラウザで開...
-
メールフォーム設置の仕方を教...
-
documentrootにhtmlをアップし...
-
シェルでftp接続によるファイル...
-
WinSCPを使ってgetし、ローカル...
-
FFFTPで属性変更できない(Fedr...
おすすめ情報