いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.123 / 読者数:1170名

こんばんは、うすだです。

先日、辞めるひとのお仕事を引き継ぐことになり、お客さまとの打合せとともに、 引き継ぎ作業を一気に行いました。

打合せにはみんな出席したのですが、辞めるひととお客さまとの間には、 確固たる信頼関係が築かれている、という印象を受けました。
ですので、わたしはその関係を維持していけるのだろうか、 という一抹の不安を感じてしまいました。

信頼関係を感じた根拠は、打合せの合間の雑談の花の咲き具合から、ではなく、 お互いに議論を戦わせていたこと、製品を世の中に広めるために何ができるのかを、 双方で真剣に考えていたこと、などです。

わたしが打合せに出席すると、お客さまから要望を伺い、 それが納期までに実現できるかどうか、というやりとりだけになってしまいます。
それではいけない、ということを、まざまざと見せつけられた思いです。

今後、世の中の役に立っていくためには、 言われた仕事をギリギリ行っているだけでなく、自らネタを提供し、 能動的に働いていくべきなのだ、と思いました。いや、思うだけじゃなくて、 そのように行動します。

いつになく真面目なのは、将来の自分にあせっているからでしょうか…
という話は置いておきまして、今週も、はりきってまいりますよ。

今週のお題 - 正統派なバックアップを行う / 二つの塔

先週、dump コマンドと restore コマンドによる、 バックアップの簡単な方法をご紹介しました。

Vol.122 - 正統派なバックアップを行う
http://www.usupi.org/sysad/122.html

今週は、安直に「続編」ということで、インクリメンタルバックアップの方法を、 ご紹介したいと思います。


dump/restore によるバックアップで優れている点は、 インクリメンタルなバックアップができることです。
(たとえば、tar コマンドも、-g オプションを用いれば可能ですが、 ここは気づかなかったふりをして、先に進みましょう。)

先週ご紹介した方法では、-0 オプションを用いて dump コマンドを実行していました。

-0 オプションというのは、レベルの指定を行うためのオプションです。
レベル 0 が、フルバックアップを表します。
インクリメンタルバックアップの場合、1から9のレベルを使用します。
前のレベルからインクリメンタルバックアップを行う際には、 前のレベルより大きいレベルを指定する必要があります。

百聞は一見にしかずですので、実際に行ってみましょう。


まずは、フルバックアップから行います。
インクリメンタルバックアップを行うためには、 /etc/dumpdates に情報を記録する必要がありますので、 -u オプションを指定します。
以下では、/boot のバックアップを行い、 /export/backup/boot0.dump に記録しています。

  # dump -0u -f /export/backup/boot0.dump /boot

/etc/dumpdates には、ファイルシステムとレベル、実行したときの時間が、 以下のように記録されます。

  # cat /etc/dumpdates
  /dev/hda1 0 Sun Oct 21 22:08:31 2007 +0900

次に、/boot をちょびっとだけ変えてみましょう。

  # touch /boot/__this_is_a_test_file__

そして、レベル1 のインクリメンタルバックアップを行ってみます。
レベル1ですので、-0 オプションではなく -1 オプションを指定します。

  # dump -1u -f /export/backup/boot1.dump /boot

すると、/etc/dumpdates は、以下のようになります。

  # cat /etc/dumpdates
  /dev/hda1 0 Sun Oct 21 22:08:31 2007 +0900
  /dev/hda1 1 Sun Oct 21 22:16:59 2007 +0900

ちなみに、レベルは、1つずつ上げていく必要はありません。
たとえば、いきなりレベル5 に上げることも可能です。

  # touch /boot/__this_is_a_test_file2__
  # dump -5u -f /export/backup/boot5.dump /boot

もちろん、ファイルがなくなったことも、記録してくれます。

  # rm /boot/__this_is_a_test_file*
  # dump -6u -f /export/backup/boot6.dump /boot

では次に、インクリメンタルバックアップの復元を行ってみましょう。

まずは、フルバックアップの復元を行います。
ここでは、あくまでもお試しですので、/boot を上書きするのではなく、 どうでもいい場所で行うことにします。
以下では、/tmp/boot 以下に復元しています。

  # mkdir /tmp/boot; cd /tmp/boot
  # restore -r -f /export/backup/boot0.dump

すると、/tmp/boot 以下に復元されていることがわかります。

  # ls -1
  System.map@
  System.map-2.6.16-0vl60
  System.map-2.6.16-0vl66
  ...

次に、レベル1のバックアップを復元します。

  # restore -r -f /export/backup/boot1.dump
  # ls -1
  System.map@
  System.map-2.6.16-0vl60
  System.map-2.6.16-0vl66
  __this_is_a_test_file__
  ...

ダミーで作成したファイルが、復元されていることがわかります。
この調子で、レベル5のバックアップも復元します。

  # restore -r -f /export/backup/boot5.dump
  # ls -1
  System.map@
  System.map-2.6.16-0vl60
  System.map-2.6.16-0vl66
  __this_is_a_test_file__
  __this_is_a_test_file2__
  ...

2つ目のダミーファイルが復元されました。
そして、レベル6のバックアップを復元して、 ダミーファイルがなくなることを確認します。

  # restore -r -f /export/backup/boot6.dump
  # ls -1
  System.map@
  System.map-2.6.16-0vl60
  System.map-2.6.16-0vl66
  ...

