linux系統 自動清理日誌實現指令碼

2021-08-20 09:01:36 字數 1221 閱讀 7064

1.刪除檔案命令:find  對應目錄  命令選項

例項命令 

find /export/logs/ -type f -name "*log*" -mtime +3 -exec rm -rf {} \;

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

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

/export/logs/:想要進行清理的任意目錄;

-type f代表檔案 d代表目錄

-mtime:標準語句寫法;+30:查詢30天前的檔案,這裡用數字代表天數;

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

-exec:固定寫法;

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

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

-size 查詢符合大小的檔案;

2.計畫任務:

建立shell指令碼 vi auto-del-log.sh

#!/bin/bash

find /export/logs/ -type f -name "*log*" -mtime +3 -exec rm -rf {} \;

find /export/logs/ -type f -name "*log*" -size +100m -exec rm -rf {} \;

新增可執行許可權  chmod +x auto-del-log.sh

3 設定定時任務

crontab -e

0 1 * * *  auto-del-log.sh   每天凌晨一點執行auto-del-log.sh指令碼

檔案/etc/crontab中每行任務的描述格式如下: 

minute hour day month dayofweek command

minute - 從0到59的整數 

hour - 從0到23的整數 

day - 從1到31的整數 (必須是指定月份的有效日期)

month - 從1到12的整數 (或如jan或feb簡寫的月份)

dayofweek - 從0到7的整數,0或7用來描述週日 (或用sun或mon簡寫來表示)

command - 需要執行的命令(可用as ls /proc >> /tmp/proc或 執行自定義指令碼的命令) 

* 代表任意值 */5 代表沒五個單位時間執行一次

Linux系統實現log日誌自動清理

在實際專案中由於伺服器記憶體有限,人工制定的定時清理時常會忘記。因此啟用linux系統定時任務去執行日誌清理功能。引用文獻 touch auto del log.sh 建立指令碼檔案 cd 進入該目錄 chmod x auto del log.sh 修改執行許可權vi auto del log.sh...

Linux 系統實現log日誌自動清理

linux系統實現log日誌自動清理 body body first child body last child p,blockquote,ul,ol,dl,table,pre h1,h2,h3,h4,h5,h6 h1 tt,h1 code,h2 tt,h2 code,h3 tt,h3 code,h...

Ubuntu系統自動清理日誌或檔案

程式執行中可能會一直儲存log檔案,長此以往會逐漸填滿硬碟空間,造成系統崩潰。人為定期去刪除檔案,也是費時費力還容易遺忘 我們希望電腦能定期的,自動刪除我們不需要的檔案。所要用到的,就是crontab 定時任務。做這件事情的步驟就兩個 寫乙個能自動查詢檔案並刪除檔案的指令碼 使這個指令碼能夠定時被執...