创建删除日志脚本
[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
说明: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
修改完文件的时间,我们就可以进行日志定时删除脚本的测试了