最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux服務(wù)器使用Cron實(shí)現(xiàn)日志自動清理方案

 更新時間:2026年01月19日 08:34:04   作者:愛琴孩  
本文詳細(xì)介紹了如何使用find和cron組合實(shí)現(xiàn)Linux服務(wù)器日志的自動化清理,包括日志目錄分析、解決方案設(shè)計、實(shí)施步驟、驗(yàn)證與測試以及find命令的詳細(xì)解析,需要的朋友可以參考下

一、背景問題

在生產(chǎn)環(huán)境中,隨著服務(wù)持續(xù)運(yùn)行,日志文件會不斷累積,占用大量磁盤空間。以某開發(fā)測試服務(wù)器為例:

  • 日志目錄/data/logs
  • 服務(wù)數(shù)量:100+ 個微服務(wù)
  • 磁盤占用:28G
  • 待清理文件:24267 個(超過 7 天)

如果不及時清理,可能導(dǎo)致磁盤空間不足,影響服務(wù)正常運(yùn)行。

二、日志目錄分析

2.1 目錄結(jié)構(gòu)

/data/logs/
├── cas_logs/                    # CAS認(rèn)證服務(wù)日志
├── nginx/                       # Nginx日志
├── ttpt_cas/                    # 平臺CAS日志
├── yyzx_testservice_logs/       # 測試服務(wù)日志
├── ... (100+ 服務(wù)目錄)
├── spring.log                   # 散落的日志文件
└── spring.log.2025-12-31.log

2.2 日志文件命名規(guī)則

通過分析,發(fā)現(xiàn)日志文件主要有以下幾種命名格式:

格式示例
服務(wù)名-YYYY-MM-DD-HH-序號.logcas-2022-01-04-11-1.log
服務(wù)名.log.YYYY-MM-DD.logttpt_gmservice_logs.log.2026-01-08.log
access_log.YYYY-MM-DD.logaccess_log.2026-01-08.log
*.gz壓縮后的歷史日志

三、解決方案設(shè)計

3.1 技術(shù)方案

使用 find + cron 組合實(shí)現(xiàn)自動化日志清理:

  • find 命令:按文件類型和修改時間篩選日志文件
  • cron 定時任務(wù):每天定時執(zhí)行清理腳本
  • 日志記錄:記錄每次清理操作,便于追溯

3.2 安全措施

