1. 程式人生 > 實用技巧 >linux自動刪除日誌SH 指令碼

linux自動刪除日誌SH 指令碼

為什麼80%的碼農都做不了架構師?>>> hot3.png

1.刪除檔案命令:

find對應目錄-mtime+天數-name"檔名"-execrm-rf{}\;

例項命令:

find/opt/soft/log/-mtime+30-name"*.log"-execrm-rf{}\;

說明:

將/opt/soft/log/目錄下所有30天前帶".log"的檔案刪除。具體引數說明如下:

find:linux的查詢命令,使用者查詢指定條件的檔案;

/opt/soft/log/:想要進行清理的任意目錄;

-mtime:標準語句寫法;

+30:查詢30天前的檔案,這裡用數字代表天數;

"*.log":希望查詢的資料型別,"*.jpg"表示查詢副檔名為jpg的所有檔案,"*"表示查詢所有檔案,這個可以靈活運用,舉一反三;

-exec:固定寫法;

rm-rf:強制刪除檔案,包括目錄;

{}\;:固定寫法,一對大括號+空格+\+;

2.1建立shell:

touch/home/admin/logs/bin/auto-del-30-days-ago-log.sh

chmod+xauto-del-30-days-ago-log.sh

2.2編輯shell指令碼:

vim auto-del-30-days-ago-log.sh

編輯auto-del-30-days-ago-log.sh檔案如下:(目錄結構為舉例)


#!/bin/bash
find /日誌目錄/ -mtime +30 -name "*.log" -exec rm -rf {}\;

2.3計劃任務:

執行:crontab -e命令,把下面內容之一,通過vim命令編輯儲存退出

(每隔兩小時刪除日誌)

0 */2 * * */home/admin/logs/bin/auto-del-30-days-ago-log.sh>/dev/null2>&1

(每隔15分鐘刪除日誌)

15,30,45,59 * * * * /home/admin/logs/bin/auto-del-30-days-ago-log.sh >/dev/null2>&1

2.4檢視計劃任務是否執行:crontab -l

附:

看看crontab 的時間表達式


基本格式 : *  *  *  *  *  command
分 時 日 月 周 命令 命令

圖片描述

然後來幾個實際的例子:

1、每分鐘執行一次

* * * * *

2、每隔一小時執行一次

00 * * * *

或者

* */1 * * * (/表示頻率)


3、每小時的15和30分各執行一次
15,45 * * * * (,表示並列)

4、在每天上午 8- 11時中間每小時 15 ,45分各執行一次
15,45 8-11 * * * command (-表示範圍)

5、每個星期一的上午8點到11點的第3和第15分鐘執行
3,15 8-11 * * 1 command

6、每隔兩天的上午8點到11點的第3和第15分鐘執行
3,15 8-11 */2 * * command

後續有很多開發填坑的文章釋出,如果對你有幫助,請支援和加關注一下

http://e22a.com/h.05ApkG?cv=AAKHZXVo&sm=339944

https://shop119727980.taobao.com/?spm=0.0.0.0

轉載於:https://my.oschina.net/baishi/blog/417872