参考コード
function check_update_file {
# get last time
last_time=`cat ${DATA_FILE_PATH}/${DATA_FILE}`
if [ -z "${last_time}" ];
then
ls -og --full-time ${FILE_PATH} | awk '{ print $4,$5 }' > ${DATA_FILE_PATH}/${DATA_FILE}
fi
echo "last time = ${last_time}"
## check update file
while :
do
if ls ${FILE_PATH} > /dev/null 2>&1
then
# get make time
make_time=`ls -og --full-time ${FILE_PATH} | awk '{ print $4,$5 }'`
if [ "${last_time}" != "${make_time}" ];
then
# set time stamp
ls -og --full-time ${FILE_PATH} | awk '{ print $4,$5 }' > ${DATA_FILE_PATH}/${DATA_FILE}
echo "make time = ${make_time}"
break
fi
sleep 60
fi
done
}
処理について
- すでに作成されているファイルの作成日時を、記録しているファイルから取得
- 【ここからループ】ファイルの存在を確認
- ファイルの作成日時を取得
- 【ループここまで】すでに作成されているファイルの作成日時と直近で取得した作成日時を比較
→【break】記録ファイルを更新
備考
- 「対象ファイルは存在するが、記録ファイルに記載がない」場合を顧慮して、1.にて取得値がNULLの場合は、記録ファイルに追記する処理にした。