QNAPに「さくらのVPS」のシステムバックアップを自動でおこなう②

postgresqlのDBバックアップ

/var/lib/postgresql/bkup_daily.sh [任意の場所]

postgresqlユーザで実行するので、postgresのホームディレクトリにおいてある。

# backup
/usr/bin/pg_dumpall -f /backup/today_bkup.sql
/usr/bin/zip  --encrypt --password xxxxxx /backup/postgres_`date "+%Y%m%d_%H%M"`.zip /backup/today_bkup.sql
/usr/bin/rm /backup/today_bkup.sql

# old-backup-delete
/usr/bin/rm  `ls -t /backup/* | tail -n+8`
  • pg_dumpallで出力したあと、/backupへ暗号化ZIPで日付ファイル名で出力。
  • 7世代より古いファイルは削除する。 -n+8の数字をかえることで世代数は変更可能。(世代数が少ないうちは削除エラーがでるが、動作上問題がないのでよしとする)

出力先は/backupにしてあるが任意の場所でOK。postgresユーザで書き込みできる権限にしておく。

chmod +x /var/lib/postgresql/bkup_daily.sh

crondから実行するので実行権限をつけておく。

crondの設定

$ crontab -e

0 4 * * * /usr/bin/sh /var/lib/postgresql/bkup_daily.sh >/dev/null 2>&1

上記の例は毎日朝の4時にバックアップをとる設定にしてある。

Timeshiftの設定

ubuntu20.04であれば、apt install timeshiftでインストール可能。 最新版をインストールしたい場合は、以下の手順。

$ sudo add-apt-repository -y ppa:teejee2008/timeshift
$ sudo apt-get update
$ sudo apt-get install timeshift

f:id:ntoh:20210325000118p:plain

f:id:ntoh:20210325000125p:plain

外部ディスクを利用できればいいが、VPSなので同じディスクを指定。

f:id:ntoh:20210325000131p:plain

スケジュールは任意。システムバックアップなので、基本は大きな更新作業前に、手動でとっておくのがよい。

取り忘れのために、週次と月次で1世代だけとるようにした。

f:id:ntoh:20210325000135p:plain

ホームディレクトリはデフォルトで隠しファイル以外は対象外となっている。自分の使い方ではこちらもバックアップ必要なので加えてある。