CGIカウンターとか懐かしくないですか?
#!/bin/sh
file="count.log"
lockfile="counter.lock"
sleeptime=0
while :
do
#ロック
mktemp $lockfile 1> /dev/null 2>/dev/null
result=$?
#ロック出来てたらカウンタを進める
if [ $result -eq 0 ]; then
count=$((`cat $file` + 1))
echo $count > count.log
#ロック開放
rm $lockfile
break
fi
sleeptime=$(($sleeptime + 1))
sleep "0.00"$sleeptime
done
echo $count
count.log
というファイルを置いておけばカウンタとして動作します.ロックには mktemp
を使いましたが mkdir
とかでもいいはず.
ロックされてたら一定時間待つようにしていますが,ちょっと手抜きすぎるかも. 🐘