全部產品
Search
文件中心

Serverless App Engine:定期清理程式日誌

更新時間:Jan 14, 2026

應用日誌需要定期清理,否則大量日誌擠占儲存空間將導致應用功能異常。日誌清理功能可以在程式碼中實現。此外,本文介紹一種方案,僅需簡單配置即可實現定期清理SAE應用的日誌。

方案概述

藉助應用運行環境中的Cron工具,根據使用者的定時任務配置,自動執行日誌清理任務。

操作步驟

通過程式碼封裝部署的應用

針對不同的作業系統版本,安裝和配置Cron工具的方法如下:

說明

應用運行環境對應的作業系統版本,請參見使用程式碼封裝部署應用

Debian作業系統

  1. 安裝Cron工具並配置定時任務

    在建立應用或部署應用時,应用部署方式選擇代码包部署,點擊设置代码包部署,開啟自定义运行环境设置(包括预装工具、下载/修改文件、安装运行时依赖/扩展等),輸入以下命令:

    #!/bin/bash
    
    set -o errexit
    set -o nounset
    set -o pipefail
    
    # 安裝Cron工具:
    apt-get update || true
    apt-get install -y cron
    
    # 配置定時任務(詳細資料請參見本文的定時任務參數說明):
    echo "0 * * * * root find /home/admin/logs/* -mtime +7 -name '*.log'  -exec rm -rf {}  \;">>/etc/crontab # 每小時執行,刪除超過7天未發生修改的記錄檔。
    # 為了便於快速驗證效果,可以採用如下配置:
    # echo "* * * * * root find /home/admin/logs/* -mmin +1 -name '*.log'  -exec rm -rf {}  \;">>/etc/crontab # 每分鐘執行,刪除超過1分鐘未發生修改的記錄檔。
  2. 啟動Cron工具

    在建立應用或部署應用時,在应用生命周期管理地區,開啟启动后处理(PostStart设置),輸入以下命令:

    service cron start

CentOS作業系統

  1. 安裝Cron工具並配置定時任務

    在建立應用或部署應用時,应用部署方式選擇代码包部署,點擊设置代码包部署,開啟自定义运行环境设置(包括预装工具、下载/修改文件、安装运行时依赖/扩展等),輸入以下命令:

    #!/bin/bash
    
    # 運行環境中內建Cron工具,無需安裝。
    
    # 配置定時任務(詳細資料請參見本文的定時任務參數說明):
    echo "0 * * * * root find /home/admin/logs/* -mtime +7 -name '*.log'  -exec rm -rf {}  \;">>/etc/crontab # 每小時執行,刪除超過7天未發生修改的記錄檔。
    # 為了便於快速驗證效果,可以採用如下配置:
    # echo "* * * * * root find /home/admin/logs/* -mmin +1 -name '*.log'  -exec rm -rf {}  \;">>/etc/crontab # 每分鐘執行,刪除超過1分鐘未發生修改的記錄檔。
  2. 啟動Cron工具

    在建立應用或部署應用時,在应用生命周期管理地區,開啟启动后处理(PostStart设置),輸入以下命令:

    /sbin/crond start

通過鏡像部署的應用

  1. 在構建鏡像階段,自行安裝Cron工具並配置定時任務。

  2. 在建立應用或部署應用時,在應用生命週期管理地區,開啟啟動後處理(PostStart設定),輸入以下命令:

    • 基於Debian作業系統的鏡像:service cron start

    • 基於CentOS作業系統的鏡像:/sbin/crond start

定時任務參數說明

關於配置定時任務的命令,詳細說明如下:

echo "0 * * * * root find /home/admin/logs/* -mtime +7 -name '*.log'  -exec rm -rf {}  \;">>/etc/crontab
  • /etc/crontab:定時任務的設定檔。

  • 0 * * * *:Crontab運算式,用於配置定時任務的執行時間,可自訂,格式如下:

    f1 f2 f3 f4 f5

    其中f1表示分鐘,f2表示小時,f3表示一個月份中的第幾日,f4表示月份,f5表示一個星期中的第幾天。

    f1*時,表示每分鐘都要執行程式,f2*時,表示每小時都要執行程式,以此類推。

    常見的Crontab運算式如下。

    執行時間

    格式

    每分鐘定時執行一次

    * * * * *

    每小時定時執行一次

    0 * * * *

    每天定時執行一次

    0 0 * * *

    每周定時執行一次

    0 0 * * 0

    每月定時執行一次

    0 0 1 * *

  • root:執行定時任務的使用者。

  • find /home/admin/logs/* -mtime +7 -name '*.log' -exec rm -rf {} \;:表示找到/home/admin/logs目錄下所有記錄檔,並刪除其中超過7天未發生修改的檔案。-mtime表示天,-mmin表示分鐘。