lsyncを使用したリアルタイムバッチ処理
lsyncdはバックアップミラーリングだけじゃなくて、リアルタイムバッチ処理等もできるっぽい
lsyncd.conf.xmlを作成
<lsyncd version="1">
<settings>
<logfile filename="/var/log/lsyncd.log" />
<pidfile filename="/var/run/lsynd.pid" />
<binary filename="/home/kinjouj/test.sh" />
<!-- 必ず設定する事 -->
<callopts>
<source />
</callopts>
</settings>
<directory>
<source path="/home/kinjouj/data" />
<target path="/dev/null" />
</directory>
</lsyncd>
バッチ処理スクリプト
#!/bin/sh
find "$1" -iname \*.jpg | while read file ; do
if [ -f "$file" ] ; then
/usr/bin/php /opt/tools/convert.php "$file";
fi
done
バッチ処理スクリプト自体には更新されたディレクトリパスしか渡されないので、バッチ処理するファイルは個々で取得するしかない(バッチ処理後に消したり移動したりで対応すると良いのかも)