本文主要介紹的是Linux使用定時任務每周定時清理45天以前日志航背。服務器每天會產(chǎn)生很大的日志文件延柠,為了不使硬盤被日志文件塞滿,因此需要定期清理日志文件外潜。這時我們可以寫一個shell腳本用來清理某個路徑下45天以前的日志原环,然后再設置一個定時任務每周定時執(zhí)行這個腳本即可。
①清理某個路徑下的日志腳本delOldLogs.sh:
[root@prx01 cleanlog]# vim /usr/local/cleanlog/delOldLogs.sh
#!/bin/sh
#刪除輸入路徑下的修改時間在45天以前的日志文件
find $1 -mtime? +45? -name "*log*" -exec rm -f? {}? \;
這段代碼不難理解处窥,就是清理參數(shù)1所在的路徑下的修改時間在45天以前的日志文件
說明:??
find:Linux查找命令嘱吗,用戶查找指定條件的文件??
/home/logs/:需要進行清理的目標目錄? $1? 清理參數(shù)1所在的路徑下
-mtime:標準語句寫法??
+10?:數(shù)字代表天數(shù)??
-name?"*.log.*":目標文件的類型,帶有l(wèi)og的所有文件??
-exec:固定寫法??
rm?-rf:強制刪除包括目錄在內(nèi)的文件??
{}?\;:固定寫法滔驾,一對大括號+空格+\+;?
②指定清理哪些路徑的日志的腳本del_all_OldLogs.sh:
[root@prx01 cleanlog]# vim /usr/local/cleanlog/del_all_OldLogs.sh
#!/bin/bash
/usr/local/cleanlog/delOldLogs.sh "/home/usr/ewp/logs"
/usr/local/cleanlog/delOldLogs.sh "/home/usr/h5/logs"
/usr/local/cleanlog/delOldLogs.sh "/home/usr/Payment/logs"
③給腳本添加執(zhí)行權限:
[root@prx01 cleanlog]# chmod a+x /usr/local/cleanlog/del*.sh
④添加定時任務:
[root@prx01 cron]# vim /var/spool/cron/root
10 0 * * 6? /usr/local/cleanlog/del_all_OldLogs.sh
注:
為了防止出現(xiàn)權限不夠的情況谒麦,因此這里設置了一個root用戶的定時任務
這句代碼的意思是:在每周6的0:10執(zhí)行/usr/local/cleanlog/del_all_OldLogs.sh 這個腳本
⑤查看定時任務:
[root@app05 logs]# crontab -l