Linux中使用定時任務每週定時清理45天以前日誌

2021-09-21 23:02:11 字數 1748 閱讀 4799

如題所示,生產伺服器每天會產生很大的日誌檔案,為了不使硬碟被日誌檔案塞滿,因此需要定期清理日誌檔案。這時我們可以寫乙個shell指令碼用來清理某個路徑下45天以前的日誌,然後再設定乙個定時任務每週定時執行這個指令碼即可

(1)清理某個路徑下的日誌指令碼deloldlogs.sh:

1

[root@prx01 cleanlog]# vim /usr/local/cleanlog/deloldlogs.sh

1

2

3

4

#!/bin/sh

#刪除輸入路徑下的修改時間在45天以前的日誌檔案

find$1 -mtime +45 -name"*log*"-execrm-f {} \;

這段**不難理解,就是清理引數1所在的路徑下的修改時間在45天以前的日誌檔案

(2)指定清理哪些路徑的日誌的指令碼del_all_oldlogs.sh:

1

[root@prx01 cleanlog]# vim /usr/local/cleanlog/del_all_oldlogs.sh

1

2

3

4

5

#!/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"

(3)給指令碼新增執行許可權: 1

[root@prx01 cleanlog]# chmod a+x /usr/local/cleanlog/del*.sh

(4)新增定時任務: 1

[root@prx01cron]# vim /var/spool/cron/root

新增以下內容: 1

10 0 * * 6 /usr/local/cleanlog/del_all_oldlogs.sh

注:為了防止出現許可權不夠的情況,因此這裡設定了乙個root使用者的定時任務

這句**的意思是:在每週6的0:10執行/usr/local/cleanlog/del_all_oldlogs.sh 這個指令碼

如果對linux中的定時任務不太熟悉的話,建議可以參考下我寫的這篇文章:

(5)檢視定時任務:

1

# crontab -l

Linux中使用定時任務每週定時清理45天以前日誌

如題所示,生產伺服器每天會產生很大的日誌檔案,為了不使硬碟被日誌檔案塞滿,因此需要定期清理日誌檔案。這時我們可以寫乙個shell指令碼用來清理某個路徑下45天以前的日誌,然後再設定乙個定時任務每週定時執行這個指令碼即可 1 清理某個路徑下的日誌指令碼deloldlogs.sh root prx01c...

Linux使用定時任務每週定時清理45天以前日誌

本文主要介紹的是linux使用定時任務每週定時清理45天以前日誌。伺服器每天會產生很大的日誌檔案,為了不使硬碟被日誌檔案塞滿,因此需要定期清理日誌檔案。這時我們可以寫乙個shell指令碼用來清理某個路徑下45天以前的日誌,然後再設定乙個定時任務每週定時執行這個指令碼即可。清理某個路徑下的日誌指令碼d...

linux定時任務 at定時任務

at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...