created and maintained by tokd
ServerBackup
GNU tar によるインクリメンタルバックアップ
#!/bin/sh cd / TARGET="etc home" LIST=/var/backup/list WEEKDAY=`date +%w` if [ $WEEKDAY -eq 0 ]; then # full backup mt -f /dev/rmt/0 rewind rm -f $LIST fi /usr/local/bin/tar cf /dev/rmt/0n --listed=$LIST $TARGET
rsync によるミラーリング
RAID では誤ってファイルを削除しても復元できない。テープから復旧するのも面倒なので、同じ容量のハードディスクを 2 台使って、rsync により一日一回バックアップを取っておく。こうすれば、最悪でも一日前の状態にすぐに戻せる。
起動ディスクが壊れても、バックアップ側でブートできるようにしておけば、さらに安心。
vfstab は予め 2 種類(通常起動用、予備ディスク起動用)準備しておく。以下のシェルスクリプトにおけるブートブロック書き込みは Solaris のコマンドを使用している。念のため、ファイルロックによる簡単な排他制御も行う。
#!/bin/sh PATH=/usr/local/bin:/usr/sbin:/usr/bin export PATH cd / if [ -f /tmp/mirroring.lock ]; then exit fi : > /tmp/mirroring.lock trap 'rm -f /tmp/mirroring.lock' 0 1 2 3 5 10 13 15 mount /bak/root rsync -ax --delete / /bak/root/ mv /bak/root/etc/vfstab /bak/root/etc/vfstab.original mv /bak/root/etc/vfstab.mirror /bak/root/etc/vfstab umount /bak/root LIST="usr var home opt" for d in $LIST; do mount /bak/$d rsync -ax --delete /$d/ /bak/$d/ umount /bak/$d done installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t2d0s0