すべてのプロダクト
Search
ドキュメントセンター

Serverless App Engine:アプリケーションログの定期的なクリーンアップ

最終更新日:Jan 14, 2026

アプリケーションログは定期的にクリーンアップする必要があります。そうしないと、サイズの大きいログファイルがストレージ容量を消費し、アプリケーションエラーを引き起こす可能性があります。アプリケーションコードでログのクリーンアップを実装することもできますが、このトピックでは代替ソリューションについて説明します。簡単な構成を使用して、Serverless App Engine (SAE) アプリケーションのログを定期的にクリーンアップできます。

概要

このソリューションでは、アプリケーション実行環境の Cron ツールを使用して、設定した定期タスク構成に基づいてログのクリーンアップタスクを自動的に実行します。

操作手順

コードパッケージからデプロイされたアプリケーション

以下のセクションでは、さまざまなオペレーティングシステムのバージョンで Cron ツールをインストールし、構成する方法について説明します。

説明

アプリケーション実行環境に対応するオペレーティングシステムのバージョンの詳細については、「コードパッケージからアプリケーションをデプロイする」をご参照ください。

Debian オペレーティングシステム

  1. Cron ツールのインストールと定期タスクの構成

    アプリケーションを作成またはデプロイするには、Application Deployment MethodCode Package-based Deployment に設定し、Configure Code Package-based Deployment をクリックし、Custom Runtime Environment Settings (Including Tool Pre-installation, File Download/Modification, and Runtime Dependency/Extension Installation) を有効にして、次のコマンドを入力します。

    #!/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 # 1時間ごとに実行され、7日以上変更されていないログファイルを削除します。
    # 結果を迅速に確認するには、次の構成を使用できます。
    # echo "* * * * * root find /home/admin/logs/* -mmin +1 -name '*.log'  -exec rm -rf {}  \;">>/etc/crontab # 1分ごとに実行され、1分以上変更されていないログファイルを削除します。
  2. Cron ツールの起動

    アプリケーションを作成またはデプロイするときは、Application Lifecycle Management エリアで PostStart Settings を有効にし、次のコマンドを入力します。

    service cron start

CentOS オペレーティングシステム

  1. Cron ツールのインストールと定期タスクの構成

    アプリケーションを作成またはデプロイするときは、Application Deployment MethodCode Package-based Deployment に設定し、Configure Code Package-based Deployment をクリックし、Custom Runtime Environment Settings (Including Tool Pre-installation, File Download/Modification, and Runtime Dependency/Extension Installation) を有効にして、次のコマンドを入力します。

    #!/bin/bash
    
    # Cron ツールはランタイム環境に含まれているため、インストールする必要はありません。
    
    # 定期タスクを構成します (詳細については、このトピックの「定期タスクのパラメーター」セクションをご参照ください)。
    echo "0 * * * * root find /home/admin/logs/* -mtime +7 -name '*.log'  -exec rm -rf {}  \;">>/etc/crontab # 1時間ごとに実行され、7日以上変更されていないログファイルを削除します。
    # 結果を迅速に確認するには、次の構成を使用できます。
    # echo "* * * * * root find /home/admin/logs/* -mmin +1 -name '*.log'  -exec rm -rf {}  \;">>/etc/crontab # 1分ごとに実行され、1分以上変更されていないログファイルを削除します。
  2. Cron ツールの起動

    アプリケーションを作成またはデプロイする際、Application Lifecycle Management セクションで、PostStart Settingsを有効にして、次のコマンドを入力します:

    /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 式は次のとおりです。

    実行時間

    フォーマット

    毎分 1 回実行

    * * * * *

    毎時 1 回実行

    0 * * * *

    毎日 1 回実行

    0 0 * * *

    毎週 1 回実行

    0 0 * * 0

    毎月 1 回実行

    0 0 1 * *

  • root:定期タスクを実行するユーザーです。

  • find /home/admin/logs/* -mtime +7 -name '*.log' -exec rm -rf {} \;:このコマンドは、/home/admin/logs フォルダ内のすべてのログファイルを検索し、7日以上変更されていないファイルを削除します。-mtime は時間を日数で指定し、-mmin は時間を分で指定します。