これはもう、スクリプト見てもらうしかない。(毎回書いているが、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 件のコメント:
コメントを投稿