crontab 日志_聊聊老板让我删除日志文件那些事儿
一、背景
老板:小白,剛才咱們的機器告警磁盤空間不足了,你去定位一下原因。
我:(......空間不足礙我屁事兒)好的,馬上定位
我:老板,太多N天前的日志文件占用了太多空間。?
老板:你感覺你保留著這些日志,我會給你晉升漲薪嘛?
我:應該不會吧(如果會的話,那就太好了)?
老板:(發怒)你知道不會,還不趕快去清理一下日志文件。?
(說完便揚長而去,留下在風中凌亂的我)
二、解決方案
有些問題你感覺是送分題,往往這卻是一道送命題
rm -rf unused.log 縱然粗暴,但是你仍可以將它玩出細膩的花樣。
問:那怎么才能玩的細膩呢?
答:crontab。
什么你還不知道crontab?
答:那還不快去google一下。
三、Crontab介紹
crontab命令常見于Unix和類Unix的操作系統之中,用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執行。該詞來源于希臘語 chronos(χρνο),原意是時間。通常,crontab儲存的指令被守護進程激活, crond常常在后臺運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。
通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的單位可以是分鐘、小時、日、月、周及以上的任意組合。這個命令非常適合周期性的日志分析或數據備份等工作。
3.1 命令格式
本文不是詳細介紹crontab,如想詳細了解,還請自行google。
crontab [-u user] [ -e | -l | -r ]
-u user:用來設定某個用戶的crontab服務
-e:編輯crontab文件
-l:顯示crontab文件內容
-r:刪除crontab文件
3.2 文件格式
分 時 日 月 星期 要運行的命令
四、實踐
4.1 創建刪除日志的shell文件
首先我們先創建刪除日志的shell文件,這樣cron任務要運行的命令就是
sh myshell.sh。我的任務是刪除7天前創建的日志文件,所以shell文件delLog.sh定義如下:
# !/usr/binfind?/logs/?-name?'*.log'?-mtime?+7?-exec?rm?-rf?{}?\;4.2 創建并編輯使用crontab -e,存在任務則直接編輯,不存在則創建之后再編輯。編輯內容如下:
0 5 * * 1 sh delLog.sh0 5 * * 1:表示每周一的凌晨5點執行五、遇到的問題總結
問題1:配置了定時任務,但是沒有生效
最終通過該文章得到了解決:crontab 在mac上不執行問題研究
問題2:我想刪除文件夾怎么辦
因為上面是使用find命令找到并刪除,所以使用參數-type d即可。例如: 想刪除7天前創建且名為log的文件夾。
# !/usr/binfind /logs/ -name 'log' -type d -mtime +7 -exec rm -rf {} \;六、工具
最后給大家推薦一下自己用到的相關工具:
crontab-generator:該網站可以通過頁面配置生成相應的表達式
在線工具:該網站可以驗證crontab表達式的準確性,區分不同語言(linux、java)
總結
以上是生活随笔為你收集整理的crontab 日志_聊聊老板让我删除日志文件那些事儿的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MVC里面写html获取不到input,
- 下一篇: 计算机c语言等级考试PDF,国家计算机等