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

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


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

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

愛知万博会場の近くにある、愛知県陶磁資料館へ行ってきました。

愛知県陶磁資料館
http://www.pref.aichi.jp/touji/

ここでは、かなり安い値段で、自分で土を練って、食器などを作ることができます。
じつは、先月も訪れて、家族で作ってきました。 その出来上がりを取りにいくついでに、またまた作ってしまった、という次第です。

ここでは、大きさや厚みに制限があるものの、それを守れば、何個でも、 どんなものでも、自由に作ることができます。
出来はともかく、実際に出来上がってきたモノを目にしますと、 感慨深い…とまではいきませんが、思ったよりもうれしくなります。

おそらく、今日作ったものが来月に出来上がると、 また取りに行くついでに作ってしまうんだろうなあ、と思います。
それは、一見よいスパイラルのようですが、できたもののうち、 駄作の方が確実に多いですので、それらがどんどん部屋に増幅していくのかと思うと、 なんとも言えない微妙な気持ちになります。

そのうち飽きて解消されるかもしれませんが、 創作活動で脳を鍛えているのだと思って、飽きるまでは存分に楽しみたいと思います。

それでは、今週も、はりきってまいりましょう!

今週のお題 - 設定ファイルをもっとリビジョン管理する

先週、RCS を使った、設定ファイルのリビジョン管理の方法を、 さらっとご紹介しました。

Vol.061 - 設定ファイルをリビジョン管理する
http://www.usupi.org/sysad/061.html

ただ、基本的なことしか触れませんでしたので、 ちょっとでもイリーガルなことが起こると、困ってしまうのではないかと思います。

そんなときのために、今週は、もう一歩踏み込んだところをご紹介したい と思います。


先週と同じく、今週も、/etc/hosts を例に、ご紹介します。

まず、今までの履歴や今の状態を見たいという欲求は、 とてもありがちなことではないかと思います。
そんなときには、迷わず rlog コマンドを実行してみましょう。

  % rlog /etc/hosts

  RCS file: /etc/hosts,v
  Working file: /etc/hosts
  head: 1.2
  branch:
  locks: strict
          root: 1.2
  ...後略...

最新のリビジョンが 1.2 だとか、root が 1.2 をロックしているとか、 今までにどんなリビジョンがあったのか、などなどがわかります。
実のところは、/etc/hosts,v を見やすく出力してくれているだけです。
余力のあるかたは、/etc/hosts,v と見比べてみましょう。


次に、リビジョンに別名をつけてみましょう。
1.1 だとか 1.2 だとかいう無機質な名前ではなく、好きな名前をつけることで、 愛着がわくのではないかと思います。
rcs コマンドの -n オプションを使って、別名をつけることができます。
具体的には、以下の書式で設定できます。

  rcs -n別名:リビジョン ファイル

たとえば、リビジョン 1.2 に vista というだいそれた別名をつけてみる場合は、 以下のように実行します。

  # rcs -nvista:1.2 /etc/hosts
  RCS file: /etc/hosts,v
  done

別名は、リビジョンを指定するオプションなどで、使えます。
そのリビジョンの幸せを考えて、なるべく合った名前をつけてあげるようにしましょう。


このリビジョンから何を変えたんだっけ、という疑問にも、 RCS は答えてくれます。
差分を見るには、rcsdiff コマンドを使用します。書式は以下です。

  rcsdiff -rリビジョン1 -rリビジョン2 [diffのオプション] ファイル

たとえば、リビジョン 1.2 と 1.4 の差分を less コマンドで見たい場合には、 以下のように実行します。

  # rcsdiff -r1.2 -r1.4 -u /etc/hosts | less

-u オプションは、diff コマンドに渡されるオプションです。


ロックしたけど、やっぱり変更するのをやめたい、なんていうのも、 よくあることだと思います。
アンロックするには、rcs コマンドの -u オプションを使用します。

  # rcs -u /etc/hosts
  RCS file: /etc/hosts,v
  1.2 unlocked
  done

通常はありえないと思いますが、複数のリビジョンをロックしているときは、 解除したいリビジョンを明示的に指定します。
(以下では 1.2 をアンロックしています。)

  # rcs -u1.2 /etc/hosts

忌まわしきリビジョンをこの世から葬り去りたい、という恐ろしい欲求にも、 RCS は答えてくれます。おお…。
それには、rcs コマンドの -o オプションを使用します。

  #  rcs -o1.2 /etc/hosts

これで、リビジョン 1.2 が消え去ります。
広範囲に削除したい場合は、: で区切ってリビジョンを2つ指定すると、 その範囲のリビジョンがごっそり葬られます。

  # rcs -o1.2:1.4 /etc/hosts

上記を実行しますと、1.2 から 1.4 の間のリビジョンが、 きれいさっぱり消え去ります。
範囲指定が間違っていないか、十分確認してから、実行しましょう。


