コンピュータにはさまざまな情報が保存されており、その情報は一次情報だったりさらに複製がないとなると永遠に失われることになる。 こういう事態には複製を作っておいて、滅失に備えることができるようになる。 しかも近年ネットワーク技術と広帯域化の発達にともなって地理的に離れたコンピュータの情報の複製を作ることが容易になった。 うれしいことにテープ装置よりもハードディスクの低廉化も著しくハードディスクにバックアップを取ることも現実的な解となってきたのでランダムアクセス性などにも優れるようになっている。
また、コンピュータはその用途に応じてさまざまな設定がなされており、その設定を失うと再び同じような動作をさせるためには大変な労力が必要であり、場合によっては二度と同じことができない恐れがある。 しかし、その設定を保存しておくことで、故障が生じても別にコンピュータを建て直し、保存してあった設定を投入することで同じ機能を復活させることと迅速な復活が期待できる。 そこで、なるべく新しい設定を物理的に別の場所に複製を作成し、万が一の時にはそれを参照して復活を期することができよう。
今回の場合はバックアップを cron で自動で毎日とっているので最悪は昨日の分までで確認できるだろう。 過去何日かはとってあるようにしているつもり。
$ sudo apt-get install rsync ssh
PermitRootLogin yes
$ sudo apt-get install rsync ssh expect
$ ssh -l root www.example.com
shibata@dolphin:~$ sudo cat /root/script/cp.www-example-com.expect #!/usr/bin/expect spawn rsync -auz --delete -e ssh pop.example.com:/etc/ /home/admin/backup/www.example.com/etc/ set timeout 20 expect "root@pop.example.com's password: " sleep 1 send "**********password***************\n" wait spawn rsync -auz --delete -e ssh pop.example.com:/boot/ /home/admin/backup/www.example.com/boot/ set timeout 20 expect "root@pop.example.com's password: " sleep 1 send "**********password***************\n" wait spawn rsync -auz --delete -e ssh pop.example.com:/usr/ /home/admin/backup/www.example.com/usr/ set timeout 20 expect "root@pop.example.com's password: " sleep 1 send "**********password***************\n" wait spawn scp -rpqC root@pop.example.com:/home /home/admin/backup/www.example.com/ expect "root@pop.example.com's password: " sleep 1 send "**********password***************\n" wait close
hibata@dolphin:~$ sudo cat /root/script/backup.www-example-com.sh #!/bin/sh COPYSCRIPT=/root/script/cp.www-example-com.expect WORKDIR=/home/admin/backup/www.example.com TARGETDIR=$WORKDIR/$(/bin/date +%Y%m%d) OLDBACKUP=$WORKDIR/$(/bin/ls -1 $WORKDIR | /usr/bin/head -n 1) LOGFILE=$TARGETDIR/backuplog /bin/mkdir -p $TARGETDIR /bin/echo starting backup ====== $(/bin/date +%Y%m%d%H%M%S) > $LOGFILE /bin/echo -- making copies -- >> $LOGFILE $COPYSCRIPT /bin/mv -f $WORKDIR/boot $TARGETDIR/ /bin/mv -f $WORKDIR/etc $TARGETDIR/ /bin/mv -f $WORKDIR/usr $TARGETDIR/ /bin/mv -f $WORKDIR/home $TARGETDIR/ /bin/echo finishing backup ===== $(/bin/date +%Y%m%d%H%M%S) >> $LOGFILE /bin/echo -- removing old copies -- >> $LOGFILE /bin/rm -rf $OLDBACKUP /bin/echo The end of backup ==== $(/bin/date +%Y%m%d%H%M%S) >> $LOGFILE
shibata@dolphin:~$ sudo cat /etc/cron.d/backup 0 15 * * * root if [ -x /bin/sh ] && [ -x /usr/bin/expect ] && [ -x /root/script/backup.all ] ; then /root/script/backup.all 2>&1 ; fi
shibata@dolphin:~$ ls -l /home/admin/backup/www.example.com/ total 20 drwxr-xr-x 6 root root 4096 Sep 6 22:44 20040906 drwxr-xr-x 6 root root 4096 Sep 7 22:48 20040907 drwxr-xr-x 6 root root 4096 Sep 8 22:55 20040908 drwxr-xr-x 6 root root 4096 Sep 9 22:55 20040909 drwxr-xr-x 6 root root 4096 Sep 10 22:56 20040910 shibata@dolphin:~$ ls -l /home/admin/backup/www.example.com/20040910/ total 40 -rw-r--r-- 1 root root 160 Sep 11 00:14 backuplog drwxr-xr-x 3 root root 4096 Dec 3 2003 boot drwxr-xr-x 49 root root 4096 Sep 10 16:33 etc drwxr-xr-x 1376 root root 24576 Sep 10 09:42 home drwxr-xr-x 15 root root 4096 Apr 26 2003 usr
shibata@dolphin:~$ df Filesystem 1k-blocks Used Available Use% Mounted on /dev/hda3 9614148 59484 9066288 1% / /dev/hda1 93309 5992 82500 7% /boot /dev/hda5 9614116 112820 9012924 2% /usr /dev/hda6 9614116 124756 9000988 2% /var /dev/hda7 47018596 25701428 18928708 58% /home /dev/hdb1 76920416 42844000 30169008 59% /home/admin/backup/www.hanno.jp
当方(SHIBATA Akira)は, 本サイトをご利用の際に起きるかもしれない不利益に対し, 一切責任を負いません.