監視スクリプトで問題に直面しています。
プログラムの流れは、
- お客様がファイル (.csv 形式) を「ソース」ディレクトリに ftp/sftp します。
- Bash スクリプトは、完成した .csv ファイルの名前を .aaa ファイルに変更します
- 別の Bash スクリプトは、「.aaa」ファイルを「destination」ディレクトリに移動し、ファイルの名前を「.csv」に戻します。
- CAMEL は「宛先」ディレクトリを監視しています。ファイルが「宛先」フォルダに来て、拡張子が「.aaa」と等しくない場合、ファイルの処理が開始されます。
ここでは、ステップ 3 が失敗しています。Bash スクリプトはファイルを正常に移動します。しかし、ファイルの名前を「.aaa」から「.csv」に変更している間、CAMEL はファイルを取得して処理を開始します。CAMEL は「フッターが存在しません」というエラーで失敗します。これは、「mv」コマンドが完了しておらず、「mv」が完了する前に CAMEL が処理されたためです。したがって、不完全なファイルを処理しました。
スクリプトを使用しているため、コマンドを使用する際の柔軟性はほとんどありません。Linux の「mv」コマンドを使用してファイルの名前を変更しています。
名前の変更中にスクリプトでファイルをロックして、CAMEL がファイルにアクセスできないようにする方法はありますか?
または、このシナリオを処理するより良い方法はありますか?
事前に助けに感謝します。
ありがとう、マシュー・リジュ