vps の ubuntu 18.04 に django を設定して、その中にデータベースを作成し自分用のメモとして使っています。
他人にとってはほとんど意味のないデータですが、私にとっては重要なデータでありバックアップしておく必要があります。
シェルスクリプト
サーバー上で、以下のようなシェルスクリプトを作成。
下から2行は古いものを削除するものですが、おそらくこれで動くはずです。
crontab 設定
crontab の設定をします。
これで深夜2時に自動的にバックアップが実行されます。
ローカルから scp
ローカルの linux mint 20.2 から ssh 接続ができているという前提です。
データベースだけではなくて、画像もアップロードしているので、そしてそれは media の中に蓄積されているので、フォルダごと scp ダウンロードした後でローカル環境の media に上書きしています。
これで、プライベートなデータベースのバックアップがとても簡単になりました。
NAS 上でバックアップする
ローカルのシェルスクリプトに crontab を設定しようかと思ったのですが、自宅でコンピュータの電源をオンにするのは不定期なので、バックアップを NAS にさせるようにしました。
ローカルのシェルスクリプトをほとんどそのまま使えますが、ssh キーはパーミッションの設定が必要なようです。
以下のようにしました。
json データと media の保存先を homes 以外の所に設定します。
そしてタスクスケジューラで深夜に1回シェルスクリプトを実行するようにします。
これで、json と media が毎日バックアップされ、ほぼ同時に rsync で他の NAS に同期され、さらに1日1回外付けHDDにバックアップされます。
これで私のメモ代わりのデータベースのバックアップは完璧になりました。