前言
有时候我们部署在Linux上的项目每天会产生大量的日志文件,如果我们长时间忘记清除这些无效日志,那么很可能造成我们服务器内存不够,进而使服务器宕机,但是如果每天手动清除的话,又太浪费时间和精力,不如我们写个shell脚本来帮我们定时清空日志!
执行步骤:
一、在Linux上随意一个文件夹下,我这里是 /project/dev/ ,新建一个文件,文件名随意,我这里是del.sh
然后我们编辑这个文件,写入如下内容,然后保存:
#!/bin/bash
find /boot/back/logs/ -mtime +0 -name '*' -exec rm -rf {} \;
注意:不要少了最后的分号
这个脚本的意思就是
#脚本解释
find /boot/back/logs/ 在 /boot/back/logs 文件夹下查找
-name '*.log' 所有以 .log结尾的文件
-exec 固定格式
rm -rf {} \ 删除文件
-mtime +0 一天之前的
整个脚本的意思就是 删除/boot/back/logs/ 下所有的文件中 以 .log 结尾的,并且修改时间为一天前的文件。
关于 -mtime 命令更多的含义请参考如下博客,Linux中的find(-atime、-ctime、-mtime)指令分析
编写好脚本之后,我们执行命令 crontab -l 查看服务器上的定时任务,如果没有就新建一个定时任务
操作如下:
输入crontab -e 新建定时任务,
输入内容 0 */8 * * * sh /project/dev/del.sh并保存
执行命令 crontab -l 查看定时任务
[root@iZ2zeepnt3ok05tr3d5qc4Z src]# crontab -e
0 */8 * * * sh /qp/project/dev/del.sh
[root@iZ2zeepnt3ok05tr3d5qc4Z src]# crontab -l
0 */8 * * * sh /qp/project/dev/del.sh
关于定时执行脚本的命令参考博客如下:Linux下定时执行脚本实例
做完这些我们的定时任务就每隔8个小时执行一次啦!