dc.o.sh 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. #!/usr/bin/ksh
  2. export LANG=zh_CN.GBK
  3. #LogDC default setting
  4. Default_Setting()
  5. {
  6. #export ABLOG_CLASS="ALL"
  7. #export ABLOG_CLASS="ERROR,METRICS,STATE,FLOW,DETAIL"
  8. #export ABLOG_CLASS="ERROR,METRICS,STATE,DETAIL"
  9. #export ABLOG_CLASS="ERROR,METRICS,STATE"
  10. export ABLOG_CLASS="ERROR,METRICS"
  11. #keep 5 days log files
  12. #export ABLOG_KEEP_HOURS= default 120
  13. export ABLOG_KEEP_HOURS=
  14. #export ABLOG_STDOUT= default 1
  15. export ABLOG_STDOUT=0
  16. #export VIRTUAL_TIME= default equals current time `date +"%Y-%m-%d %H:%M:%S"`
  17. export VIRTUAL_TIME=
  18. #export SCAN_DATA_BY_TIME= default 1 :scan data by virtual time / 0 :scan data from top of file and immediately begin.
  19. export SCAN_DATA_BY_TIME=
  20. #export SCAN_BEGIN_TIME= default from virtual current time
  21. export SCAN_BEGIN_TIME=
  22. #export SCAN_END_TIME= default no end time
  23. export SCAN_END_TIME=
  24. #export IDLE_TIMEOUT_HOURS= default 0, no idle timeout
  25. export IDLE_TIMEOUT_HOURS=
  26. #export VALIDATE_DATA= default 1, yes
  27. export VALIDATE_DATA=
  28. #export CHECK_FILE_STATUS= default 0, no
  29. export CHECK_FILE_STATUS=
  30. export SYSTEM_NAME=
  31. }
  32. #LogDC default setting
  33. #don't change below coding
  34. #program path
  35. export CUR_DIR=`echo $0 | sed 's/[^\/]*$//'`
  36. if test "$CUR_DIR" != ""; then
  37. cd $CUR_DIR
  38. fi
  39. cd ..
  40. export DC_HOME=`pwd`
  41. cd bin
  42. export DC_EXE=${DC_HOME}/bin/dc
  43. export LIBPATH=${DC_HOME}/lib:$LIBPATH
  44. export TASKPATH=${DC_HOME}/etc/task.lst
  45. export FSYSMATCH=${DC_HOME}/etc/sysmatch.lst
  46. export RTNCDFILE=${DC_HOME}/etc/rtncode.lst
  47. export TXNFILE=${DC_HOME}/etc/txnid.lst
  48. export TXNCDFILE=${DC_HOME}/etc/txncd.lst
  49. export CONFIG_FILE=${DC_HOME}/etc/config.map
  50. export DC_LOG_PATH=${DC_HOME}/log
  51. if [ ! -e "${DC_LOG_PATH}" ]; then
  52. mkdir ${DC_LOG_PATH}
  53. fi
  54. HOSTNAME=`hostname`
  55. ips=`ifconfig -a | grep "inet " | awk {'print $2'}`
  56. echo current ip: $ips
  57. c_ip=127.0.0.1
  58. c_match=$ips
  59. echo default setting for common configuration
  60. Default_Setting
  61. i=0
  62. while read LINE
  63. do
  64. i=$(($i+1))
  65. c_tmp=`echo $LINE | grep '\[IP:.*\]'`
  66. if [ "$c_tmp" ];
  67. then
  68. #config for ip
  69. c_ip=`echo $LINE | sed -e 's/.*\[IP:\(.*\)\].*/\1/g'`
  70. c_match=`echo $ips | grep "$c_ip"`
  71. if [ "$c_match" ];
  72. then
  73. echo restore default setting for configuration $c_ip
  74. Default_Setting
  75. fi
  76. fi
  77. if [ ! "$c_match" ];
  78. then
  79. #skip config for other ip
  80. continue
  81. fi
  82. c_tmp=`echo $LINE | grep -nE '^(^#|$)'`
  83. if [ "$c_tmp" ];
  84. then
  85. #skip empty and comment line
  86. continue
  87. fi
  88. echo "line ${i}:"
  89. c_tmp=`echo $LINE | grep '.*=.*'`
  90. if [ "$c_tmp" ];
  91. then
  92. key=${c_tmp%%=*}
  93. value=${c_tmp#*=}
  94. #echo $c_tmp | awk -F '=' {'print $1,$2'} | read key value
  95. eval "export $c_tmp"
  96. gkv="$"$key""
  97. echo $key=`eval echo $gkv`
  98. continue
  99. fi
  100. filepath=""
  101. servername=""
  102. instancename=""
  103. appname=""
  104. c_tmp=`eval echo "$LINE"`
  105. echo "task=$c_tmp"
  106. filepath=${c_tmp%%,*}
  107. c_tmp=${c_tmp#*,}
  108. appname=${c_tmp%%,*}
  109. c_tmp=${c_tmp#*,}
  110. servername=${c_tmp%%,*}
  111. c_tmp=${c_tmp#*,}
  112. instancename=${c_tmp%%,*}
  113. c_tmp=${c_tmp#*,}
  114. sendmode=${c_tmp%%,*}
  115. c_tmp=${c_tmp#*,}
  116. #echo $c_tmp | awk -F ',' {'print $1,$2,$3,$4,$5'} | read filepath appname servername instancename sendmode
  117. filename=${filepath##*/}
  118. sysname=${filename%%.*}
  119. if [ "$SYSTEM_NAME" ];
  120. then
  121. sysname=${SYSTEM_NAME}
  122. fi
  123. echo "<----------DC task start with detail as below:---------------->"
  124. echo filepath=[$filepath]
  125. echo filename=[$filename]
  126. echo sysname=[$sysname]
  127. echo appname=[$appname]
  128. echo servername=[$servername]
  129. echo instancename=[$instancename]
  130. echo sendmode=[$sendmode]
  131. export ABLOG_FILE=${DC_LOG_PATH}/${filename}_[yyyy][mm][dd][hh]_dc[pid].log
  132. echo "$DC_EXE 0 $filepath $sysname $appname $servername $instancename $sendmode"
  133. #$DC_EXE 0 $filepath $sysname $appname $servername $instancename $sendmode >/dev/null 2>&1 &
  134. $DC_EXE 0 $filepath $sysname $appname $servername $instancename $sendmode &
  135. #echo "It's NOT run really!"
  136. echo ""
  137. done < $TASKPATH
  138. exit 0