Linux查找大文件并自动删除(日志管理)

服务上线有段时间了,今天收到磁盘报警通知,想应该是日志报警,于是想通过自动化删除7天前的日志信息,具体操作步骤如下(前两步排查文件大小):

1、登录服务器查看磁盘占用情况

df -lH

是/mvsp的目录占用空间太多

2、再通过du命令查看是哪个目录占用日志大

du -sh /mvsp/*

 

3、现在确定是日志文件了,下面做自动删除

3.1 创建一个 clearlog.sh 文件,内容如下

#!/bin/bash 
find /mvsp/LOGS/logs -name "*.log_*" -mtime +7 -ls >> /mvsp/delete_$(date +%Y-%m-%d).log | xargs
find /mvsp/LOGS/logs  -mtime +7 -name "*.log_*" -exec rm -rf {} \;

 第一行说明:用于记录删除的文件名

「 find 」查找

「 /mvsp/LOGS/logs 」指定目录

「 -mtime +7 」7天前的(天数可自定义)

「 -name "*.log_*" 」所有文件名中包含  .log_ 的文件

「 | xargs -i mv {} 」固定写法

「 /mvsp/delete_」文件名

完整意思:查找/mvsp/LOGS/logs 目录下 7天前的所有文件名中包含  .log_ 的文件,然后文件名保存到  /mvsp/delete_*.log文件中 。

 

第二行说明:

 find 」查找

「/mvsp/LOGS/logs 」指定的目录

「 -mtime +7 」7天前的(天数可自定义)

「 -name "*.log_*" 」所有文件名中包含  .log_ 的文件

「 -exec rm -rf {} \ 」固定写法

完整意思:查找/mvsp/LOGS/logs 目录下 7天前的所有文件名中包含  .log_ 的文件,然后将它们全部删除。

3.2 给  clearlog.sh 添加执行权限

chmod 777 clearlog.sh

3.3 设置定时任务:添加定时执行 clearlog.sh 脚本的任务

crontab -e

   添加定时任务(每天凌晨1点执行)

0 1 * * * /mvsp/clearlog.sh

 

注意:为避免引起不必要的风险,建议先在测试环境使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值