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

原文地址:http://blog.51cto.com/11820620/2119648

时间: 2024-11-09 01:41:22

shell脚本 检测根分区硬盘空间使用率的相关文章

实时监控本机内存和硬盘剩余空间,剩余内存小于 500M、根分区剩余空间小于 1000M 时,发送报警

#!/bin/bashgen_size=$(df / |awk '/\//{print $4}') #提取根分区剩余空间mem_size=$(free |awk '/Mem/{print $4}') #提取内存剩余空间while :do#注意内存和磁盘提取的空间大小都是以 Kb 为单位if [ $gen_size -le 512000 -a $mem_size -le 1024000 ];thenmail -s Warning root <<EOFInsufficient resources,

vmware上给根分区增加空间以及创建逻辑卷

1.在vmware上给根分区增加空间 509  cd /sys/class/scsi_host/ 查看添加的硬盘信息是否在系统中 521  echo "- - -" > /sys/class/scsi_host/host0/scan加载硬盘信息 522  echo "- - -" > /sys/class/scsi_host/host1/scan 523  echo "- - -" > /sys/class/scsi_host/

Shell脚本实现磁盘分区格式化

Shell脚本实现磁盘分区格式化 我们的Shell脚本程序结构分为,顺序结构,选择结构以及循环结构,我们之前已经介绍过选择结构包括if.case语句,循环结构包括for循环.while循环以及until循环,今天我们就来介绍一下until循环,until循环的语法格式如下: until condition;do 循环体 done 由以上可以看出,我们的until循环的语法格式和我们的while循环是一样的,唯一不同的是我们的while循环是在满足condition的情况下进入循环体进行循环,而我

马哥教育视频学习笔记-shell脚本完成磁盘分区格式化

马哥教育视频学习笔记-shell脚本完成磁盘分区格式化-http://edu.51cto.com/lesson/id-28201.html 以下是脚本内容,内容比较简单,不做详解 在Linux上准备一块空闲的磁盘即可,如何分区可以在脚本内改下 #!/bin/bash # echo "Initial a disk..." echo -e "\033[31mWarning: \033[0m " #开始的说明信息,其中Warning以红色字体显示 fdisk -l 2&g

linux shell脚本检测硬盘磁盘空间 邮件报警

使用 http://www.weiruoyu.cn/?p=368 shell脚本监控硬盘空间剩余空间 邮件报警 1.先观察一下磁盘,和如何使用脚本 [[email protected] ~]# df -h 文件系统              容量  已用 可用 已用% 挂载点 /dev/mapper/VolGroup00-LogVol00 8.9G  2.6G  5.9G  31% / /dev/sda1              99M   13M   82M  13% /boot tmpfs

同一个磁盘中从根分区缩小空间到扩展SWAP分区空间实践步骤

操作背景: 公司中有一部分主机在开始设计的时候,并未考虑到SWAP的大小,只是分配了物理内存的2倍-4G,导致后期应用部署完成后对系统的SWAP分区要求达不到标准.因此经过部分和领导讨论后,决定在同一块磁盘上来减少根分区的大小,并使用缩减出来的大小去增加swap分区大小的操作,这中间要保障数据的完整和业务应用不丢失.这样做既可以保障数据盘不受影响,也保证应用系统在完成后可以正常使用,也减少了以后的一些风险(比如要使用额外的磁盘来增加swap空间大小需要考虑额外磁盘的稳定等). 操作分析: 由于根

利用shell脚本远程磁盘分区

在学习linux有关知识,前段时间学习了shell脚本,写了一个非常简单的脚本,远程其他虚拟机进行磁盘分区,自己纯手打的,也算是记录个人学习的一些过程吧,大神可以略过!下面是脚本内容,可以直接运行的!系统是CentOS7.4的版本 #!/bin/bash#利用expect远程分区expect << EOFspawn ssh 172.25.0.11expect "password" {send "redhat\n"}expect "#"

WyBox使用shell脚本检测io口是否正常

1. 修改mt7620a.dts文件,把gpio管脚复用全都定义为通用gpio /dts-v1/; /include/ "mt7620a.dtsi" / { compatible = "ralink,mt7620a-eval-board", "ralink,mt7620a-soc"; model = "Ralink MT7620a + MT7610e evaluation board"; [email protected]10

shell脚本检测网络是否畅通

shell初始化安装脚本执行时,需从网络上安装一些rpm包,所有需要先检测网络的畅通性, 代码 #检测网络链接&&ftp上传数据 function networkAndFtp() { #超时时间 timeout=5 #目标网站 target=www.baidu.com #获取响应状态码 ret_code=`curl -I -s --connect-timeout $timeout $target -w %{http_code} | tail -n1` if [ "x$ret_co