centos7 tomcat定时删除日志脚本 crontab+shell

创建删除日志脚本

[root@lmx var]# vim backup_book_img_clean.sh
#!/bin/sh
 
find /tmp/logs -name "*.log"  -mtime +1 -exec rm -rf {} \; > /dev/null 2>&1

/tmp/logs  #这个是文件的路径path

-mtime +1 #这个是保留的天数,1就是1天

-name "*.png"  #这个是要删除文件的名称,这边加后缀就是删除这个类型的文件

其他的是Linux的命令

 /dev/null 2>&1    将标准输出和标准错误输出重定向到伪设备/dev/null,它的作用就是执行某个命令将不会有任何日志输出。

给shell添加执行权限

chmod +x bakup_logs_clean.sh 

  使用crontab来设置脚本的执行周期

 关于crontab的配置我在上一篇添加日志备份中提到,可参考:https://blog.csdn.net/nxzjkcsakk/article/details/126915308

crontab具体命令可参考 :

https://blog.csdn.net/qq_51514930/article/details/124269555

 

crontab -e #进入crontab添加任务

 进入之后 添加定时删除任务

*/1 * * * * /var/bakup_logs_clean.sh

       分钟:0-59
       小时:1-23
       日期:1-31
       月份:1-12
       星期:0-6(0表示周日)
       *: 表示任何时刻
       ,: 表示分割
      -:表示一个时间段
       /n : 表示每个n的单位执行一次。例如第二段中,*/1, 就表示每隔1个小时执行一次命令。

 查看当前定时任务:

crontab -l

查看当前定时任务日志执行信息:

 tail -f /var/log/cron

 测试一下任务执行情况

我这里备份的日志都是今天的,使用需要修改一下文件的访问时间、更改时间、改动时间。 

查看一下日志文件的三个时间:

stat 2022091810316_access.log

centos7 tomcat定时删除日志脚本 crontab+shell_第1张图片

说明:Access:访问时间   Modify:修改时间  Change:改变时间 ,可以使用stat * 查看这个目录所有文件的状态。

 修改一下文件时间

创建文件我们可以通过touch命令来创建,同样的,我们也可以使用touch命令来修改文件时间。touch 的相关参数如下:

-a : 仅修改access time

-c  :仅修改时间,而不建立文件

-d  :后面可以接日期,也可以使用 --date="日期或时间" 

-m :仅修改mtime

-t  :后面可以接时间,格式为 [YYMMDDhhmm]

注意:如果touch后面接一个已经存在的文件,则该文件的3个时间(atime/ctime/mtime)都会更新为当前时间。若该文件不存在,则会主动建立一个新的空文件。

 使用touch修改文件时间:

1.改变文件的修改时间和访问时间

touch -d "2018-4-18 08:00:00" 20220918102702_access.log

查看文件

stat 20220918102702_access.log

2.只改变文件的修改时间:

touch -m -d "2018-05-20 08:00:00" 20220918102702_access.log

3.只改变文件的访问时间:

touch -a -d "2018-05-10 09:00:00" 20220918101316_access.log

修改完文件的时间,我们就可以进行日志定时删除脚本的测试了 

你可能感兴趣的:(tomcat,linux,运维)