#! /bin/bash
COUNT=0
while true; do
LOG=`date '+%F %T'`
LOG="${LOG} this is a log record"
if !( redis-cli LPUSH log "${LOG}" > /dev/null 2>&1 ); then
echo "send log error!"
exit 1
fi
COUNT=$((++COUNT))
echo "sent ${COUNT} logs"
sleep 2
done
随后运行:
$ chmod +x gen_log.sh & ../gen_log.sh
sent 1 logs
sent 2 logs
从输出得知,已经开始发送日志。
我们可以启动多个gen_log.sh,模拟多个client。
此时可以查看log队列是否增加:
$ redis-cli
redis > LLEN log
32
可以看到log已经产生。
3, 书写analy_log.sh,其代码如下:
#! /bin/bash
COUNT=0
while true; do
LOG=$(redis-cli BLPOP log 0 2> /dev/null)
if [ $? -ne 0 ]; then
echo "get log error!"
exit 1
fi
COUNT=$((++COUNT))
echo "(${COUNT}) analyzing ${LOG} ..."
#sleep 1
done
执行
$ ./analy_log.sh
(1) analyzing log
2010-10-18 17:20:58 this is a log record ...
(2) analyzing log
2010-10-18 17:20:58 this is a log record ...
(3) analyzing log
2010-10-18 17:20:56 this is a log record ...
(4) analyzing log
2010-10-18 17:20:56 this is a log record ...