51Testing软件测试论坛

标题: linux 磁盘满了后的处理 [打印本页]

作者: 芭比哇玩123    时间: 2017-6-12 17:15
标题: linux 磁盘满了后的处理
  昨天早上遇到的,之前因为几个类似井喷的事件才出现,本来也是打算做手动清除的。
硬盘问题会导致服务器dump. 一般会在本地备份一份,也会在服务器上备份,服务器的最好备份在单独1个服务器里,不占用产品的磁盘空间.本地的就没办法了.
当然磁盘空间不足有好几个原因,目前确定是塞满了.
使用df -hl可以查看到服务器硬盘的情况,当然现在是已经正常了。

使用du –bs +路径 具体查看目录,看看恢复后的
我们是db s4区出了问题,然后du –bs /data/xxx/s4/logs

如果能用软件监控是最好的(一般运维用),如果身为测试想自己动手,可以用下面的那个脚本.供参考
  1. #!/bin/bash
  2. #Dsize=95 超过脚本的阀值
  3. partition_list=(`df -h | awk 'NF>3&&NR>1{sub(/%/,"",$(NF-1));print $NF,$(NF-1)}'`)
  4. Dsize=95
  5. notification_email()
  6. {
  7.     emailuser='user@domain.com'
  8.     emailpasswd='password'
  9.     emailsmtp='smtp.domain.com'
  10.     sendto='user1@domain.com'
  11.     title='Disk Space Alarm'
  12.     /opt/sendEmail-v1.56/sendEmail -f $emailuser -t $sendto -s $emailsmtp -u $title -
  13. xu $emailuser -xp $emailpasswd
  14. }
  15. crit_info=""
  16. for (( i=0;i<${#partition_list[@]};i+=2 ))
  17. do
  18.     if [ "${partition_list[((i+1))]}" -lt "$Dsize" ];then
  19.         echo "OK! ${partition_list[i]} used ${partition_list[((i+1))]}%"
  20.     else        
  21.             if [ "${partition_list[((i+1))]}" -gt "$Dsize" ];then
  22.                 crit_info=$crit_info"Warning!!! ${partition_list[i]} used  
  23. ${partition_list[((i+1))]}%\n"
  24.             fi
  25.     fi
  26. done
  27. if [ "$crit_info" != "" ];then
  28.     echo -e $crit_info | notification_email
  29. fi
复制代码
1)上传脚本xxx.sh到/opt目录下 需要用root用户的权限
2)赋予可执行权限chmod 777 xxx.sh
3)下载邮件程序 sendEmail-v1.56
4)解压文件到/opt下面 tar xvf /opt/sendEmail-v1.56.tar.gz
5)测试脚本 磁盘填充或者修改Dsize变小。
6)然后设置计划,设置1个时间定期查询1次。
希望大家可以在工作中和TesterHome一起努力,一起进步。

搜索

作者: jingzizx    时间: 2017-6-12 17:40
赞一个
作者: Miss_love    时间: 2017-6-13 09:01
动手能力强




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2