Tag: swatch/Debianの自動起動設定

目次

関連ページ

参考情報

Debian 8 Jessieの自動起動設定

  • Swatchでログを監視して、攻撃に合わせた対策を自動で実行する方法 | OXY NOTESが参考になる。
  • /etc/init.d/swatchを作成
    ### BEGIN INIT INFO
    # Provides:          src
    # Required-Start:    $local_fs
    # Required-Stop:     $local_fs
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: swatch
    ### END INIT INFO
    
    
    # Source function library.
    #. /etc/rc.d/init.d/functions
     
    PATH=/sbin:/usr/local/bin:/bin:/usr/bin
     
    mkdir -p /var/log/swatch
     
    start() {
         # Start daemons.
         ls /var/run/swatch_*.pid > /dev/null 2>&1
         if [ $? -ne 0 ]; then
              echo -n "Starting swatch"
              pno=0
              for conf in /etc/swatch/*.conf
              do
                   pno=`expr $pno + 1`
                   WATCHLOG=`grep "^# logfile" $conf | awk '{ print $3 }'`
                   swatch --config-file $conf --tail-file $WATCHLOG \
                   --script-dir=/tmp --awk-field-syntax --use-cpan-file-tail --daemon \
                   --pid-file /var/run/swatch_$pno.pid \
                   >> /var/log/swatch/swatch.log 2>&1
                   RETVAL=$?
                   [ $RETVAL != 0 ] && return $RETVAL
              done
              echo
              [ $RETVAL = 0 ] && touch /var/lock/subsys/swatch
              return $RETVAL
         else
              echo "swatch is already started"
         fi
    }
     
    stop() {
         # Stop daemons.
         ls /var/run/swatch_*.pid > /dev/null 2>&1
         if [ $? -eq 0 ]; then
              echo -n "Shutting down swatch"
              for pid in /var/run/swatch_*.pid
              do
                   kill $(cat $pid)
                   rm -f $pid
              done
              echo
              rm -f /var/lock/subsys/swatch /tmp/.swatch_script.*
         else
              echo "swatch is not running"
         fi
    }
     
    status() {
         ls /var/run/swatch_*.pid > /dev/null 2>&1
         if [ $? -eq 0 ]; then
              echo -n "swatch (pid"
              for pid in /var/run/swatch_*.pid
              do
                   echo -n " `cat $pid`"
              done
              echo ") is running..."
         else
              echo "swatch is stopped"
         fi
    }
     
    case "$1" in
         start)
                 start
                 ;;
         stop)
                 stop
                 ;;
         restart)
              stop
              start
              ;;
         status)
              status
              ;;
         *)
              echo "Usage: swatch {start|stop|restart|status}"
              exit 1
    esac
     
    exit $RETVAL
    
  • 以下のコマンドも
    chmod 755 /etc/init.d/swatch
    update-rc.d swatch defaults
  • /etc/swatch/swatch.confを作成。自作スクリプトに全行を渡す場合。
    # logfile /var/log/apache2/access.log
    
    watchfor /.*/
             exec /root/bin/logchecker.rb '$_'
    
    

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-11-04 (水) 13:57:12