设置日志超过30天自动清除

1、查找删除

在项目目录下建立shell文件shell

# touch clear-log.sh   // 建立clear-log.sh文件
# chmod +x clear-log.sh  //给clear-log文件加可执行权限

在新建立的文件中加入脚本日志

#!/bin/sh
find /Users/lvmoumou/marry/log-storage/logs_store/ -mtime +30 -name "*.log" -exec rm -rf {} \;

其中+30表明查询三十天前的文件,-exec rm -rf {} ;是固定写法,表示强制删除包括目录。下一步只须要在当前目录下执行./clear-log.sh便可实现删除30天前的日志啦。code

2、设置脚本自动执行

有了第一步只完成了咱们想要的一半内容,删除能够了,如何设置自动删除呢。
在终端输入#crontab -e编辑自动执行任务。执行后输入i,编辑任务命令,命令以下crontab

50 10 * * * /Users/lvmoumou/marry/log-storage/clear-log.sh >/dev/null 2>&1

50,10表明在10点50分时执行/Users/lvmoumou/marry/log-storage/clear-log.sh这个文件,后面的>/dev/null 2>&1的前半部分>/dev/null:表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。后半部分2>&1:接着,标准错误输出重定向到标准输出,由于以前标准输出已经重定向到了空设备文件,因此标准错误输出也重定向到空设备文件。
这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,而后将标准输出1所有放到/dev/null文件,也就是清空.
因此能够看出" >/dev/null 2>&1 "经常使用来避免shell命令或者程序等运行中有内容输出。后台

相关文章
相关标签/搜索