2016年4月30日土曜日

システムバックアップその15

さて、続いてバックアップスクリプトをまとめる処理。

別に難しいことはやっていない。さくっとスクリプトを見てもらおう。
いつも通り、 sudo su - を忘れないように。

# vi 0000_backup
--内容ココから--
#!/bin/sh

BINDIR=`/usr/bin/dirname $0`
cd ${BINDIR}
BINDIR=`/bin/pwd`

DATETIME=`/bin/date +%Y%m%d%H%M%S`

${BINDIR}/0010_mount
${BINDIR}/0020_mkdir
if [ $? -ne 0 ]
then
  echo "Another backup is running or the last backup, has become an error."
  echo "Therefore, there is still a current directory."
  echo "Determine the cause and, take action."
  exit 1
fi
${BINDIR}/0030_create_config
${BINDIR}/0040_create_snapshot
${BINDIR}/0050_create_archive
${BINDIR}/0060_remove_snapshot
${BINDIR}/0070_get_fsmetadata
${BINDIR}/0080_rename_backup ${DATETIME}
${BINDIR}/0090_remove_oldarchive
${BINDIR}/0100_umount

--内容ココまで--
変わっているところとすれば、0020_mkdirを呼び出した後、リターンコードを確認しているところだ。
ファイルシステムのマウントに失敗していた場合は、その後の処理を実行するわけにはいかないので、エラーとして処理を中断させている。
他は特にエラートラップは仕込んでいない。全体的に、エラートラップが弱いので、必要に応じて足してくれ。
もう一箇所、最初の方で日付情報(YYYYMMDDhhmmss)14桁を取得して、それを0080_rename_backupに渡しているところか。
これは単純に、「バックアップ開始時点」の日時を当てたかっただけ。別に、「バックアップ途中時点」の日時でもいいんだけど、なんとなく。

これで実行してみれば、バックアップ処理が一通り流れるはずだ。
# ./0000_backup

後は、これまで手を抜いていたバックアップ対象ファイルシステムの設定ファイル(etc/fsconfig/*)を作って、バックアップ処理はおしまいだ。

今回はここまで。

0 件のコメント:

コメントを投稿