在项目目录下建立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
有了第一步只完成了咱们想要的一半内容,删除能够了,如何设置自动删除呢。
在终端输入#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命令或者程序等运行中有内容输出。后台