shell脚本定时清除日志文件

一、shell脚本

#!/bin/bash

clearfile () {

#获取磁盘使用率
disksize=$(df /| awk '/\//{print$5}')
#获取文件夹内,文件大小(M为单位)和文件路径
filesizeandfile=$(du -sm /appdata/tomcat-creditcard/logs/* |awk '{print $1,$2}'|sort -rn|head -n 1)
#调用clear函数清空文件
clear $filesizeandfile

}

clear(){
read filesize filepath<<< `echo "$filesizeandfile" | awk '{print $1,$2}'`

echo '文件大小:' $filesize 
echo '文件路径:' $filepath 
echo '磁盘空间' $disksize

#获取文件名
filename=${filepath##*/} 
echo "文件名:" $filename

#判断磁盘使用率是否大于某个值,判断文件大小是否大于某个值,判断文件名是否包含log字符
if [ "95" -le "${disksize%%%}" ] && [ "1000" -le "$filesize" ] ; then
echo '磁盘使用率超过95%,且文件大于1000M'
if [[ $filename =~ "log" ]] || [[ $filename == "catalina.out" ]]; then
echo '清空文件' $filepath
echo ""> $filepath
else
echo '文件名不包含log,或者文件名不是catalina.out'
fi 
else
echo '磁盘空间充足或者文件较小'
fi
} 

clearfile &

二、赋予执行权限

chmod 777 clearfile.sh

三、脚本难点解决

1.如何获取磁盘使用率

df /| awk ‘///{print$5}’

2.如何获取文件夹中的文件大小和文件路径

du -sm /appdata/tomcat-creditcard/logs/* |awk ‘{print $1,$2}’ (-sm文件大小以M为单位)

3.排序

sort -rn

4.获取第一条数据

head -n 1

5.if语句使用记得加空格,否则会报错

少了空格
在这里插入图片描述
正确写法
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值