linux自動刪除日誌SH 指令碼
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