安全措施說明
目錄限制只在 /data/logs 目錄下操作
文件類型限制只刪除 *.log、*.log.**.gz 文件
只刪文件使用 -type f,不刪除目錄
時間限制只刪除 7 天前的文件(-mtime +7
操作日志記錄每次清理的時間和文件數(shù)量

四、實(shí)施步驟

4.1 創(chuàng)建腳本目錄

mkdir -p /data/scripts

4.2 創(chuàng)建清理腳本

創(chuàng)建文件 /data/scripts/clean_old_logs.sh

#!/bin/bash
#
# 日志清理腳本 - 刪除7天前的日志文件
# 每天早上9點(diǎn)由cron定時執(zhí)行
# 
# 安全措施:
# 1. 只在 /data/logs 目錄下操作
# 2. 只刪除日志文件(*.log, *.log.*, *.gz)
# 3. 只刪除文件,不刪除目錄
# 4. 記錄清理日志
#
?
LOG_DIR="/data/logs"
DAYS=7
SCRIPT_LOG="/data/scripts/clean_logs_history.log"
?
# 確保只在 /data/logs 目錄下操作
if [ ! -d "$LOG_DIR" ]; then
    echo "$(date '+%Y-%m-%d %H:%M:%S') - 錯誤: 目錄 $LOG_DIR 不存在" >> "$SCRIPT_LOG"
    exit 1
fi
?
# 記錄開始時間
echo "$(date '+%Y-%m-%d %H:%M:%S') - 開始清理 ${DAYS} 天前的日志文件..." >> "$SCRIPT_LOG"
?
# 統(tǒng)計將要刪除的文件數(shù)量
COUNT=$(find "$LOG_DIR" -type f \( -name "*.log" -o -name "*.log.*" -o -name "*.gz" \) -mtime +$DAYS 2>/dev/null | wc -l)
?
# 刪除日志文件
find "$LOG_DIR" -type f \( -name "*.log" -o -name "*.log.*" -o -name "*.gz" \) -mtime +$DAYS -delete 2>/dev/null
?
# 記錄完成
echo "$(date '+%Y-%m-%d %H:%M:%S') - 清理完成,共刪除 $COUNT 個文件" >> "$SCRIPT_LOG"

4.3 賦予執(zhí)行權(quán)限

chmod +x /data/scripts/clean_old_logs.sh

4.4 配置 Cron 定時任務(wù)

# 添加定時任務(wù)(每天早上9點(diǎn)執(zhí)行)
(crontab -l 2>/dev/null | grep -v "clean_old_logs.sh"; echo "0 9 * * * /bin/bash /data/scripts/clean_old_logs.sh") | crontab -
?
# 驗(yàn)證是否添加成功
crontab -l

Cron 表達(dá)式說明

0 9 * * * /bin/bash /data/scripts/clean_old_logs.sh
│ │ │ │ │
│ │ │ │ └── 星期幾 (0-7, 0和7都表示周日)
│ │ │ └──── 月份 (1-12)
│ │ └────── 日期 (1-31)
│ └──────── 小時 (0-23)
└────────── 分鐘 (0-59)

五、驗(yàn)證與測試

5.1 預(yù)覽待刪除文件

# 查看將被刪除的文件數(shù)量
find /data/logs -type f \( -name "*.log" -o -name "*.log.*" -o -name "*.gz" \) -mtime +7 2>/dev/null | wc -l
?
# 查看部分文件列表
find /data/logs -type f \( -name "*.log" -o -name "*.log.*" -o -name "*.gz" \) -mtime +7 2>/dev/null | head -20

5.2 手動執(zhí)行測試

# 執(zhí)行清理腳本
/bin/bash /data/scripts/clean_old_logs.sh
?
# 查看清理記錄
cat /data/scripts/clean_logs_history.log
?
# 查看磁盤使用變化
du -sh /data/logs

5.3 查看 Cron 執(zhí)行日志

# 查看系統(tǒng) cron 日志
tail -f /var/log/cron
?
# 查看清理歷史記錄
cat /data/scripts/clean_logs_history.log

六、find 命令詳解

6.1 核心參數(shù)說明

參數(shù)說明
-type f只匹配文件,不匹配目錄
-name "*.log"匹配文件名模式
-o邏輯或,連接多個匹配條件
-mtime +7修改時間超過 7 天
-delete刪除匹配的文件
2>/dev/null忽略權(quán)限不足等錯誤信息

6.2 時間參數(shù)對比

參數(shù)含義
-mtime +7修改時間 > 7 天前
-mtime 7修改時間 = 7 天前
-mtime -7修改時間 < 7 天前(7 天內(nèi))
-atime訪問時間
-ctime狀態(tài)改變時間

七、排除或指定目錄清理

7.1 如何排除某些目錄不清理?

在 find 命令中添加 -not -path 參數(shù):

find "$LOG_DIR" -type f \
    -not -path "*/kafka-logs/*" \
    -not -path "*/nginx/*" \
    \( -name "*.log" -o -name "*.log.*" -o -name "*.gz" \) \
    -mtime +$DAYS -delete

7.2 如何只清理特定服務(wù)的日志?

修改 LOG_DIR 或添加路徑過濾:

# 只清理特定服務(wù)
LOG_DIR="/data/logs/yyzx_testservice_logs"
?
# 或使用通配符匹配多個服務(wù)
find /data/logs/yyzx_* -type f -name "*.log" -mtime +7 -delete

八、總結(jié)

本方案通過 find + cron 實(shí)現(xiàn)了服務(wù)器日志的自動化清理:

項(xiàng)目配置
清理目錄/data/logs
保留天數(shù)7 天
執(zhí)行時間每天 09:00
清理記錄/data/scripts/clean_logs_history.log

核心優(yōu)勢

  • ? 自動化執(zhí)行,無需人工干預(yù)
  • ? 安全限制,避免誤刪重要文件
  • ? 操作留痕,便于問題追溯
  • ? 配置靈活,易于調(diào)整參數(shù)

以上就是Linux服務(wù)器使用Cron實(shí)現(xiàn)日志自動清理方案的詳細(xì)內(nèi)容,更多關(guān)于Linux Cron日志自動清理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Ubuntu安裝scrcpy完成手機(jī)投屏和控制(Ubuntu用QQ微信的另一種方法)

    Ubuntu安裝scrcpy完成手機(jī)投屏和控制(Ubuntu用QQ微信的另一種方法)

    這篇文章主要介紹了Ubuntu安裝scrcpy手機(jī)投屏和控制(Ubuntu用QQ微信的另一種方法),這樣的話不用頻繁在鍵盤和手機(jī)間切換了 ,需要的朋友可以參考下
    2019-10-10
  • linux引導(dǎo)系統(tǒng)的方法分析

    linux引導(dǎo)系統(tǒng)的方法分析

    這篇文章主要介紹了linux引導(dǎo)系統(tǒng)的方法,總結(jié)分析了Linux引導(dǎo)系統(tǒng)相關(guān)原理、操作命令與注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • KLOXO重置管理員登陸密碼的方法分享

    KLOXO重置管理員登陸密碼的方法分享

    今天準(zhǔn)備整理面板的配置問題的,登陸密碼忘記了,郁悶不已。我們只有通過SSH來重置KLOXO初始密碼
    2012-09-09
  • Linux使用fdisk進(jìn)行磁盤的相關(guān)操作

    Linux使用fdisk進(jìn)行磁盤的相關(guān)操作

    fdisk?命令是?Linux?中用于管理磁盤分區(qū)的強(qiáng)大文本實(shí)用程序,這篇文章主要為大家詳細(xì)介紹了如何使用fdisk進(jìn)行磁盤的相關(guān)操作,需要的可以了解下
    2025-01-01
  • ubuntu下安裝Python多版本的方法及注意事項(xiàng)

    ubuntu下安裝Python多版本的方法及注意事項(xiàng)

    倒霉的今天我居然把ubuntu系統(tǒng)給完壞了,因?yàn)槲野裵ython3卸載了,然后就哦了,下面小編給大家分享下ubuntu下管理python的多個版本的方法,本文給大家介紹的非常詳細(xì),感興趣的朋友一起看下吧
    2016-10-10
  • centos7中firewall防火墻命令詳解

    centos7中firewall防火墻命令詳解

    本篇文章主要介紹了centos7中firewall防火墻命令詳解,具有一定的參考價值,有需要的可以了解一下。
    2016-11-11
  • Linux之httpd啟動或重啟報錯問題及解決

    Linux之httpd啟動或重啟報錯問題及解決

    文章提供了一個解決HTTPD服務(wù)配置錯誤的步驟,包括查看日志、使用systemctl命令檢查服務(wù)狀態(tài)、定位并注釋錯誤配置行,最終成功重啟服務(wù)
    2026-04-04
  • ubuntu如何開啟ssh遠(yuǎn)程登錄

    ubuntu如何開啟ssh遠(yuǎn)程登錄

    在Ubuntu上開啟SSH遠(yuǎn)程登錄的步驟如下:檢查SSH安裝情況、啟動SSH服務(wù)、設(shè)置開機(jī)啟動、檢查SSH狀態(tài)、配置防火墻、并使用SSH客戶端進(jìn)行遠(yuǎn)程登錄
    2025-03-03
  • 基于Ubuntu 18.04配置固定IP的方法教程

    基于Ubuntu 18.04配置固定IP的方法教程

    最近新裝的Ubuntu 18.04還是不習(xí)慣,但還是要努力適應(yīng),下面這篇文章主要給大家介紹了關(guān)于基于Ubuntu 18.04配置固定IP的方法教程,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • 在Linux系統(tǒng)上刷新DNS緩存的方法

    在Linux系統(tǒng)上刷新DNS緩存的方法

    DNS是互聯(lián)網(wǎng)的一項(xiàng)服務(wù),它作為將域名和 IP 地址相互映射的一個分布式數(shù)據(jù)庫,能夠使人更方便地訪問互聯(lián)網(wǎng),而不用記住能夠被機(jī)器直接讀取的 IP 數(shù)串,但是,有時候我們可能需要刷新或清除 DNS 緩存,本文將詳細(xì)介紹如何在Linux系統(tǒng)上刷新DNS緩存,需要的朋友可以參考下
    2024-06-06

最新評論

静海县| 宜良县| 永嘉县| 荔波县| 杭州市| 宝清县| 迁西县| 大丰市| 衡阳市| 雷波县| 连平县| 什邡市| 陇南市| 托克逊县| 罗田县| 萨迦县| 镇安县| 赤壁市| 翁牛特旗| 大洼县| 牙克石市| 六盘水市| 云和县| 海门市| 宜川县| 扎囊县| 巴林左旗| 仪陇县| 庆云县| 东乡族自治县| 田林县| 石台县| 赞皇县| 江西省| 庄河市| 遵义县| 宁南县| 准格尔旗| 嘉鱼县| 桃园市| 南召县|