毎日、毎月 LVM のスナップショットを作成する bash スクリプト

Pocket
LINEで送る

この記事の所要時間: 28

仕事上必要になったので作成してみました。変数に代入するときのエスケープ処理がうまくできなくて半分力技。

このスクリプトの目的は

  • 毎日 7 世代分のスナップショットを保持する
  • 毎月 1 世代分のスナップショットを保持する

以下は毎日 7 世代分のスナップショットを保持するスクリプトの例。

[code lang=”bash”]
#!/bin/bash

TARGET_LV=/dev/vg_str1/LogVol01
TARGET_LV_DIR=/dev/vg_str1/
LV_SIZE=20G
SNAPSHOT_NAME_PREFIX=snap-daily

current_time=`date +"%Y%m%d%H%M%S"`

count=`find ${TARGET_LV_DIR} -name "${SNAPSHOT_NAME_PREFIX}*" | wc -l`

if [ "${count}" -ge 7 ]; then
find ${TARGET_LV_DIR} -name "${SNAPSHOT_NAME_PREFIX}*" | sort | while read line; do
echo ${line} will be deleted
lvremove -f ${line}
if [ "${count}" -eq 7 ]; then
break
fi
let count="${count}-1"
done
fi

lvcreate –snapshot –size=${LV_SIZE} –name "${SNAPSHOT_NAME_PREFIX}-${current_time}" ${TARGET_LV}
[/code]

crontab を編集する。

PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/tripwire/sbin:/root/bin
0 5 * * * /root/lvbackup-daily.sh
0 0 1 * * /root/lvbackup-monthly.sh

投稿者紹介

株式会社ユニキャスト
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。 ”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。

人気の記事

コメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP

%d人のブロガーが「いいね」をつけました。