码迷,mamicode.com
首页 > 系统相关 > 详细

Linux中定时删除超过指定大小的文件夹

时间:2019-04-09 12:37:02      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:文件夹   cat   否则   没有   col   not   div   color   monitor   

背景: 开发环境总是动不动就没有空间了, 大部分都是debug日志。所以有必要在日志很疯狂的时候,删除不必要的日志。

思路:一、 书写删除日志文件脚本; 定时任务执行。  但是有时候的日志是需要保存用来查询的。所以不完美。

   二、 删除脚本保存,定时任务去查询系统空间是否到达临界值,到达则删除,否则不进行任何操作。

 

日志删除脚本:

#!/bin/sh
date "+%Y-%m-%d %H:%M:%S"
echo ==========before rm==========
df -h
echo
echo current dir size:
du -sh  
echo


find /logs -name "log.out.*" -user $USER -exec rm -f {} \;
find /logs -name "log-201*.out" -user $USER -exec rm -f {} \;
find /logs -name "facade.out.*" -user $USER -exec rm -f {} \;
find /logs -name "monitorlog.out.*" -user $USER -exec rm -f {} \;
find /logs -name "monitordetaillog.out.*" -user $USER -exec rm -f {} \;

find /logs -name "catalina.out.*" -user $USER -exec rm -f {} \;
find /logs -name "catalina.2*" -user $USER -exec rm -f {} \;

if [ ! -f .cleanFile.sh ]; then
echo "cat /dev/null>\$1">.cleanFile.sh
chmod +x .cleanFile.sh
fi

find /logs -name "catalina.out" -user $USER -exec ./.cleanFile.sh {} \;
find /logs -name "log.out" -user $USER -exec ./.cleanFile.sh {} \;

echo ==========after rm===========
df -h
echo 
echo current dir size:
du -sh 
echo

定时删除任务:

1 4 * * * /logs/rmlog.sh>>/logs/rmlog.sh.log

指定大小删除的定时任务:

# 查询使用多少空间
mya="df -h | sed -n ‘3p;‘ | awk ‘{print $2}‘ | sed ‘s/G//‘"

# 如果空间不够,则执行日志删除脚本
awk BEGIN{ if($mya>34){cmd="sh /logs/rmlog.sh"; system(cmd);}else{cmd="echo nothing"; system(cmd);}}

# 定时任务
*/2 * * * * awk BEGIN{ if($mya>34){cmd="sh /logs/rmlog.sh"; system(cmd);}else{cmd="echo nothing"; system(cmd);}}

 

欢迎交流!!! 

Linux中定时删除超过指定大小的文件夹

标签:文件夹   cat   否则   没有   col   not   div   color   monitor   

原文地址:https://www.cnblogs.com/Payne-SeediqBale/p/10676088.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!