定期的に実行しましょう。 -2005年04月17日
環境構築もすすむと設定や各種情報資源をバックアップして置かないと、クラッ
シュした時に非常に物理的金銭的問題以上に悲しい事になります。
定期的にバックアップして知的財産を保護しましょう。
例では、
@「/root」「/home」「/etc」を
※TARGET="/root /home /etc"
A「/home/smbshare/backup」に
※BakDIR=/home/smbshare/backup
B「backup.tar.gz」って名前で圧縮して保存する。
※BakFILE=backup.tar.gz
C但し、以下のフォルダはバックアップの対象としない。
「/home/smbshare/backup」 バックアップ吐き出しフォルダだから
「/home/smbshare/wizd」 動画が大き過ぎ
「/home/*/webfiles」 各個人のPCにある
※sh/backup.excludeファイルで指定
としています。
バックアップ対象から除外するものが無ければ「sh/backup.exclude」は書かなく
ても良いです。 勝手にスクリプトが空枠を作ります。
バックアップ時にエラーが発生したらログの最後の1行だけをメールします。
なお、エラー時にはバックアップ途中の「backup.tar.gz.new」は消します。
これはエラーメールをデリバリーするディレクトリが存在するディスクと、バック
アップを吐き出すディスクが同じ時に、ディスクのパンクが発生するとメールがデ
リバリー出来ない事を考慮して、このような仕様としています。
また、バックアップが正常終了するまで、前回のバックアップは保持する仕様とし
ています。
|
[root@station ~]# vi sh/backup.sh
#!/bin/sh
# バックアップ対象ディレクトリ
TARGET="/root /home /etc"
#バックアップ除外ディレクトリ(ファイル)設定ファイル
EXCLUDE="/root/sh/backup.exclude"
# バックアップファイル名・ディレクトリ名
BakFILE=backup.tar.gz
BakDIR=/home/smbshare/backup
# ログファイル名
LOG=/var/log/backup.log
mkdir -p $BakDIR 2>&1
if [ ! "(" -e $EXCLUDE ")" ] ; then touch $EXCLUDE ; fi
if [ -e $BakDIR/$BakFILE.new ] ; then rm -f $BakDIR/$BakFILE.new ; fi
date > $LOG 2>&1
echo >> $LOG
tar czvfP $BakDIR/$BakFILE.new -X $EXCLUDE $TARGET >> $LOG 2>&1
if [ $? -eq 0 ] ; then
if [ -e $BakDIR/$BakFILE ] ; then rm -f $BakDIR/$BakFILE ; fi
mv $BakDIR/$BakFILE.new $BakDIR/$BakFILE > /dev/null 2>&1
else
if [ -e $BakDIR/$BakFILE.new ] ; then rm -f $BakDIR/$BakFILE.new ; fi
tail -1 $LOG
fi
echo >> $LOG
date >> $LOG
chmod 600 $LOG
[root@station ~]# vi sh/backup.exclude
/home/smbshare/backup
/home/smbshare/wizd
/home/*/webfiles
|
|
実行の権限を付けて、自動実行「cron」に5時40分に実行するよう登録してあ
げます。 好きな時間で良いです(笑)
|
[root@station ~]# chmod 700 /root/sh/backup.sh
[root@station ~]# crontab -e
40 05 * * * /root/sh/backup.sh | nkf -j
|
|
例では「samba」の共有フォルダをバックアップの吐き出し先としていますので、
ネットワークドライブ経由で定期的に自分のPCに移動して下さい。
移動しないとディスククラッシュ時にバックアップも一緒に死にます(笑)
定期的にバックアップが面倒な時は物理的に別なディスクをサーバーに付けて、
そこを吐き出し先にしたり自分のPC側にコピーのバッチを自動起動にするなど
仕込みが必要でしょう。
ユーザーが「samba」の共有フォルダでデータを移動又は削除(コピーはOK)する
時は、「/home/smbshare/backup」のフォルダに所有権と「770」の権限を付けて
下さい。
|
[root@station ~]# chown user1:smbshare /home/smbshare/backup
[root@station ~]# chmod 770 /home/smbshare/backup
|
|