Webサーバのsdメモリが劣化故障し、停止せざるを得ない状況に陥るときがある。そこで週一回のバックアップ時に別機宛て、apacheやらmysqlの関連のデータを渡して、常に稼働させることにした。
現用のWebサーバ:Rpi4(4GB-RAM)+32GB(本体)+128GB(USB /home)+64GB(USB /pub)
別機のWebサーバ:Rpi3b+32DB(本体)+128GB(USB /home)+64GB(USB /pub)
といった構成。
まずは。現用のWebサーバの主要ファイルを/pub以下に保存するシェルスクリプト。週に1回稼働するよう、/etc/cron.weekly/ に hyper_backup なる名前で保存した。
root@hyper:/etc/cron.weekly# cat hyper_backup
#!/bin/shif [ -e /pub/backup_hyper*.tgz ]; then
rm /pub/backup_hyper*.tar
fi
if [ -d /pub/hyper* ]; then
rm -rf /pub/hyper*
fimkdir -p "/pub/backup_hyper"`date '+%Y%m%d'`"/"
cd /
tar czfp "/pub/backup_hyper"`date '+%Y%m%d'`"/etc.tgz" /etccd /etc
cp -p /etc/passwd "/pub/backup_hyper"`date '+%Y%m%d'`"/"
cp -p /etc/group "/pub/backup_hyper"`date '+%Y%m%d'`"/"
cp -p /etc/shadow "/pub/backup_hyper"`date '+%Y%m%d'`"/"
tar czfp "/pub/backup_hyper"`date '+%Y%m%d'`"/etc_letsencrypt.tgz" ./letsencrypt/
tar czfp "/pub/backup_hyper"`date '+%Y%m%d'`"/etc_samba.tgz" ./samba/
tar czfp "/pub/backup_hyper"`date '+%Y%m%d'`"/etc_apache2.tgz" ./apache2cd /home
tar cfp "/pub/backup_hyper"`date '+%Y%m%d'`"/home.tar" ./[a-km-z]*cd /var/lib
tar czfp "/pub/backup_hyper"`date '+%Y%m%d'`"/var_lib_mysql.tgz" ./mysqlcd "/pub/backup_hyper"`date '+%Y%m%d'`"/"
tar cfp "/pub/hyper"`date '+%Y%m%d'`".tar" ./*exit 0
root@hyper:/etc/cron.weekly#
これを常用webサーバに入れる。
***注意***
- /pub/backup_hyper?????? のディレクトリに、/etc/passwd,/etc/shadow,/etc/group 他、秘匿を要するファイルが含まれているので、インターネットに公開しないよう、httpd.confや.htaccessを充分検討お願いします。pgpで暗号化したら良いかな?
- tarファイルの成否についてエラーチェックしてませんが、追加したほうが良い予感。
コメント