プラグイン
BcBackup baserCMS 5対応
このプラグインについて
サイトのデータベースとアップロードファイルを ZIP にまとめて保存します。
- DB バックアップ — 標準方式(baserCMS のコア機能でスキーマと CSV を出力。外部コマンドが使えないレンタルサーバでも動き、リストアもコマンド一発)と、ネイティブ方式(mysqldump / pg_dump / SQLite のファイルコピー)を選べます。MySQL / MariaDB / PostgreSQL / SQLite に対応
- ファイルのバックアップ — 対象ディレクトリは自由に指定できます(初期値は webroot/files)。2回目以降は差分だけを保存するので、画像の多いサイトでも短時間で終わります
- 世代管理 — 保持世代数と保持日数で古いバックアップを自動削除。差分はフルとセットのチェーン単位で管理するので、途中の差分だけ消えて復元できなくなることはありません
- 実行方法 — 管理画面のボタン(バックグラウンドで実行し、進捗をその場に表示)と、CLI コマンドの2通り。cron に登録すれば毎晩自動で取得できます
- リストア — bin/cake bc_backup restore で DB とファイルをまとめて書き戻します
- バックアップ中は自動でメンテナンスモードに切り替えます。多重実行の防止、空き容量チェック、書き込み途中の ZIP を残さない仕組みも入れています

利用方法
- 管理画面からプラグインをアップロードする(または plugins/BcBackup に配置)
- 管理画面 > プラグイン管理 から有効化
- 管理画面 > プラグイン > バックアップ で保存先などを設定
外部ライブラリには依存していないので、composer install は必要ありません。
cron の設定例はサイトの実際のパス入りで管理画面に表示されます。そのままコピーしてお使いください。
詳しくは README をご覧ください。
https://github.com/kaburk/BcBackup/blob/main/README.md

注意事項
- バックアップファイルにはサイトのデータが丸ごと入ります。Web から直接ダウンロードできる場所には置かないでください(webroot 配下を指定した場合は .htaccess を自動で設置しますが、nginx では効きません)
- リストアはコマンドからの実行のみです。管理画面にリストアボタンはありません
- 管理画面からの実行には exec / proc_open が必要です。禁止されているサーバでは cron からご利用ください(実行ボタンは自動で隠れます)
- データ量の多いサイトは管理画面からだとタイムアウトすることがあります。cron での定期実行をおすすめします
- mysqldump / pg_dump のパスは自動で探しますが、見つからない場合は管理画面で指定してください。ネイティブ方式で失敗したときは標準方式に自動で切り替わります
- メンテナンスモードは管理者のログイン中や debug モードでは効かないため、書き込みを完全に止めるものではありません

リポジトリ
ご利用について
自己責任でおねがいします。
バックアップは取れていても、いざという時に戻せなければ意味がありません。導入したら一度リストアを試しておくことをおすすめします。











