- 论坛徽章:
- 1
|
- #!/bin/bash
- #
- #定义循环时间
- RUN_INTERVAL=5
- DATA_COUNT=500
- #定义预处理进程名
- PROCESS_NAME=data_prehandle_qeesoo
- #定义程序主目录
- HOME=/home/cn_qeesoo
- ERROR_LOG=${HOMELOG}/data_prehandle_qeesoo_error.log
- #定义数据库参数
- HOST=
- DBUSERNAME=
- DBPASSWORD=
- DATABASE=
- TABLE=
- function writeLog()
- {
- str=$1;
- echo "[`date '+%Y-%m-%d %H:%M:%S'`] $str"
- }
- echo echo "-->>------------variable setting----------"
- echo "-->>HOME=$HOME"
- echo "-->>RUN_INTERVAL=$RUN_INTERVAL"
- echo "-->>PROCESS_NAME=$PROCESS_NAME"
- echo "-->>ERROR_LOG=$ERROR_LOGE"
- #检测数据库状态为0的数据
- while [ 1 -eq 1 ]
- do
- TEMP_COUNT=(`which mysql` -u $DBUSERNAME -p$DBPASSWORD --database $DATABASE -e "select count(*) from $TABLE where state=0")
- if ["$TEMP_COUNT" > "$DATA_COUNT" ]; then
- writeLog "-->>Message receiver program state_data count < $DATA_COUNT"
- writeLog "-->>next while do..."
- sleep $RUN_INTERVAL
- continue
- fi
- #检测预处理进程并启用进程
- PID=`ps aux |grep $PROCESS_NAME |grep -v grep |awk '{print $2}'`
- if [ "$PID" = "" ];then
- writeLog "-->>Message receiver program is running"
- sleep $RUN_INTERVAL
- continue
- fi
- nohup $HOME/data_prehandle_qeesoo -f $HOME/qeesoo.conf >>${ERROR_LOG} 2>&1 &
- writeLog "-->>Start the process data_prehandle_qeesoo"
- sleep $RUN_INTERVAL
- done
复制代码
小弟写了个shell,目的是这样的,这个shell一直运行,然后按设定的时间去取一些数据,然后进行一些相应的操作。现在是用死循环的方式进行的。
请问用这个方式有什么不好的地方比起crond?比如内存释放等?谢谢
[ 本帖最后由 枫影谁用了 于 2008-6-12 16:23 编辑 ] |
|