CentOS7-Shell定时脚本(查看硬盘大小)

1,原因:

  1),服务器硬盘容量太小,系统盘50G

  2),一个测试服务器,多组在使用

  3),系统开启了sql打印,再加上要测试的定时任务功能打印过多

  4),没钱!!!

2,方案

  shell脚本定时执行,脚本里查看硬盘当前使用比例,超过设置值,清理Tomcat日志文件

3,步骤

  1),进入/root目录,编写定时脚本checkCapacity.sh

  cd /root

  vim checkCapacity.sh

  2),checkCapacity.sh

#!/bin/bash
#这个脚本使用来查看磁盘大小

#时间
day=`date "+%Y-%m-%d"`
minute=`date "+%k:%M"`
echo  "*************************************************************************" >> checkCapaLog.txt
echo "统计开始时间:$day $minute" >> checkCapaLog.txt

#/dev/vda1磁盘使用情况
disk_vda1=`df -Ph |grep /dev/vda1|awk '{print $5}'|cut -f 1 -d "%"`
#设置最大值
max_dev=80

if [ $disk_vda1 -ge $max_dev ]
then
   echo "目前磁盘容量为${disk_vda1}% 大于等于 设置临界值${max_dev}%" >>checkCapaLog.txt
   
   echo "正在清理'/data/project/p06/apache-tomcat-7.0.92/logs/'文件夹中90天前的文件" >>checkCapaLog.txt
   find /data/project/p06/apache-tomcat-7.0.92/logs -type f -mtime +90 -name "*.*" -exec rm -rf {} \;
   
   echo "正在清理/data/project/p06/apache-tomcat-7.0.92/logs/catalina.out" >>checkCapaLog.txt
   echo -n "" > /data/project/p06/apache-tomcat-7.0.92/logs/catalina.out
   
   echo "正在清理/usr/local/redis-cluster/redis.log" >>checkCapaLog.txt
   echo -n "" > /usr/local/redis-cluster/redis.log
   
   disk_clear=`df -Ph |grep /dev/vda1|awk '{print $5}'|cut -f 1 -d "%"`
   echo "清理完毕-目前磁盘容量占用$disk_clear%" >>checkCapaLog.txt
else
   echo "目前磁盘容量为${disk_vda1}% 未超出 设置临界值${max_dev}%,请安心使用" >>checkCapaLog.txt
fi

echo  "结束本次统计:$day $minute" >> checkCapaLog.txt
echo  "*************************************************************************" >> checkCapaLog.txt
#换行
echo -e "\n" >> checkCapaLog.txt

  *其中* /dev/vda1是系统盘,可以通过df -h来查看

  参数disk_vda1其实就是上图的70

  3),定时任务

   vim /etc/crontab

  4),crontab

  1 SHELL=/bin/bash
  2 PATH=/sbin:/bin:/usr/sbin:/usr/bin
  3 MAILTO=root
  4 
  5 # For details see man 4 crontabs
  6 
  7 # Example of job definition:
  8 # .---------------- minute (0 - 59)
  9 # |  .------------- hour (0 - 23)
 10 # |  |  .---------- day of month (1 - 31)
 11 # |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
 12 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
 13 # |  |  |  |  |
 14 # *  *  *  *  * user-name  command to be executed 
 15 # 分 时 天 月 星期 命令(用户 脚本)
 15 * * */1 * * root /root/checkCapacity.sh

  5),重启定时任务服务

  /sbin/service crond restart

4,遗憾:

  1),系统盘虽然是50G,但是数据盘倒是有500G,应该考虑将日志文件挂载在数据盘

  2),在脚本中,直接将日志文件内容清空,应该到达警戒值,发送邮件提出预警!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值