設置日誌超過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命令或者程序等運行中有內容輸出。後臺

相關文章
相關標籤/搜索