[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:41138] pdumpfs (Re: backupの方法)



 こんにちは。島田です。

On Fri, 6 Aug 2004 13:46:53 +0900
Sugano Yoshihisa (E) <koshian@xxxxxxxxxxx> wrote:

> ファイルシステムがFATじゃなくてもよいのなら、pdumpfs を使うのがよいか
> もしれません。

 私も、システムを別の HDD に乗せ替えるというのではなく、日々のバックアッ
プの場合は pdumpfs を使っています。ちょっと工夫して、こんなスクリプトを
作っています。
 バックアップ・メディアは、本当は Linux マシン外に置いておいた方がいい
のでしょうが、安く手軽に済ませるために、内臓 IDE HDD を 1 台、バックアッ
プ・メディアに充てています。
 バックアップするときだけ自動で mount し、バックアップが終了すると 
umount させるようにしています(よいのやら、かえって悪いのやらわかりませ
んが、気分的に)。
 /etc/crontab に次のように書いて、毎日 1 回起動させています。

# Backup 毎朝 5 時に起動
0 5     * * *   root    /usr/local/sbin/backup.sh

 マウント・ポイントとして /export/backup というのを作っておいて、マウン
トしたときに /export/backup/pdumpfs というディレクトリ配下にバックアップ
します(間違えて別のパーティションをマウントしたり、何もマウントしないの
にバックアップを開始しても、pdumpfs というディレクトリが存在しなければバッ
クアップが失敗するように)。


==== /usr/local/sbin/backup.sh =====
#!/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
export PATH

BACKUPDIR=/export/backup/pdumpfs
LOGDIR=/var/log/pdumpfs
LOG=${LOGDIR}/pdumpfs.log
ERRLOG=${LOGDIR}/pdumpfs-err.log
DATE_FMT="+%Y-%m-%d %a %T (%Z)"

# ----- Begin before and after process -----
PARTITION=/dev/hdj2
MOUNTPOINT=/export/backup
FILESYSTEM=reiserfs

before_backup()
{
    mount -t ${FILESYSTEM} ${PARTITION} ${MOUNTPOINT} >> ${LOG} 2>> ${ERRLOG}

    return ${?}
}

after_backup()
{
    umount ${PARTITION} >> ${LOG} ${ERRLOG}
}

# ----- End before and after process -----

backup()
{
    pdumpfs $1 ${BACKUPDIR} ${2} >> ${LOG} 2>> ${ERRLOG}
}

#
# Main routine
#

if [ ! -d ${LOGDIR} ]; then
    mkdir ${LOGDIR}
fi

if before_backup; then

  (LC_ALL=C ; echo "[`date \"${DATE_FMT}\"`]: Starting backup.")

  backup /etc
  backup /home
  backup /root
  backup /opt
  backup /service
  backup /usr/src usr_src
  backup /usr/local usr_local
  backup /var/lib/cvs var_lib_cvs
  backup /var/lib/dpkg var_lib_dpkg
  backup /var/lib/svscan var_lib_svscan
  backup /var/www var_www
  backup /var/www-ssl var_www-ssl
  backup /var/fileserver var_fileserver

  after_backup

  (LC_ALL=C ; echo "[`date \"${DATE_FMT}\"`]: Completed backup.")
  ret=0

else

  (LC_ALL=C ; echo "[`date \"${DATE_FMT}\"`]: Backup failure.")
  ret=1

fi

exit ${ret}


---
二胡を始めよう! お勧めの二胡をご用意しました
いますぐクリック ==> http://www.1bangenki.biz/
----------------------------------------------------------------------
Mail: shimaden@xxxxxxxxx
Home Page: http://www.din.or.jp/~shimaden/
島田博幸
Hiroyuki Shimada
----------------------------------------------------------------------