- PR -

linuxサーバでのバックアップ

投稿者投稿内容
やすけ
ベテラン
会議室デビュー日: 2003/08/20
投稿数: 87
投稿日時: 2007-02-21 15:54
nakamuraと申します。
 業務で使用しているサーバのディレクトリ等のバックアップを(tarコマンドにてテープに吸い上げ)毎日行っています。つい最近判明したのですが、tar cvf DATデバイス名 バックアップ対象ディレクトリ とやっていました。バックアップ対象のディレクトリは複数あってすべて吸い上げなくてはいけないのに、すべてcvfで吸い上げていたため、一番最初に吸い上げたディレクトリのみ吸いあがっていて他のディレクトリが吸いあがっていませんでした。
 そこでオプションをrvfにして追記モードでテストしてみたのですが、2つ目に実行した追記モードのtarがうまく吸いあがっていません。
それが、DATorATIという規格のテープなのですが、その規格だとrvfが利かないのでしょうか。どなたか、他の対応として何か知っていらっしゃったらご教授願います。
環境的には
OS:Miracle Linux Standard Edition V2.1
テープ:ATIorDAT
実行コマンド
mt -f デバイス rewind
tar cvf デバイス /aaa/bb/*
tar rvf デバイス /aaa/cc/*
mt -f デバイス rewind

〜tar tvf デバイス の表示結果〜
-rw-r--r-- nkdse/nkdse 85295 2005-04-26 13:22:16 aaa/bb/test.log
-rw-r--r-- nkdse/nkdse 804798 2006-06-21 20:14:51 aaa/bb/ccc.log
※/aaa/ccの配下が吸いあがっていないので表示されません。
D.Matsu
ベテラン
会議室デビュー日: 2006/12/07
投稿数: 51
投稿日時: 2007-02-21 16:08
tarに投げ込むターゲットディレクトリを列挙しては駄目なのでしょうか。
↓のような感じで。
コード:

# tar cvf /dev/md0 /aaa/bb /aaa/cc /bbb/dd



-- 追記 --
よく考えたら最初のtarと次のtarは別領域に記録されますから、tar tvf一発じゃ/aaa/bbしか読めなくて当然ですね。
mtで次のデータの先頭位置まで移動してからtar tvfしたら/aaa/cc以下のデータが出るんじゃないですか?
-- /追記 --
-- 更に追記 --
と思ったら二度目は追記オプション(r)だったんですね。
↑は忘れてくださいorz
で、追記オプションはファイルに対して行うときの事を考えると一度rewindしてアーカイブの先頭に持っていかないとうまく行かないかもしれませんね。
-- /更に追記 --


[ メッセージ編集済み 編集者: D.Matsu 編集日時 2007-02-21 16:19 ]
やすけ
ベテラン
会議室デビュー日: 2003/08/20
投稿数: 87
投稿日時: 2007-02-21 16:37
D.Matsuさん、レスありがとうございます。
 列挙すればうまくいくのですが、吸い上げ対象のディレクトリが10くらいあるので
それ全部列挙するのもと思って、一応自分なりに考えてスマートに出来ないかと思い、
吸い上げ対象のディレクトリをパラメータに持って、そのパラメータを読んで
吸い上げていたのです。
 それと、
----------------------------------------------------------------------
追記オプションはファイルに対して行うときの事を考えると一度rewindしてアーカイブの先頭に持っていかないとうまく行かないかもしれませんね。
----------------------------------------------------------------------
ということは、rewindしてしまうとrewindするまえのtarで吸い上げたものはそのまま残っているのでしょうか?基本的なことを聞いてしまい申し訳ありません。
D.Matsu
ベテラン
会議室デビュー日: 2006/12/07
投稿数: 51
投稿日時: 2007-02-21 17:00
引用:

やすけさんの書き込み (2007-02-21 16:37) より:
ということは、rewindしてしまうとrewindするまえのtarで吸い上げたものはそのまま残っているのでしょうか?基本的なことを聞いてしまい申し訳ありません。



んー、ご質問の内容がいまいち不明なのですが、

コード:
# tar cvf /dev/md0 /aaa/bb
# mt -f /dev/md0 rewind
# tar rvf /dev/md0 /aaa/cc
# mt -f /dev/md0 rewind



とやらないと駄目じゃないか、というのが最後に書き足した分の主旨です。

このとき……
・rewindしたときにテープに記録が残っていなければtar tvfで読めませんし復旧するためのバックアップの用を成さないですよね?
・tarのrオプションは追記オプションですから指定データに対して追記する、つまり巻き戻した後に実行した場合は一回目のtarで記録したデータの最後の部分から記録される(ために一回目のtarの結果は保存されている)、と解釈するのが自然かと思います。
#なお、tarのrオプションは使った事がないのでこの解釈は間違っているかもしれません

ただ、

引用:

吸い上げ対象のディレクトリが10くらいあるので



となるとtarが終わるたびにrewindするのは効率が悪いのとテープ寿命を縮めそうですね。
見た目にはこだわらず、列挙の方がよいのではないでしょうか。
progman
大ベテラン
会議室デビュー日: 2005/06/08
投稿数: 227
投稿日時: 2007-02-21 17:56
# tar -cvf /dev/md0 aaa/aaa
# tar -cvf /dev/md0 aaa/bbb
# tar -cvf /dev/md0 aaa/ccc
# mt -f /dev/md0 rewind
# tar -tvf /dev/md0
aaa/aaaのリストがでる
# tar -tvf /dev/md0
aaa/bbbのリストがでる
# tar -tvf /dev/md0
aaa/cccのリストがでる
# mt -f /dev/md0 rewind
# mt -f /dev/md0 fsf 1
aaa/bbbの部分に位置づく
# tar -tvf /dev/md0
aaa/bbbのリストがでる。

といったやりかたで
テープマークをたよりに、管理する方法はどうですか?
何番目になにを吸い上げたか管理する必要があります。


F/A
ぬし
会議室デビュー日: 2006/03/18
投稿数: 312
お住まい・勤務地: Tokyo
投稿日時: 2007-02-21 23:35
テープドライブが固定長モードだとtarのrオプションによる追記はうまく動作しないと
そういう話を聞いたことがあります。

AITもDDSも可変長モードをサポートしていますが、
mtコマンド等で設定変更が可能な為、
何かの弾みで固定長に変更されている可能性があります。

どちらのモードかは、mt statusで確認可能です。


ところで /dev/md0 は ソフトRAIDのデバイスファイルではないでしょうか?
テープドライブだと、 /dev/st0 などになるのかなと…?

※もちろん名称は自由につけられますが…
D.Matsu
ベテラン
会議室デビュー日: 2006/12/07
投稿数: 51
投稿日時: 2007-02-22 00:21
引用:

F/Aさんの書き込み (2007-02-21 23:35) より:
ところで /dev/md0 は ソフトRAIDのデバイスファイルではないでしょうか?
テープドライブだと、 /dev/st0 などになるのかなと…?



ごは、不覚……orz
#適当に記憶頼りで書いたのがあだになりました(汗

普通は/dev/nst0(アクセス終了後に巻き戻さないデバイス)を使う事の方が多いでしょうね。
やすけ
ベテラン
会議室デビュー日: 2003/08/20
投稿数: 87
投稿日時: 2007-02-22 08:54
皆様、昨日はレスありがとうございます。一応問題解決しましたのでご報告します。
皆様のご指摘をすべて検討した結果、
今までどおり、cvfですべて吸い上げて、戻すまたはテープの中身を見たい場合は
progmanさんの手法で
mt -f dev/nst0 fsf Xで何番目に吸い上げたかを指定してtar tvfで画面表示したり、
tar xvfで戻したりするようにいたします。
皆様本当にありがとうございました。これからもご指導よろしくお願いします。

スキルアップ/キャリアアップ(JOB@IT)