Linux中定时删除超过指定大小的文件夹
程序员文章站
2022-08-28 17:27:03
背景: 开发环境总是动不动就没有空间了, 大部分都是debug日志。所以有必要在日志很疯狂的时候,删除不必要的日志。 思路:一、 书写删除日志文件脚本; 定时任务执行。 但是有时候的日志是需要保存用来查询的。所以不完美。 二、 删除脚本保存,定时任务去查询系统空间是否到达临界值,到达则删除,否则不进 ......
背景: 开发环境总是动不动就没有空间了, 大部分都是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);}}'
欢迎交流!!!
上一篇: 唐沐:小米路由器Mesh不亏钱的话 一套高配售价会过千
下一篇: 生拌牛肉怎么做好吃