backup:clean — バックアップをクリーンアップするコマンド

artisan

backup:clean

一言で言うと:古いバックアップファイルを一括削除する Artisan コマンドです。

カテゴリ 掲載バージョン FQCN / コマンド 関連 変更履歴
artisan Laravel 12 / PHP 8.4 php artisan backup:clean backup:run, backup:check, backup:delete v3.0.0 で追加(Spatie Laravel Backup 3.x 以降)

要点(TL;DR)

  • 使い方php artisan backup:clean
  • 主なオプション--days(削除対象の最低保持日数)、--force(確認プロンプトをスキップ)
  • 落とし穴:設定ファイル config/backup.phpdelete_backup_on_createfalse の場合、削除は実行されません。

概要

backup:clean は、Spatie の Laravel Backup パッケージにより提供される Artisan コマンドで、設定された保持期間より古いバックアップファイルを自動で検出し、削除します。
削除対象はローカルストレージ、S3、GCS など、設定に応じて異なります。

コマンド構文

php artisan backup:clean [options]
オプション 必須 既定値 説明
--days int いいえ config('backup.retention', 7) 削除対象とする最小保持日数。指定した日数より古いバックアップを削除。
--force bool いいえ false 確認プロンプトをスキップして即座に削除。
--no-interaction bool いいえ false インタラクティブプロンプトを無効化。
--quiet bool いいえ false 出力を最小限に抑える。
--help bool いいえ false コマンドヘルプを表示。

戻り値:0(成功)または 1(エラー)

使用例

最小構成

php artisan backup:clean

実務例

# 30日以上古いバックアップを削除し、確認プロンプトをスキップ
php artisan backup:clean --days=30 --force

よくある落とし穴・注意点

問題 原因 対策
保持期間が適用されない config/backup.phpdelete_backup_on_createfalse true に設定し、パッケージを再インストール
大量削除で時間がかかる クラウドストレージ(S3 等)で大量ファイルを削除 --quiet を併用し、ログレベルを下げる
権限エラー アプリケーションユーザーにストレージ権限が不足 chmod / chown を適切に設定

代替・関連コマンドとの比較

コマンド 主な違い 選択基準
backup:clean 保持期間に基づき自動で削除 バックアップのみを対象にしたい
php artisan storage:prune ストレージ全般の古いファイルを削除 バックアップ以外も含めてクリーンアップしたい
backup:delete 指定ファイルを手動で削除 期間ではなくファイル単位で削除したい

テスト例(Pest)

use Spatie\Backup\BackupSettings;
use Spatie\Backup\Tasks\Clean\CleanBackups;

it('removes backups older than the retention period', function () {
    $settings = BackupSettings::make()
        ->deleteBackupsOlderThan(30);

    $cleaner = CleanBackups::make($settings);

    // ダミーのバックアップファイルを作成
    // $cleaner->run();

    // 古いファイルが削除されたことを確認
    expect($cleaner->filesDeleted())->toBeGreaterThan(0);
});

トラブルシュート

エラー 原因 対処
Permission denied ストレージの書き込み権限不足 chmod / chown で権限を付与
No backups found 保持期間が短すぎる、または設定が誤っている --days を増やす、または config/backup.php を確認
Command aborted 確認プロンプトで n を入力 --force オプションを付けて実行

参考リンク

レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする