批量删除日志,并对日志进行压缩

324 阅读1分钟

批量删除日志,并且对日志进行gzip压缩

  • 需求

    找到/data/logs/目录下所有*.log文件,删除60天以前的,并且对一天以前的使用gzip进行压缩(每一个都压缩)

  • find /data/logs/ -name "*.log" 查找以log为结尾的文件

  • -mtime +60 查找60天之前的文件,-1 代表1天以内的文件

  • xargs rm 删除掉文件,xargs是用来传递参数给rm用的

  • xargs gzip 进行文件压缩,使用gzip压缩源文件会消失

#!/bin/bash
find /data/logs/ -name "*.log" -mtime +60 |xargs rm
find /data/logs/ -name "*.log"  -mtime +1 |xargs gzip  
  • 可以把脚本添加到crontab 计划任务中,每天晚上12点执行

crontab -e

0 0 * * * /bin/bash /usr/local/src/shell/logs_gzip.sh