shell脚本删除30天之前日志

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本删除30天之前日志相关的知识,希望对你有一定的参考价值。

参考技术A 1、新建sh文件

删除30天以前的文件

#!/bin/bash

find /home/sdu/server/node1/logs/ -mtime +30 -print | xargs rm -rf

 //注释-mtime是距离上一次修改时间 -print是只显示文件 xargs是获取find查找的结果在通过rm命令删除

2、部署服务器

3、设置crontab定时任务

  打开定时任务配置文件:crontab -e

  定时调用test.sh:* * * * * /home/test.sh

        保存退出:按键ESC,输入:wq

第一个*        一小时当中的第几分钟      0-59

第二个*        一天当中的第几小时          0-23

第三个*        一个月当中的第几天          1-31

第四个*        一年当中的第几月              1-12

第五个*        一周当中的星期几              0-7(0和7都代表周日)

*        代表任何时间,比如第一个 * 就代表一小时中的每分钟都执行

,        代表不连续的时间,比如 0 8,12,16 * * * 代表每天8,12,16点0分执行

-        代表连续的时间范围,比如0 5 * * 1-6 代表在周一到周六凌晨5点0分执行

*/n     代表每个多久执行一次,比如*/10 * * * *代表每隔10分钟执行一次

例子:

45 22 * * *    

在22点45分执行

0 17 * * 1     

在每周1的17点0分执行

0 5 1,15 * *  

在每月1号和15号的凌晨5点0分执行

40 4 * * 1-5  

在每周一到周五的凌晨4点40分执行

*/10 4 * * *    

在每天的凌晨4点,每隔10分钟执行一次

0 0 1,15 * 1  

每月1号和15号,每周1的0点0分都会执行

  注意:星期几和几号最好不要同时出现,他们的意义都是天,容易混淆

4、查看目前都有那些定时任务

        crontab -l

5、备注:

定时任务需要crond服务的支持

    1.启动方法  service crond restart

    2.该服务默认是开机启动的

  取消定时任务

    1.全部取消 crontab -r

    2.取消某个 crontab -e 配置文件,删除要取消的哪一行配置

若定时任务存在,编辑shell脚本后,不用做任何操作,不放心的话可以启动脚本看下是否报错 sh 脚本名字

linux脚本shell删除N天的日志find -mtime -exec

这个非常简单一行命令即可:

log_path=/ccc/logs/nginx/
DAYS=5
find ${log_path} -name "access_*" -type f -mtime +$DAYS -exec rm {} ;

或者一行命令

find /usr/local/nginx/log -name "app_*" -type f -mtime +5 -exec rm -rfv {} ;

参考:

#10天以前所有,不包括第10天当天的文件
$ find -mtime +10 -exec rm -rfv {} ;

# 10天前,当天一天的文件
$ find -mtime 10 -exec rm -rfv {} ;

# 10天内,包括今天的文件,但不包括第10当天的文件
$ find -mtime -10 -exec rm -rfv {} ;

find及-exec的使用

以上是关于shell脚本删除30天之前日志的主要内容,如果未能解决你的问题,请参考以下文章

Linux运维---第二个shell脚本

日志文件删除shell脚本

linux脚本shell删除N天的日志find -mtime -exec

shell定期删除日志脚本

采用shell脚本定时清理Tomcat日志

使用Shell脚本批量给tomcat日志打包压缩并清理