title: Shell-case+函数解决zabbix web页乱码脚本
date: 2020-04-28 20:24:09
categories:
- Shell
tags: - case
- 函数定义脚本
- zabbix web乱码
解决zabbix web流量监控页乱码
以SIMKAI.TTF为例!!!
#!/bin/bash
#2019-12-27 by zjz
#SIMKAI.TTF 为楷体 字体英文名称
#2020-04-28 by zjz
#解决4.2 或4.4 多版本web数据监控页中文字体乱码问题
#1.先将Windwos front C:\Windows\Fonts\SIMKAI.TTF字体拷贝至linux主机任意目录
# 以SIMKAI.TTF为例
#查看zabbix 版本
zabbix_version=`zabbix_server -V | head -n 1 | awk '{print $3}' | awk -F'.' '{print $1$2}'`
echo "You are Zabbix Version is: zabbix_server (Zabbix) $zabbix_version "
#查找simkai.ttf字体位置
simkai_font_position=`find / -iname 'SIMKAI.TTF' | grep -v 'zabbix' | sed -r 's#SIMKAI.TTF# #i'`
echo "simkai_font_position: $simkai_font_position"
#4.2版本以下
4.2andyixia() {
#########zabbix4.2以下web中文乱码解决##########
#查找zabbix字体路径
zabbix_font_position=`find / -name 'graphfont.ttf' | sed -r 's#graphfont.ttf# #g'`
echo "zabbix_font_position: $zabbix_font_position"
#判断zabbix字体是否已更换
grep 'simkai' /usr/share/zabbix/include/defines.inc.php &>/dev/null
if [ $? -eq 0 ];then
echo "zabbix字体已经更换"
else
#需要将字体文件先导入到linux,将字体文件名改成小写
cd $simkai_font_position
mv SIMKAI.TTF simkai.ttf
cp simkai.ttf $zabbix_font_position
#编辑zabbix字体定义文件
sed -i 's/graphfont/simkai/g' /usr/share/zabbix/include/defines.inc.php &>/dev/null
if [ $? -eq 0 ];then
echo "Zabbix font change"
else
echo "font change failed,please check defines.inc.php file"
exit
fi
systemctl restart zabbix-server
echo "Restart zabbix-server done..."
fi
}
4.3andyishang() {
#########zabbix4.3以上web中文乱码解决##########
#判断zabbix字体是否已更换
ll /etc/alternatives/zabbix-web-font | grep simkai.ttf
if [ $? -eq 0 ];then
echo "zabbix字体已经更换"
else
#zabbix4.4没有fonts目录,需要手动创建,然后将msyh.ttf复制进去
mkdir /usr/share/zabbix/fonts
cd $simkai_font_position
mv SIMKAI.TTF simkai.ttf
cp simkai.ttf /usr/share/zabbix/fonts
#使用#ll /etc/alternatives/zabbix-web-font,可以看到zabbix-web-font文件实际上是一个软连接,链接的文件实际位置是:/usr/share/fonts/dejavu/DejaVuSans.ttf
rm -rf /etc/alternatives/zabbix-web-font
ln -s /usr/share/zabbix/fonts/simkai.ttf /etc/alternatives/zabbix-web-font
echo "Zabbix font change"
systemctl restart zabbix-server
echo "Restart zabbix-server done..."
fi
}
case $zabbix_version in
40|41|42)
4.2andyixia
;;
43|44)
4.3andyishang
;;
*)
echo "Your zabbix verison not support OR Not found Zabbix.Please check zabbix"
;;
esac
解决后效果如下:
更多更好的原创文章,请访问官方网站: 点我就能跳转咯-》https://nothingzh.gitee.io
也可关注“哎呦运维”微信订阅号,随时接受文章推送。