バックアップ

Debian さくらのVPS

一通りの構築が終わったので、バックアップ

ローカルでバックアップ

難しいことは考えず(笑、単に tar + gz でアーカイブする。

スクリプト

cron から起動するために、スクリプト化する。
root@sakura:~# cat /usr/local/sbin/Backup
#! /bin/sh

#---------------------------------------------------
apt-get clean
#---------------------------------------------------

BACKUPDIR=/mnt/Backup/`hostname`
HOSTNAME=`hostname`

if [ ! -d $BACKUPDIR ]
then
        mkdir -p $BACKUPDIR
fi


cd /
D=`LANG=C date +%a`

for DIR in *
do
        case $DIR in
bin);;
boot);;
dev);;
etc)
        tar zcvf $BACKUPDIR/$HOSTNAME-$DIR.$D.tar.gz $DIR
        ;;
home)
        tar zcvf $BACKUPDIR/$HOSTNAME-$DIR.$D.tar.gz $DIR
        ;;
initrd.img);;
initrd.img.old);;
lib);;
lib64);;
lost+found);;
media);;
mnt);;
opt)
        tar zcvf $BACKUPDIR/$HOSTNAME-$DIR.$D.tar.gz $DIR
        ;;
proc);;
root)
        tar zcvf $BACKUPDIR/$HOSTNAME-$DIR.$D.tar.gz $DIR
        ;;
run);;
sbin);;
srv);;
sys);;
tmp);;
usr)
        tar zcvf $BACKUPDIR/$HOSTNAME-$DIR.$D.tar.gz usr/local
        ;;
var)
        # tar zcvf $BACKUPDIR/$HOSTNAME-$DIR.$D.tar.gz $DIR
        tar zcvf $BACKUPDIR/$HOSTNAME-$DIR.$D.tar.gz `ls -d var/* | grep -v var/www`
        ;;
vmlinuz);;
vmlinuz.old);;
        *)
                tar zcvf $BACKUPDIR/$HOSTNAME-$DIR.$D.tar.gz $DIR
                ;;
        esac
done

#---------------------------------------------------
GZFILE=$BACKUPDIR/$HOSTNAME-mysql.$D.gz
/usr/bin/mysqldump -a --user=root --password=内緒 mt | gzip > $GZFILE
#---------------------------------------------------

cd $BACKUPDIR

MONTHDIR=`hostname`.`LANG=C date +%y%m`

if [ ! -d "$MONTHDIR" ]
then
        mkdir "$MONTHDIR"
        D=`LANG=C date +%a`
        mv *.$D.* "$MONTHDIR"
fi

find . -mtime +30 -exec rm -fr {} \; -print
root@sakura:~#
さすがに、Webサイトのコンテンツは巨大すぎたので、アーカイブを諦めた。

手動で実行

手動で実行し、動作を確認する。
root@sakura:~# sh /usr/local/sbin/Backup
etc/
etc/ca-certificates/
etc/ca-certificates/update.d/
etc/mailcap
etc/bash.bashrc
etc/sysctl.d/
etc/sysctl.d/README.sysctl
etc/sysctl.d/99-sysctl.conf
etc/iproute2/
:
:
:
:
var/tmp/
var/tmp/systemd-private-c7d90979242f45d7a629d8cad7082fd3-apache2.service-duhKr1/
var/tmp/systemd-private-c7d90979242f45d7a629d8cad7082fd3-apache2.service-duhKr1/tmp/
var/tmp/systemd-private-c7d90979242f45d7a629d8cad7082fd3-systemd-timesyncd.service-5gW7Rg/
var/tmp/systemd-private-c7d90979242f45d7a629d8cad7082fd3-systemd-timesyncd.service-5gW7Rg/tmp/
root@sakura:~#
特にエラーなし。

cron への登録

毎日、深夜1時にバックアップをとる。
root@sakura:~# crontab -e
:
:
:
root@sakura:~# crontab -l
:
:
:
0 1 * * * nice /bin/sh /usr/local/sbin/Backup 2>/dev/null 1>/dev/null
root@sakura:~#

リモートバックアップ

VPS内にバックアップを取っても、クラッシュしたら取り出せないので、バックアップファイルとWebサイトのコンテンツを自宅サーバにコピーする。

スクリプト

同じくスクリプト化
yasunari@xhl:~$ cat /usr/local/sbin/Backup.from.Sakura
rsync -rtuvpogtlH -e "ssh -p 内緒 -i /home/yamasita/yasunari/.ssh/sakura_id_rsa" sakura.yamasita.jp:/var/www/html /home/httpd

rsync -rtuvpogtlH -e "ssh -p 内緒 -i /home/yamasita/yasunari/.ssh/sakura_id_rsa" sakura.yamasita.jp://mnt/Backup/sakura /mnt/Backup
yasunari@xhl:~$

手動実行

動作確認のため、手動で実行
yasunari@xhl:~$ sh /usr/local/sbin/Backup.from.Sakura
receiving incremental file list
html/cloud/
html/cloud/atom.xml
html/cloud/2018/02/
:
:
:
sent 13259 bytes  received 1479648 bytes  157148.11 bytes/sec
total size is 15494665560  speedup is 10378.86
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1536) [generator=3.0.9]
receiving incremental file list
sakura/
sakura/sakura-etc.Wed.tar.gz
sakura/sakura-home.Wed.tar.gz
sakura/sakura-mysql.Wed.gz
sakura/sakura-opt.Wed.tar.gz
sakura/sakura-root.Wed.tar.gz
sakura/sakura-usr.Wed.tar.gz
sakura/sakura-var.Wed.tar.gz

sent 169 bytes  received 114511207 bytes  6189804.11 bytes/sec
total size is 228902042  speedup is 2.00
yasunari@xhl:~$

cron への登録

yasunari@xhl:~$ crontab -e
:
:
:
yasunari@xhl:~$ crontab -l
:
:
:
30 * * * * /bin/sh /usr/local/sbin/Backup.from.Sakura 2>/dev/null 1>/dev/null
yasunari@xhl:~$
1 時間に一回取得するようにしてみた。

Web サーバの構築(3)https 化
山下康成の
雲の上

Outlook と Android との同期

Copyright (C) 2003-2018 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市/東京都新宿区