2016年4月18日月曜日

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

今度は、バックアップ取得先である current ディレクトリをその時の日時(YYYYMMDDhhmmss)に変更するスクリプトだ。
これはもう、スクリプト見てもらうしかない。(毎回書いているが、sudo su - を…)
# cd
# cd backup/bin
# vi 0080_rename_backup


--ココから--
#!/bin/sh

BINDIR=`/usr/bin/dirname $0`
BINDIR=`/usr/bin/realpath ${BINDIR}`
ETCDIR=`/usr/bin/realpath ${BINDIR}/../etc`

. ${ETCDIR}/config

if [ $# -eq 0 ]
then
  DATETIME=`/bin/date +%Y%m%d%H%M%S`
else
  DATETIME=$1
fi

if [ -e ${BACKUPPOINT}/current ]
then
  /bin/mv ${BACKUPPOINT}/current ${BACKUPPOINT}/${DATETIME}
fi

--ココまで--
新しい所は、「if [ $# -eq 0 ]」かな?
これは、「引数がゼロの場合」という意味だ。
これまで作っていたスクリプトと異なり、0080_rename_backup だけは引数を受け取る形にしている。
引数がある場合は、第1引数の文字列を${DATETIME}に代入、引数が無い場合は、「今の日時」を${DATETIME}に代入している。
そして、current ディレクトリの名前を ${DATETIME} に変更している。
ただこれだけだ。

ではいつも通り実行してみよう。
# chmod +x 0080_rename_backup
# ./0010_mount
# ./0020_mkdir
# ./0030_create_config
# ./0040_create_snapshot
# ./0050_create_archive
# ./0060_remove_snapshot
# ./0070_get_fsmetadata
# ./0080_rename_backup

動いたのが確認できたら、バックアップディレクトリを確認してみよう。
# ls -l /media/backup
今までの current ディレクトリではなく、日時(YYYYMMDDhhmmss)のディレクトリになっているのが確認できるはずだ。

これで問題なく完了だ。
今回は、このディレクトリを削除する必要は無い。このまま残しておこう。

次回は、古いバックアップ世代の削除、だ。

0 件のコメント:

コメントを投稿