#!/bin/sh

workdir=/mnt/sdb/backup
backdata=$workdir/data
backtime=`date +%m%d`
lsfile="$backdata/*.zip $backdata/*.txt $backdata/*.img $backdata/*.info $backdata/fstab*"


#二日前のファイルを削除
# find $workdir -mtime +1 -maxdepth 1 -name '*.zip' -exec rm -f {} \;
# find $backdata -mtime +5 -exec rm -f {} \;
echo "********************************" >> $workdir/backup.log

filenum=`ls -l $lsfile | wc -l`
for filename in `ls -tr $lsfile`
do
  # 20ファイル以上ある場合は、古いものから削除する
  if [ $filenum -le 80 ]; then
    break
  fi

  echo $filename >> $workdir/backup.log
  rm -f $filename
  filenum=`expr $filenum - 1`
  # echo $filenum
done

#バックアップ実行
/sbin/dump -0 -h 0 -f - /dev/sda1 2>> $workdir/backup.log | gzip > $backdata/sda1_$backtime.zip
/sbin/dump -0 -h 0 -f - /dev/VolGroup00/LogVol00 2>> $workdir/backup.log | gzip > $backdata/LogVol00_$backtime.zip


echo label > $backdata/label_$backtime.txt
echo sda1: `/sbin/e2label /dev/sda1` >> $backdata/label_$backtime.txt
echo LogVol00: `/sbin/e2label /dev/VolGroup00/LogVol00` >> $backdata/label_$backtime.txt

cp /etc/fstab $backdata/fstab_$backtime

/sbin/sfdisk -d /dev/sda > $backdata/sda_$backtime.info
/usr/sbin/vgdisplay -v > $backdata/LVM_$backtime.info
# /sbin/sfdisk -d /dev/hdb > $backdata/hdb_$backtime.info
/usr/sbin/vgcfgbackup VolGroup00 -f  $backdata/vg_info_$backtime.txt


# MBR backup
#dd if=/dev/sda of=$backdata/mbr_$backtime.img bs=512 count=1
dd if=/dev/sda of=$backdata/mbr_$backtime.img bs=512 count=63


# restore ###############
# MBR restore
## dd if=mbr.img of=/dev/sda bs=446 count=1
# dd if=mbr.img of=/dev/sda

# /sbin/sfdisk /dev/sda < sda.info
# /sbin/sfdisk /dev/hdb < hdb.info

#ファイル内容の確認を行うには
#[root /var]# zcat /backup/sda7_0307.zip | restore -tf -
#ファイルのリスト （注意カレントディレクトリに展開されるので、リストアするディレクトリで行う必要があります。）
#[root /var]# zcat /backup/sda7_0307.zip | restore -rf -

