2004年5月15日

nyanさん作shell版pdumpfsもどき: nyan-bk

nyanさんから頂きました。

#どなたかOBS上で動作確認してもらえませんかぁ?(^^;

さて、3つのファイルをtar.gzしたものを nyan-bk.20040515.tar.gz に置いてます。
以下、nyanさんの説明書です。

バックアップは、システムの規模、構成や目的等々で色々考え方があると思います。
本コマンドは、再構築時や移行時に意図的に行った更新を簡単にするのが目的です。

bk.sh:18:               `cat /backup/bk-list.txt` \
および、「bk-list.txt」
手作業で更新(チューニング)をやった後に、
「find /etc -type f -mtime -1 > /tmp/edit.txt」等とやって、
「bk-list.txt」に必要なファイルを追記すれば、バックアップ対象を限定できます。
特定ディレクトリで配下のファイル数が少ない場合は、
bk-list.txt:3:/etc/cron.d/
上記の記述も可能です。

bk.sh:19:               `ls -AFd /root/.??* /home/nyan/.??* | grep -v '/$'` \
シェル構文である程度の対象ファイルの選別が可能です。
上記の例では、ユーザディレクトリ下のドットファイルを抽出しています。


使用例ですが。
「bk.sh」はオプションもなく、
「YYYY/MM/DD」配下に指定ファイルのバックアップを行います。

「bk-comp.sh」:bk-comp.sh [比較元(最新等)[比較先(前回等)]]
1)オプション無し
 最新と前回バックアップの更新状況のコンペアリストを作成します。
2)比較元のみ指定
 主に、開発環境と運用環境のコンペア用です。
 開発環境の「YYYY/MM」下で「tar cvf /tmp/DD.tar DD*」として、
 tarファイルを運用環境に転送して、「/tmp」等に展開します。
 # ./bk-comp.sh /tmp/DD.log
 で、開発環境と運用環境のコンペアを行えます。


取り合えずこちらではここ一週間ほど使用して問題なく、
また、開発環境と運用環境の同期取りにも使用してみましたが、
「bk-comp.sh」で、上書き、更新等々の判断が最小限で楽でした。


ではでは・・・


bk.sh:17:       tar csf - \
bk.sh:18:               `cat /backup/bk-list.txt` \
bk.sh:19:               `ls -AFd /root/.??* /home/nyan/.??* | grep -v '/$'` \
bk.sh:20:               /root/* /home/nyan/* \
bk.sh:21:               /usr/local/src /usr/local/bin /usr/local/man \
bk.sh:22:               /var/mono /var/www/mono /var/cgi-bin \
bk.sh:23:               /backup/*.sh /backup/pdumpfs/*.sh \
bk.sh:24:       | tar xf -

bk-list.txt:1:/etc/apache/httpd.conf
bk-list.txt:2:/etc/apt/sources.list
bk-list.txt:3:/etc/cron.d/
bk-list.txt:4:/etc/crontab
bk-list.txt:5:/etc/fstab
bk-list.txt:6:/etc/hosts
bk-list.txt:7:/etc/htpasswd
bk-list.txt:8:/etc/logrotate.conf
bk-list.txt:9:/etc/logrotate.d/apache

bk-comp.sh:6:if [ "$1" != "" ] ; then
bk-comp.sh:7:   if [ -f "$1" ] ; then
bk-comp.sh:8:           chk1_log="$1"
bk-comp.sh:9:   else
bk-comp.sh:10:          printf "not found: \"%s\"\n" $1
bk-comp.sh:11:          exit -1
bk-comp.sh:12:  fi
bk-comp.sh:13:  if [ "$2" != "" ] ; then
bk-comp.sh:14:          if [ -f "$2" ] ; then
bk-comp.sh:15:                  chk2_log="$2"
bk-comp.sh:16:          else
bk-comp.sh:17:                  printf "not found: \"%s\"\n" $2
bk-comp.sh:18:                  exit -1
bk-comp.sh:19:          fi
bk-comp.sh:20:  else
bk-comp.sh:21:          chk2_log=`ls -d 20[0-9][0-9]/[0-9][0-9]/[0-9][0-9] | tail -1`.log
bk-comp.sh:22:  fi
bk-comp.sh:23:else
bk-comp.sh:24:  chk1_log=`ls -d 20[0-9][0-9]/[0-9][0-9]/[0-9][0-9] | tail -1`.log
bk-comp.sh:25:  chk2_log=`ls -d 20[0-9][0-9]/[0-9][0-9]/[0-9][0-9] | tail -2 | head -1`.log
bk-comp.sh:26:fi

投稿者 his : 2004年5月15日 13:37
このエントリーのトラックバックURL: http://hoop.euqset.org/blog/mt-tb2006.cgi/51182
コメント
コメントする









名前、アドレスを登録しますか?





画像の中に見える文字を入力してください。