发表于 2019-1-22 10:56:22

zabbix的rc控制脚本

  zabbix在freebsd的rc启动控制脚本,
  拷贝如下内容到/usr/local/etc/zabbix_ctl,并且修改权限为可执行:


[*]#!/bin/sh
[*]
[*]umask 022
[*]
[*]CAT=/bin/cat
[*]KILL=/bin/kill
[*]
[*]SU_USER=zabbix
[*]
[*]# zabbix script
[*]ZABBIX_SERVER=/usr/local/sbin/zabbix_server
[*]ZABBIX_AGENTD=/usr/local/sbin/zabbix_agentd
[*]
[*]# pid file
[*]ZS_PID=/tmp/zabbix_server.pid
[*]ZA_PID=/tmp/zabbix_agentd.pid
[*]
[*]start_agentd() {
[*]if [ -e $ZA_PID ]; then
[*]      echo "$ZABBIX_AGENTD is running!"
[*]      exit
[*]    else
[*]      echo -n "starting $ZABBIX_AGENTD..."
[*]      su ${SU_USER} -c ${ZABBIX_AGENTD}
[*]      sleep 3
[*]      if [ -e $ZA_PID ]; then
[*]            echo "done"
[*]      else
[*]            echo "false, please check log file!"
[*]      fi
[*]    fi   
[*]}
[*]
[*]start_server() {
[*]    if [ -e $ZS_PID ]; then
[*]      echo "$ZABBIX_SERVER is running!"
[*]      exit
[*]    else
[*]      echo -n "starting $ZABBIX_SERVER..."
[*]      su ${SU_USER} -c ${ZABBIX_SERVER}
[*]      sleep 3
[*]      if [ -e $ZS_PID ]; then
[*]            echo "done"
[*]      else
[*]            echo "false, please check log file!"
[*]      fi
[*]    fi   
[*]}
[*]
[*]stop_agentd() {
[*]    if [-r $ZA_PID-a! -z ${ZA_PID}]; then
[*]      PID=`${CAT} ${ZA_PID}`
[*]    fi
[*]    if [${PID:=0} -gt 1 -a! "X$PID" = "X "]; then
[*]      ${KILL} ${PID} && echo "stop $ZABBIX_AGENTD... done"
[*]    else
[*]      echo "stop $ZABBIX_AGENTD fail, Unable to read PID file $ZA_PID"
[*]    fi
[*]}
[*]
[*]stop_server() {
[*]    if [-r $ZS_PID-a! -z ${ZS_PID}]; then
[*]      PID=`${CAT} ${ZS_PID}`
[*]    fi
[*]    if [${PID:=0} -gt 1 -a! "X$PID" = "X "]; then
[*]      ${KILL} ${PID} && echo "stop $ZABBIX_SERVER... done"
[*]    else
[*]      echo "stop $ZABBIX_SERVER fail, Unable to read PID file $ZS_PID"
[*]    fi
[*]}
[*]
[*]usage="usage $0 {agentd|server} {start|stop|restart}"
[*]
[*]
[*]case $1 in
[*] 'agentd')
[*]    t='agentd'
[*] ;;
[*] 'server')
[*]    t='server'
[*] ;;
[*]esac
[*]
[*]if [ ! -z $t ]; then
[*]    case $2 in
[*]      'start')
[*]            start_$t
[*]      ;;
[*]
[*]      'stop')
[*]            stop_$t
[*]      ;;
[*]
[*]      'restart')
[*]            stop_$t
[*]            sleep 3 && \
[*]            start_$t
[*]      ;;
[*]
[*]      *)
[*]            echo $usage
[*]      ;;
[*]    esac
[*]else
[*]echo $usage
[*]fi

  拷贝如下内容到:/usr/local/etc/rc.d/zabbix,修改权限为可执行:


[*]#!/bin/sh
[*]# PROVIDE: zabbix
[*]# REQUIRE: LOGIN   
[*]# KEYWORD: nojail shutdown
[*]   
[*]. /etc/rc.subr
[*]name="zabbix"
[*]   
[*]rcvar=`set_rcvar`
[*]start_cmd="${name}_start"
[*]stop_cmd="${name}_stop"
[*]load_rc_config $name
[*]   
[*]eval "${rcvar}=\${${rcvar}:-'NO'}"
[*]
[*]ZABBIX_CTL=/usr/local/etc/zabbix_ctl
[*]
[*]zabbix_start()   
[*]{
[*]    $ZABBIX_CTL agentd start && \
[*]    $ZABBIX_CTL server start && \
[*]    echo "zabbix started"
[*]}
[*]   
[*]zabbix_stop()   
[*]{
[*]    $ZABBIX_CTL agentd stop && \
[*]    $ZABBIX_CTL server stop && \      
[*]    echo "zabbix stopped"
[*]}
[*]run_rc_command"$1"

  在/etc/rc.conf中加入:zabbix_enable="yes"
  测试:/usr/local/etc/rc.d/zabbix restart
  不明白哪个地方出问题,stop的时候,会提示:“ : not found”



页: [1]
查看完整版本: zabbix的rc控制脚本