shell脚本 检测根分区硬盘空间使用率

#!/bin/bash

IP=$(ifconfig eth0 |grep "inet addr"| awk '{print $2}' |cut -f1 -d":")
 a=$(df -h |grep /dev/sda2 |awk '{print $5}'|cut -f1 -b"%" )    #截取分区使用率
if [ $a -ge 80 ]
    then
        echo "$IP 服务器根分区即将没有空间,请及时清理。" |mail -s "$IP 根分区检测"  [email protected]
fi

这里我使用163邮箱,相关设置查看一下链接

https://blog.csdn.net/zh314js/article/details/76038868  转自csdn

以上为最初写,sh直接执行没有报错并且当使用率大于80时,会正常向邮箱发送相关警告,但是当写入crontab定时任务时如下:

*/2 * * * * /shell_script/disk_check.sh

邮箱收到的邮件 中文以及$IP都未正常显示,两个问题的原因都是环境变量导致,crontab运行时已经不是用户的环境了,

针对中文乱码问题:

echo $LANG  先查看语言环境比如是:zh_CN.GB2312

在脚本中添加行: export LANG=zh_CN.GB2312


针对$IP无法显示问题:

在脚本中添加行: source /etc/profile 

猜你喜欢

转载自blog.51cto.com/11820620/2119648