これ以上復元する必要がなければ、restoresymtable を消しましょう。

  # rm restoresymtable

このファイルには、復元状況が記録されているようです。
試しに、フルバックアップを復元した後、 レベル1をすっとばしてレベル5を復元しようとしますと、ちゃんと叱ってくれます。

  # mkdir /tmp/boot2; cd /tmp/boot2
  # restore -r -f /export/backup/boot0.dump
  # restore -r -f /export/backup/boot5.dump
  restore: Incremental tape too low

また、うっかり restoresymtable を消してしまうと、復元できなくなりますので、 ご注意ください。

  # rm restoresymtable
  # restore -r -f /export/backup/boot1.dump
  restore: open: No such file or directory
  restore: cannot open symbol table file ./restoresymtable

以上、インクリメンタルバックアップの方法を、ご紹介しました。

そうそう、先週書き忘れていましたが、バックアップをとる際には、 対象のファイルシステムが変更されない状態で、行ってください。
(先週今週と、/boot を例にしていたのは、 /boot が書き換えられる可能性がほとんどないためです。)

みんなが使っているファイルシステムのバックアップをとりたいときは、 一番堅いのは、シングルユーザモードにしてから行うことです。

  # telinit 1

もちろん、GUI な画面ではなくなりますし、他のひとは一切使えません。
ですので、事前の根回しは、しっかりと行っておいてください。

あ、上記の意味がわからない貴兄は、以下を見るとよいかもしれません。

Vol.028 - ランレベルを理解する
http://www.usupi.org/sysad/028.html

宿題の答え

先週の宿題は、

  restore コマンド自身を restore するとどうなるでしょうか。

でした。

直接 /sbin/restore を上書きするのは、勇気が100倍ほど必要ですので、 ここはひとつ、擬似的な確認でご容赦いただきたいと存じます。

以降では、/dummy というお試し用のディレクトリを作成して、その上で試しています。

まずは、/dummy ディレクトリを作成して、/sbin 以下をごっそりコピーします。 (restore コマンドさえあれば、/sbin でなくても構いません。)

  # mkdir /dummy
  # cp -p /sbin/* /dummy/

次に、dump コマンドで、/dummy のフルバックアップを行います。

  # dump -0 -f /tmp/dummy.dump /dummy

そして、どこまで復元されるかがわかるように、 /dummy 以下を restore コマンドだけにします。

  # rm -f /dummy/*
  # cp -p /sbin/restore /dummy/

では、/dummy/restore を使って復元してみましょう。

  # /dummy/restore -r -f /tmp/dummy.dump
  ...
  /dummy/restore: ./dummy/restore: cannot create file: Text file busy

実行中のファイルは、上書きできないようになっているようです。
(別のコマンドを実行して試しても、同じメッセージが出力されましたので、 間違いないと思います。)

また、そこで処理を中断せず、 その後も /dummy 以下の復元処理を行ってくださったようで、 restore 以外すべてが戻っていました。

というわけで、restore コマンド自身の復元は行われませんので、 /sbin の復元を行う際には、あまり気にしなくてよさそうです。

でもわたしは、もしものことを考えて、 上書きされない別のディレクトリに restore コマンドをコピーし、 コピーした restore コマンドを用いる方法をとりたいと思います。 (ず、ずるいですか?)

ちなみに、restore コマンドは静的にリンクされていますので、 使用するライブラリのことは考えなくていいと思います。

今週の宿題

今週の宿題は、

  インクリメンタルバックアップを行う際に、途中のレベルを下げると、
  どうなるでしょうか。

です。

上げていくばっかりだと、インクリメンタルバックアップは9回しか行えません。 それだけあれば十分、という考え方もありますが、ここはあえてやってみて、 どうなるか見てみたいと思います。

あとがき

めずらしく、風邪を引いてしまいました。

今週1週間、子どもが風邪を引いて学校を休んでいましたが、 ウィルスを世間に広めるべく、わたしの体が次のターゲットに選ばれたようです。

とはいえ、熱が急激に上昇するわけでもなく、意識が朦朧とするわけでもなく、 喉の痛みと、ふわふわしたイヤな感触があるだけです。

2年前に引いたときは、同じく37度ちょっとの熱にもかかわらず、 強烈な頭痛と吐き気に襲われ、のたうちまわっていたような気がします。

当り前ですが、ひとくちに「風邪」と言っても、 いろんな症状があるんだなあと思いました。

ところで、体温計で熱を計るとき、左と右とでは違う値になるそうです。
左のほうが心臓に近いから、とよめが言っていましたが、じゃあ、 どっちの値を信じればいいのでしょうね。
(ちなみに、さっき計ったら、左が 38.0 で、右が 37.2 でした。
月並ですが、わたしは、「都合のいいほう」を選びたいと思います。)

 

さて、風邪を引いたから、というわけではなく、 今月末もファイヤーする可能性がありますので、 来週もまたお休みをいただきたいと存じます。

今年は、ちょくちょく休みがちで申し訳ないなあと思ってますが、その割には、 読者さまの増加率があまり変わっていないので、それをポジティブにとらえ、 中身の質が最低ラインを割り込まないように、 今後もそれなりに努力する所存でございます。
というわけで、今後とも、よろしくお願いいたします。

 

今週も、ここまで読んでいただき、ありがとうございました。
それでは、また来週…ではなく再来週に、お会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」−残念ながら、栗モノから冬モノへ変わりつつありますね…。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本