スクリプトを使用してこのロジックを実装するには:
新しく着信ファイルがあるかどうかを確認してください。 3時間ディレクトリにファイルが受信されていない場合、または受信したファイルが空の場合は、特定の操作を実行してください。ファイル名は動的に生成されます。
これをスクリプトにどのように入れますか?
答え1
そうだHP-UX着信ファイルに反応するFAM / FSEvent / inotifyのようなものはありません。これにより、ポーリングが唯一のソリューションになります。
process
以下は、1分ごとに実行され、新しいファイルごとにプログラムを呼び出し(プログラムに必要なものを置く)、ファイルを別のディレクトリに移動する概念証明スクリプトです。ファイルを別のディレクトリに移動することは、ファイルを何度もスキップまたは処理する競合状態を防ぐためです。ファイルを同じディレクトリに保存する必要がある場合は、処理されたファイルのリストを維持してください。
#!/usr/bin/env ksh93
last_SECONDS=0
while sleep 60; do
new_files=$(find INCOMING -exec process {} \; -exec mv {} PROCESSED \; -print)
if [[ -n $new_files ]]; then
last_SECONDS=$SECONDS
elif ((SECONDS - last_SECONDS >= 3600 * 3)); then
echo "More than 3 hours without a new file"
fi
done