1.监控磁盘linux命令:df
[root@hadoop02 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/sda2 ext4 18G 9.5G 7.0G 58% /
tmpfs tmpfs 491M 72K 491M 1% /dev/shm
/dev/sda1 ext4 283M 37M 232M 14% /boot
注:T:显示文件系统的类型。h:以可读性较高的方式来显示信息。
查看磁盘根目录存储信息:
[root@hadoop02 ~]# df -Th | grep '/$'
/dev/sda2 ext4 18G 9.5G 7.0G 58% /
获取根目录下的磁盘使用率:
[root@hadoop02 ~]# df -Th | grep '/$'|awk '{print $(NF-1)}'
58%
注:awk是文本编辑命令NF-n命令是打印一行数据的倒数第n列数据NF-0是打印倒数第1列数据,NF-1是打印倒数第二列数据…
[root@hadoop02 ~]# df -Th | grep '/$'|awk '{print $(NF-1)}' | awk -F "%" '{print $1}'
58
注:-F指定域分隔符为‘%’
shell监控磁盘使用率达到90%时给lhw用户发送邮件报警脚本:
#!/bin/bash
disk_use=`df -Th |grep '/$' | awk '{print $(NF-1)}'|awk -F"%" '{print $1}'`
mail_user=lhw
if [ $disk_use -ge 90 ];then
echo "`date +%F-%H` disk: ${disk_use}%" | mail -s "disk war..." $mail_user
fi
如果想查看脚本执行过程可以采用测试方法执行:
[root@hadoop02 temp]# bash -vx disk_use.sh
#!/bin/bash
disk_use=`df -Th |grep '/$' | awk '{print $(NF-1)}'|awk -F"%" '{print $1}'`
df -Th |grep '/$' | awk '{print $(NF-1)}'|awk -F"%" '{print $1}'
++ awk '{print $(NF-1)}'
++ awk -F% '{print $1}'
++ grep '/$'
++ df -Th
+ disk_use=58
mail_user=lhw
+ mail_user=lhw
if [ $disk_use -ge 30 ];then
echo "`date +%F-%H` disk: ${disk_use}%" | mail -s "disk war..." $mail_user
fi
+ '[' 58 -ge 30 ']'
+ mail -s 'disk war...' lhw
date +%F-%H
++ date +%F-%H
+ echo '2020-06-06-11 disk: 58%'
这里记录一下我遇到的一个问题:
[root@hadoop01 temp]# bash -vx disk_use.sh
#!/bin/bash
disk_use=`df -Th |grep '/$' | awk '{print $(NF-1)}'|awk -F"%" '{print $1}'`
df -Th |grep '/$' | awk '{print $(NF-1)}'|awk -F"%" '{print $1}'
++ awk -F% '{print $1}'
++ awk '{print $(NF-1)}'
++ grep '/$'
++ df -Th
+ disk_use=66
mail_user=lhw
+ mail_user=lhw
if [ $disk_use -ge 60 ];then
echo "`date +%F-%H` disk: ${disk_use}%" | mail -s "disk war..." $mail_user
fi
+ '[' 66 -ge 60 ']'
+ mail -s 'disk war...' lhw
date +%F-%H
++ date +%F-%H
+ echo '2020-06-06-11 disk: 66%'
[root@hadoop01 temp]# send-mail: error while loading shared libraries: libmysqlclient.so.16: t open shared object file: No such file or directory
error提示我:没有找到libmysqlclient.so.16这个文件
解决办法:
#查找下libmysqlclient.so文件看是否存在
[root@hadoop01 temp]# locate libmysqlclient.so
我的情况是不存在,可能也有人有但是不是libmysqlclient.so.16而是libmysqlclient.so.18或者libmysqlclient.so.19等其他的
如果执行 locate libmysqlclient.so命令没有查找到的话直接去官网下载个
下载地址:https://downloads.mysql.com/archives/community/

注意:下载的版本要和你mysql安装的版本匹配
下载下上面2个解压安装:
rpm -ivh MySQL-shared-compat-5.6.29-1.linux_glibc2.5.x86_64.rpm
rpm -ivh MySQL-shared-5.6.29-1.linux_glibc2.5.x86_64.rpm
再次查看:
[lhw@hadoop02 ~]$ locate libmysqlclient.so
/usr/lib64/libmysqlclient.so
/usr/lib64/libmysqlclient.so.18
/usr/lib64/libmysqlclient.so.18.1.0
不是我要的libmysqlclient.so.16这时候执行脚本依然会报错,查找不到libmysqlclient.so.16文件
解决办法创建软连接:
ln -s /usr/lib64/mysql/libmysqlclient.so.18 /usr/lib64/mysql/libmysqlclient.so.16
再次执行脚本就OK了!
内存监控脚本:
#!/bin/bash
mem_used=`free -m | grep '^Mem:' | awk '{print $3}'`
mem_total=`free -m | grep '^Mem:' | awk '{print $2}'`
mem_percent=$((mem_used*100/mem_total))
war_file=/home/01/temp/mem_war.txt
rm -rf $war_file
#echo "当前内存使用百分比:$mem_percent"
if [ $mem_percent -ge 80 ];then
echo "`date +%F-%H` memory:${mem_percent}%" > $war_file
fi
if [ -f $war_file ];then
mail -s "mem war..." alice < $war_file
rm -rf $war_file
fi
1369

被折叠的 条评论
为什么被折叠?



