syslog-ng: Как записать значение переменной в файл - PullRequest
0 голосов
/ 20 июня 2020

Я новичок в syslog-ng, и все, что я прошу, может показаться очень наивным для немногих.

В качестве задачи мне нужно сделать следующее через syslog-ng: 1) прочитать целое число из файл / var / log / myfile 2) Увеличьте это значение при определенной ошибке c (я ищу другой файл журнала для определенной ошибки c). 3) Запишите увеличенное значение обратно в / var / log / myfile

Однако файл журнала имеет значение NULL / BLANK, когда я его обнаруживаю. Может ли кто-нибудь просмотреть мой код и предположить, что я здесь делаю не так?


    /var/log/messages {
       9     size=512k
      10     sharedscripts
      11     postrotate
      12         MCP_QF_ERR_COUNT=0
      13         MCP_RESTART_CNT=0
      14         MCP_QF_ERR_THRHOLD=10
      15         STAT_FILE="/var/log/mcp_qf_restart_cnt"
      16         if [ -f $STAT_FILE ]; then
      17             # Read previous retry count from file
      18             MCP_RESTART_CNT=$(< "$STAT_FILE")
      19         else
      20             touch $STAT_FILE                                    # Create an empty error count file, if it doesnt exist
      21             echo "0" > $STAT_FILE                               # Initialize file with zero count
      22             MCP_RESTART_CNT=0
      23         fi
      24
      25         # Grep /var/log/messages for mcp queue full error and store number of lines
      26         MCP_QF_ERR_COUNT=$(cat /var/log/messages | grep -c "MM_1_MCP enqueue failed")
      27         wait $!                                                 # Wait for last command to finish
      28         MCP_QF_ERR_COUNT=$(expr $MCP_QF_ERR_COUNT)              # convert from string integer to integer
      29         MCP_QF_ERR_THRHOLD=$(expr $MCP_QF_ERR_THRHOLD)
      30
      31         # If line count is more than predefined lines, restart mcp service
      32         if [ $MCP_QF_ERR_COUNT -gt $MCP_QF_ERR_THRHOLD ]; then
      33             service mcp2 restart 2> /dev/null
      34             MCP_RESTART_CNT=$(expr $MCP_RESTART_CNT + 1)        # Incrememnt the restart count by 1
      35             echo $MCP_RESTART_CNT > $STAT_FILE
      36         fi
      37
      38         /bin/kill -HUP `cat /var/run/syslog-ng.pid 2> /dev/null` 2> /dev/null || true
      39     endscript
      40 }

...