亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1420 | 回復(fù): 8
打印 上一主題 下一主題

[其他] 求助一個(gè)shell腳本的問(wèn)題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2016-07-22 18:49 |只看該作者 |倒序?yàn)g覽
shell腳本unload_8738.sh:
  1. #!/bin/ksh

  2. #切換腳本當(dāng)前工作目錄
  3. cd $1
  4. if [ $? -ne 0 ]; then
  5.     date '+%Y%m%d  %H:%M' >> unload_8738_err.log
  6.         echo "cd $1 error" >> unload_8738_err.log
  7.         exit
  8. fi

  9. #檢查當(dāng)前系統(tǒng)運(yùn)行腳本unload_8738.sh進(jìn)程數(shù)
  10. #如果進(jìn)程數(shù)大于1則退出執(zhí)行
  11. P=`ps -ef | grep "unload_8738.sh" | grep -v "grep" | wc -l`
  12. if [ $P -gt 1 ]; then
  13.     date '+%Y%m%d  %H:%M' >> unload_8738_err.log
  14.         echo "unload_8738.sh is runing, pid num: $P" >> unload_8738_err.log
  15.         exit
  16. fi

  17. #開始生成對(duì)賬文件之前檢查OK文件,如果已存在則刪除
  18. if [ -f "$2.OK" ]; then
  19.     /bin/rm $2.OK
  20. fi

  21. while [ 1 == 1 ]; do
  22. dbaccess $AP_DATABASE_NAME <<!
  23. set lock mode to wait 120;

  24. --開始提取對(duì)賬文件數(shù)據(jù)
  25. unload to $2.temp
  26. SELECT *
  27. FROM CC_Info
  28. WHERE name in ('$3', '$3XYK')
  29. AND   date>= '$4' AND date <= '$5';

  30. set lock mode to wait 30;

  31. !

  32. if [ $? -ne 0 ]; then
  33.     date '+%Y%m%d  %H:%M' >> unload_8738_err.log
  34.         echo "unload 8738 data error" >> unload_8738_err.log
  35. else
  36.         break
  37. fi
  38. done

  39. while [ 1 == 1 ]; do
  40. P=`ps -fu cbs | grep "unload_8738.sh" | grep -v "grep" | wc -l`
  41. if [ $P == 1 ]; then
  42.     #去掉文件行末尾"|"字符
  43.     sed 's/|$//' $2.temp > $2
  44.    
  45.     #統(tǒng)計(jì)對(duì)賬記錄數(shù),并追加至對(duì)賬文件末尾
  46.     lCn=`wc -l $2 |awk '{print $1}'`
  47.         echo "--------------------------------------------" >> $2
  48.         echo $lCn >> $2
  49.         /bin/rm $2.temp
  50.    
  51.         #生成OK文件
  52.         echo "unload file $2 done!!!" > $2.OK
  53.         break
  54. fi

  55. sleep 60
  56. done
  57. 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ò):
日志:
  1. unload_8738.sh is runing, pid num:        2
  2. 20160722  18:32
  3. unload_8738.sh is runing, pid num:        2
  4. 20160722  18:32
  5. unload_8738.sh is runing, pid num:        2
  6. 20160722  18:33
  7. 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
求解啊,謝謝各位!

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2016-07-22 19:02 |只看該作者
補(bǔ)充一下,這種情況,不是每次都會(huì)發(fā)生,是偶爾,頻率還是挺高的

求職 : 技術(shù)支持/維
論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2016-07-22 20:45 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2016-07-22 20:47 |只看該作者
嗯,試試看,先謝謝這位兄弟!回復(fù) 3# 99超人


   

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2016-07-22 21:31 |只看該作者
回復(fù) 3# 99超人

第13行代碼該了一下:
  1. #檢查當(dāng)前系統(tǒng)運(yùn)行腳本unload_8738.sh進(jìn)程數(shù)
  2. #如果進(jìn)程數(shù)大于1則退出執(zhí)行
  3. P=`ps -fu cbs | grep "unload_8738.sh" | grep -v "grep"`
  4. CN=`echo "$P"| wc -l`
  5. if [ $CN -gt 1 ]; then
  6.     date '+%Y%m%d  %H:%M' >> unload_8738_err.log
  7.     echo "unload_8738.sh is runing, pid num: $P" >> unload_8738_err.log
  8.     exit
  9. fi
復(fù)制代碼
出問(wèn)題時(shí)打印的日志:
  1. 20160722  20:52
  2. unload_8738.sh is runing, pid num:      
  3. cbs  1638682 11862104   0 20:52:08  pts/3  0:00 /bin/ksh /cbs/bin/unload_8738.sh /cbs/ftp DZ20160413IBPS IBPS 20160729 20160730
  4. cbs  9503448  1638682   0 20:52:08  pts/3  0:00 /bin/ksh /cbs/bin/unload_8738.sh /cbs/ftp DZ20160413IBPS IBPS 20160729 20160730
  5. 20160722  20:52
  6. unload_8738.sh is runing, pid num:
  7. cbs 10223758 11862104   0 20:52:15  pts/3  0:00 /bin/ksh /cbs/bin/unload_8738.sh /cbs/ftp DZ20160413IBPS IBPS 20160729 20160730
  8. cbs 15204796 10223758   0 20:52:15  pts/3  0:00 /bin/ksh /cbs/bin/unload_8738.sh /cbs/ftp DZ20160413IBPS IBPS 20160729 20160730
  9. 20160722  20:52
  10. unload_8738.sh is runing, pid num:
  11. cbs  4653212  9503474   0 20:52:17  pts/3  0:00 /bin/ksh /cbs/bin/unload_8738.sh /cbs/ftp DZ20160413IBPS IBPS 20160729 20160730
  12. cbs 10879294 11862104   0 20:52:17  pts/3  0:00 /bin/ksh /cbs/bin/unload_8738.sh /cbs/ftp DZ20160413IBPS IBPS 20160729 20160730
復(fù)制代碼

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2016-07-22 22:10 |只看該作者
看樣子是有子進(jìn)程了,shell本身會(huì)fork子進(jìn)程?語(yǔ)法如何寫才能實(shí)現(xiàn)不包括他派生的子進(jìn)程? 求大神支招

求職 : 技術(shù)支持/維
論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2016-07-22 23:16 |只看該作者
提示: 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2016-07-23 02:04 |只看該作者
回復(fù) 7# 99超人
先謝謝這位兄弟,也是個(gè)很好的方法,我覺(jué)得ps進(jìn)程的查看一定是有辦法區(qū)別主進(jìn)程fork的子進(jìn)程的

   

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2016-07-25 08:41 |只看該作者
不要沉,大家在幫我看看除了判斷一個(gè)文件是否存在的方式,如何從判斷進(jìn)程的方式去解決呢?
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP