zabbix_agent_install.sh
#!/bin/bash #auther by wangxp ZABBIX_AGENT_DIR="/usr/local/zabbix" ZABBIX_AGENT_FILE_NAME="zabbix_agent-5.0.15-linux-3.0-amd64-static.tar.gz" SERVER_IP=111.111.110.41 #LOG_FILE= echo "检查安装文件..." sleep 1 if test -f "$ZABBIX_AGENT_FILE_NAME" then echo "当前目录找到安装文件:$ZABBIX_AGENT_FILE_NAME" else ls `pwd` echo "当前目录找不到:$ZABBIX_AGENT_FILE_NAME ,脚本退出" exit 1 fi echo "检查安装目录..." sleep 1 if test -d $ZABBIX_AGENT_DIR then echo "存在安装路径:$ZABBIX_AGENT_DIR" rm -rf $ZABBIX_AGENT_DIR/* echo "清理$ZABBIX_AGENT_DIR" else echo "创建安装路径:$ZABBIX_AGENT_DIR" mkdir -pv $ZABBIX_AGENT_DIR fi echo "创建zabbix用户..." sleep 1 grep "zabbix" /etc/passwd if [ $? -ne 0 ]; then useradd zabbix -s /sbin/nologin fi #检测函数 check(){ if [ $? -ne 0 ]; then echo "Error,Please check again." exit 1 fi } zabbixsign(){ if test -z "`ss -ntlp|grep zabbix_agentd|grep -v grep`" then echo "zabbix_agentd服务启动失败" sign=0 else echo "zabbix_agentd服务启动成功" sign=1 fi } echo "开始解压缩文件..." sleep 1 tar -zxvf $ZABBIX_AGENT_FILE_NAME -C $ZABBIX_AGENT_DIR check echo “创建软链接” sleep 1 if test -L '/usr/bin/zabbix_sender' then rm -rf /usr/bin/zabbix_sender echo "删除已有/usr/bin/zabbix_sender" fi if test -L '/usr/bin/zabbix_get' then rm -rf /usr/bin/zabbix_get echo "删除已有/usr/bin/zabbix_get" fi if test -L '/usr/sbin/zabbix_agentd' then rm -rf /usr/sbin/zabbix_agentd echo "删除已有/usr/sbin/zabbix_agentd" fi ln -s `find $ZABBIX_AGENT_DIR -type f -name zabbix_sender` /usr/bin echo "创建软连接/usr/bin/zabbix_sender" check ln -s `find $ZABBIX_AGENT_DIR -type f -name zabbix_get` /usr/bin echo "创建软连接/usr/bin/zabbix_get" check ln -s `find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd` /usr/sbin echo "创建软连接/usr/sbin/zabbix_agentd" check echo "修改zabbix_agent配置..." sleep 1 sed -r -i s/^Server=127.0.0.1/Server=$SERVER_IP/g `find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd.conf` check sed -r -i s/^ServerActive=127.0.0.1/ServerActive=$SERVER_IP/g `find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd.conf` check sed -r -i s/'^Hostname=Zabbix server'/Hostname=`hostname`/g `find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd.conf` check echo -e "zabbix_agent基本配置:" cat `find $ZABBIX_AGENT_DIR -name zabbix_agentd.conf` | egrep '^Server|^ServerActive|^Hostname' echo -e "添加zabbix_agent启停脚本。。。" sleep 1 if test ! -f zabbix_agent.sh then echo -e "#!/bin/bash\n# chkconfig: 2345 22 78\n# description:\n ZABBIX_AGENT_DIR=$ZABBIX_AGENT_DIR ZABBIX_AGENT=`find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd` ZABBIX_AGENT_CONF=`find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd.conf`" > zabbix_agentd.sh echo ' function stop(){ kill -15 `cat /tmp/zabbix_agentd.pid` } case $1 in start) $ZABBIX_AGENT -c $ZABBIX_AGENT_CONF ;; stop) stop ;; restart) stop $ZABBIX_AGENT -c $ZABBIX_AGENT_CONF ;; *) echo "Usage:service zabbix_agentd start|stop|restart" ;; esac'>>zabbix_agentd.sh chmod u+x zabbix_agentd.sh else echo "当前目录已经存在zabbix_agent.sh脚本。" fi if test -f /etc/init.d/zabbix-agentd; then rm -rf /usr/local/etc/zabbix_agentd.conf echo "删除已存在/etc/init.d/zabbix-agentd" fi echo "zabbix_agent添加到init进程..." sleep 1 cp zabbix_agentd.sh /etc/init.d check mv /etc/init.d/zabbix_agentd.sh /etc/init.d/zabbix-agentd chmod a+x /etc/init.d/zabbix-agentd echo "zabbix_agent开机启动设置" chkconfig --add zabbix-agentd chkconfig zabbix-agentd on service zabbix-agentd start sleep 1 zabbixsign if [ $sign -eq 0 ];then echo "尝试用root启动用户" sleep 1 sed -r -i /'# AllowRoot=0'/a\AllowRoot=1 `find $ZABBIX_AGENT_DIR -type f -name zabbix_agentd.conf` echo -e "zabbix_agent基本配置:" cat `find $ZABBIX_AGENT_DIR -name zabbix_agentd.conf` | egrep '^Server|^ServerActive|^Hostname|^AllowRoot' sleep 3 service zabbix-agentd start fi sleep 1 zabbixsign