- 論壇徽章:
- 0
|
shell腳本unload_8738.sh:- #!/bin/ksh
- #切換腳本當(dāng)前工作目錄
- cd $1
- if [ $? -ne 0 ]; then
- date '+%Y%m%d %H:%M' >> unload_8738_err.log
- echo "cd $1 error" >> unload_8738_err.log
- exit
- fi
- #檢查當(dāng)前系統(tǒng)運(yùn)行腳本unload_8738.sh進(jìn)程數(shù)
- #如果進(jìn)程數(shù)大于1則退出執(zhí)行
- P=`ps -ef | grep "unload_8738.sh" | grep -v "grep" | wc -l`
- if [ $P -gt 1 ]; then
- date '+%Y%m%d %H:%M' >> unload_8738_err.log
- echo "unload_8738.sh is runing, pid num: $P" >> unload_8738_err.log
- exit
- fi
- #開始生成對(duì)賬文件之前檢查OK文件,如果已存在則刪除
- if [ -f "$2.OK" ]; then
- /bin/rm $2.OK
- fi
- while [ 1 == 1 ]; do
- dbaccess $AP_DATABASE_NAME <<!
- set lock mode to wait 120;
- --開始提取對(duì)賬文件數(shù)據(jù)
- unload to $2.temp
- SELECT *
- FROM CC_Info
- WHERE name in ('$3', '$3XYK')
- AND date>= '$4' AND date <= '$5';
- set lock mode to wait 30;
- !
- if [ $? -ne 0 ]; then
- date '+%Y%m%d %H:%M' >> unload_8738_err.log
- echo "unload 8738 data error" >> unload_8738_err.log
- else
- break
- fi
- done
- while [ 1 == 1 ]; do
- P=`ps -fu cbs | grep "unload_8738.sh" | grep -v "grep" | wc -l`
- if [ $P == 1 ]; then
- #去掉文件行末尾"|"字符
- sed 's/|$//' $2.temp > $2
-
- #統(tǒng)計(jì)對(duì)賬記錄數(shù),并追加至對(duì)賬文件末尾
- lCn=`wc -l $2 |awk '{print $1}'`
- echo "--------------------------------------------" >> $2
- echo $lCn >> $2
- /bin/rm $2.temp
-
- #生成OK文件
- echo "unload file $2 done!!!" > $2.OK
- break
- fi
- sleep 60
- done
- exit
復(fù)制代碼 我每次運(yùn)行的時(shí)候: unload_8738.sh /home/acs DZ.txt 20160721 20160722
非常確認(rèn)第一次運(yùn)行腳本已經(jīng)執(zhí)行完成,而且相應(yīng)的OK文件也已經(jīng)生成了,腳本成功退出,但是第二次運(yùn)行會(huì)報(bào)錯(cuò):
日志:- unload_8738.sh is runing, pid num: 2
- 20160722 18:32
- unload_8738.sh is runing, pid num: 2
- 20160722 18:32
- unload_8738.sh is runing, pid num: 2
- 20160722 18:33
- unload_8738.sh is runing, pid num: 2
復(fù)制代碼 看了一下代碼 是 P=`ps -ef | grep "unload_8738.sh" | grep -v "grep" | wc -l` 獲取進(jìn)程數(shù)大于1
我很納悶,第一次腳本已執(zhí)行完,確認(rèn)退出了,哪里來(lái)的進(jìn)程大于1呢?難道操作系統(tǒng)進(jìn)程也會(huì)有緩存?
我運(yùn)行的操作性是 AIX 6.1 shell 用的是 ksh
求解啊,謝謝各位!
|
|