最後に、設定ファイル中に、$Id$ や $Log$ などのキーワードを挿入しておくと、 チェックアウトしたときに、挿入したキーワードが、 リビジョンや今までの履歴に置き換えられます。
たとえば、以下のような hosts ファイルがあるとします。

  # $Id$
  127.0.0.1 localhost

これをチェックインして、チェックアウトしますと、

  # $Id: hosts,v 1.3 2006/06/18 14:20:30 root Exp root $
  127.0.0.1 localhost

$Id$ がリビジョンの概要に置き換わります。
どのバージョンをチェックアウトしたかが、わかります。便利ですね。
$Log$ や他のキーワードについては、みなさんで実際に試してください。


以上、RCS を使ったリビジョン管理について、さらにご紹介しました。
いきなり /etc/hosts とかで試すのがこわいとおっしゃる貴兄は、 適当なファイルをでっちあげて、一通り試してみるといいと思います。
(じつは、上記も、/etc/hosts でいきなり試さず、 適当なファイルで確認してから行いました。)

恐れず、面倒くさがらず、実際に試してみてください。

宿題の答え

先週の宿題は、

  RCS で、もとのアクセス権を保存する方法を、考えてみましょう。

でした。

元のファイルのアクセス権を覚えておき、チェックインやチェックアウトの後に、 覚えておいたアクセス権を設定しなおす、という方法を思いつきましたので、 実際にやってみました。
例によって例のごとく、ちょっと手抜きな Perl スクリプトです。

  #!/usr/bin/perl
  use strict;

  if($#ARGV < 0) {
	print STDERR "Usage: $0 args...\n";
	exit 1;
  }

  my $file = $ARGV[$#ARGV];
  my @stat = stat($file);
  if(!@stat) {
	print STDERR "$file: cannot stat.\n";
	exit 2;
  }

  my $mode = $stat[2];
  system(@ARGV);

  if(! -f $file) {
	open(FILE, ">$file");
	close(FILE);
  }
  chmod($mode, $file);

あらかじめ stat() でアクセス権($mode)を得てから、system() で引数を実行し、 アクセス権を chmod() で設定しなおします。それだけです。
ファイルがなくなるときは、空のファイルを作って、それに設定します。
それから、チェックアウト時に、必ず以下のように聞かれます。
アクセス権保存のため、ファイルが必ず存在するわけですが、 それを削除してもよいか聞かれています。 ちょっと悩んでから y と答えてください。

  writable testfile exists; remove it? [ny](n):

このスクリプトを、cvswrap.pl というファイル名で保存したとすると、 以下のように使います。(testfile を管理します。)

  % echo test > testfile
  % chmod 660 testfile
  % ls -l testfile
  -rw-rw----    1 usu      adm             5 Jun 13 23:07 testfile
  % ./cvswrap.pl ci testfile
  % ls -l testfile
  -rw-rw----    1 usu      adm             0 Jun 13 23:15 testfile
  % ./cvswrap.pl co -l testfile
  (既存ファイルを消してよいか聞かれたら y)
  % ls -l testfile
  -rw-rw----    1 usu      adm             5 Jun 13 23:18 testfile
  (testfile を編集)
  % ./cvswrap.pl ci testfile
  % ./cvswrap.pl co testfile
  (既存ファイルを消してよいか聞かれたら y)
  % ls -l testfile
  -rw-rw----    1 usu      adm            10 Jun 13 23:31 testfile

最初にアクセス権を 660 と設定しましたが、どの段階でも、 最初に設定したアクセス権になっていることがわかります。

今週の宿題

今週の宿題は、

  ロックしなくてもチェックインできるようにしてみましょう。

です。

実質的な管理者が自分だけだったりするなら、ロック・アンロックしなくても、 実害は少ないと思います。
あるコマンドのオプションを指定して実行するだけですので、 オンラインマニュアルを眺めてみてください。

あとがき

とうとう、専用サーバを借りることになりました。
順当にいけば、来月あたりに切替えられそうです。

前にも書きましたが、専用サーバといってもいろいろあります。
そのなかから、安くてよさげなところを選びました。

SAKURA Internet : 専用サーバ
http://www.sakura.ne.jp/ss/index.shtml

月額6,800円で、root 権限がもれなくついてきて、 仮想ではなくほんものの専用サーバです。 メモリが 512MB, ディスクも 40GB あるので、たぶん十分です。

OS も、2種類だけですが、選べます。
Fedora Core と FreeBSD がありましたので、Fedora Core にしました。
(実際にインストールされたのは、Fedora Core 5 でした。)

これから、初期設定や移行作業など、いろいろやることがありますので、 わくわくしています。(^ε^)

使用感などで、おもしろいことがありましたら、随時ご紹介していきたいと思います。 あまり期待せずに、お待ちいただけますと幸いです。

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

「いますぐ実践! 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/ (栗日記ブログ)
http://www.fumido.co.jp/kuriniki/ (栗日記ぎゃらりー)


[バックナンバーのトップへ] [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

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本