永夜海 发表于 2018-1-1 13:57:16

zabbix 3.2.1 升级3.4.1

#!/bin/bash  

  
BASEDIR
=$(dirname $(readlink -f $0))  
log
=/root/update_zabbixserver_to_3.4.1.log  

  
[
-e $log ] || >$log  

ls -l $BASEDIR |egrep "^d" |xargs rm -rf  

  
[
-z "$(cat /etc/group |grep zabbix)" ] || groupadd zabbix  
[
-z "$(cat /etc/passwd |grep zabbix)" ] || useradd -g zabbix -s /sbin/nologin -M zabbix  

  
tools
=(net-snmp-devel)  

for i in ${tools
[*]}do  rpm
-qa |grep ^$i > /dev/null 2>&1  if [ $? != 0 ];then
  yum install -y $i
  if [ $? == 0 ];then
  echo "install OK: $i" |tee -a $log
  else
  echo "install ERROR: $i" |tee -a $log
  fi
  else
  echo "installed, skip it: $i" |tee -a $log
  fi
  
done
  

  
# backup old version dir
  
if [ -e "/usr/local/zabbix" ];then
  mv /usr/local/zabbix /usr/local/zabbix_3.2.1
  
fi
  

  
tar -xzvf zabbix-3.4.1.tar.gz
  
cd zabbix-3.4.1
  
./configure \
  --prefix=/usr/local/zabbix \
  --enable-server \
  --enable-agent \
  --with-mysql \
  --with-net-snmp \
  --with-libcurl \
  --with-libxml2 \
  --with-unixodbc \
  --enable-java
  if [ $? == 0 ];then
  echo "Zabbix OK ..." |tee -a $log
  make > null
  if [ $? = 0 ];then
  echo "Zabbix OK ..." |tee -a $log
  

  make install > null
  if [ $? == 0 ];then
  echo "Zabbix OK ..." |tee -a $log
  

  # backup old version zabbix_server bin
  if [ -e "/etc/init.d/zabbix_server" ];then
  mv /etc/init.d/zabbix_server /tmp/zabbix_server_bak
  cp ${BASEDIR}/zabbix-3.4.1/misc/init.d/fedora/core/zabbix_server /etc/init.d/
  else
  cp ${BASEDIR}/zabbix-3.4.1/misc/init.d/fedora/core/zabbix_server /etc/init.d/
  fi
  # backup old version zabbix_agentd bin
  if [ -e "/etc/init.d/zabbix_agentd" ];then
  mv /etc/init.d/zabbix_agentd /tmp/zabbix_agentd_bak
  cp ${BASEDIR}/zabbix-3.4.1/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
  else
  cp ${BASEDIR}/zabbix-3.4.1/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
  fi
  

  chkconfig --del zabbix_server 2>null
  chkconfig --add zabbix_server
  

  chkconfig --del zabbix_agentd 2> null
  chkconfig --add zabbix_agentd
  

  chkconfig zabbix_server on
  chkconfig zabbix_agentd on
  

[ -e "/var/www" ] || mkdir -p /var/www
  # backup old version web
  if [ -e "/var/www/zabbix" ];then
  mv /var/www/zabbix /var/www/zabbix_3.2.1
  else
  cp -r ${BASEDIR}/zabbix-3.4.1/frontends/php /var/www/zabbix
  fi
  

  chmod 777 /var/www/zabbix/conf
  sed -i "/^# DBHost=localhost/a\DBHost=127.0.0.1" /usr/local/zabbix/etc/zabbix_server.conf
  sed -i 's/^DBName=.*$/DBName=zabbix/g' /usr/local/zabbix/etc/zabbix_server.conf
  sed -i 's/^DBUser=.*$/DBUser=zabbix/g' /usr/local/zabbix/etc/zabbix_server.conf
  sed -i 's/^# DBPassword=.*$/DBPassword=123456/g' /usr/local/zabbix/etc/zabbix_server.conf
  sed -i "/^# StartDiscoverers=1/a\StartDiscoverers=10" /usr/local/zabbix/etc/zabbix_server.conf
  

  sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_server
  sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/g' /etc/init.d/zabbix_agentd
  

  else
  echo "Zabbix ERROR !!" |tee -a $log
  fi
  

  else
  echo "Zabbix ERROR !!" |tee -a $log
  fi
  

  fi
页: [1]
查看完整版本: zabbix 3.2.1 升级3.4.1