> [!failure] > aws-cli がVer2・Ubuntu24になったため、動かなくなりました。 > 現在修正中…… Mastodonの`.env.production`のバックアップは必ずしようね!ヒツジとの約束だよ! ## なんでしなくちゃいけないの? サーバーやDBのシークレットキーが含まれていて、これをなくすと最悪復旧できなくなるから。今後MastodonはDBを暗号化する予定で、その解読のキーを`.env`に登録するわけです。 つまり、いくらDBのバックアップを取っていても、解読キーが書いてある設定ファイル(`.env`)がなければデータを読み込めない。そうなったら、新規ドメインでまっさらな状態で運用していくことになります。そうならないためにも、バックアップはしておきましょうね。 ## 大まかな流れ 1. R2に転送するスクリプトを書く 2. cronで定期的に送る 2は [[Mastodon・MisskeyのデータベースをS3にバックアップする#4.cronを設定する]] に書いてあるので省略。もしR2以外のAWS互換オブジェクトストレージに置きたかったら、適当に変えてください。 ### R2に転送するスクリプトを書く ``` $ cd /usr/local/bin $ nano env-backup.sh ``` 例のごとく、`/usr/local/bin`にスクリプトを置いていきます。 ```sh #!/bin/bash # 時刻取得 TIME=$(date +"%Y%m%d%H%M") # バックアップ開始 su - mastodon << BASH echo "Backup start." # バックアップディレクトリに移動 cp live/.env.production /var/backup gzip -c > env-$TIME-backup.gz echo "Coppyed." # パーミッション・権限変更 exit chmod 744 env-$TIME-backup.gz BASH # rootユーザーに変更 su - root << BASH echo "Send backup file." # S3に転送 ~/.local/bin/aws s3 cp /var/backup/env-$TIME-backup.gz s3://<バケット名>/backup/env/env-$TIME-backup.gz --endpoint-url <エンドポイント> echo "Backup complete." BASH ``` ## 関連リンク - [[Mastodon・MisskeyのデータベースをR2にバックアップする]] ## 参考サイト