システム運用 - みる会図書館


検索対象: Running Linux : 導入からネットワーク構築まで
791件見つかりました。

1. Running Linux : 導入からネットワーク構築まで

176 ・ 4 章システム運用の基本 は、最初のシリアルデバイス (/dev/ttyOO または COMI) が、アドレス 0X03f8 、 IRQ 4 ( 16450 UART ファンクションを使用 ) で検出されたということを意味しています。 次に、サウンドカードドライバが初期化されます。さまざまな種類のサウンドデバ イスに対する名前とアドレスが出力されます。この場合、 SoundBlaster pro サウン ドカードは、 SoundBIaster Pro CD-ROM ドライプとともに検出されます。 次に出力されているメッセージは、プロセッサについての BogoMips 計算です。 これは、 ( 名前からもわかるように ) まったく当てにならないプロセッサ速度の測定 値です。これは、いくつかのデバイスドライバに遅延ループの中で最適の性能を持た せるために使用されます。また、カーネルはシステムメモリに関する情報も表示しま す。 Memory : 19512k / 20480k available ( 476k kernel code, 584k reserved, 308k data) こで、 19312K の RAM がシステムで利用可能であることがわかります。これは、 カーネル自体が 1168K を使用しているということを意味しています。 続いて、フロッピードライバとネットワークドライバが初期化されます。上に示さ れたシステムには、ネットワークデバイスがインストールされていません。ィーサネ ットカードがあるなら、追加情報が出力されます。 最後に、 IDE ハードディスクドライバが初期化されます。そして、各 IDE ドライ プのタイプが、検出されたパーティションのリストと共に出力されます。 装着されているハードウェアがあれば、それについてのメッセージが上に表示した ものに加えて表示されます。たとえば、パラレルポートと SCSI ドライバがあれば、 それらはこの時点で初期化されます。 これらのメッセージは、プート時にコンソールに出力されますが、通常はシステム のログファイルにも保存されます。 4.3.2 init と inittab いったんデバイスドライバが初期化されると、カーネルはプログラム init を実行 します。これは、 /etc 、 /bin または /sbin の中にあります ( ほとんどのシステムで は、 /sbin/init です ) 。 init は新しいプロセスを生成し、それらが終了するとある種のプログラムを再開す

2. Running Linux : 導入からネットワーク構築まで

268 ・ 4 章システム運用の基本 めには、 Norton ユーティリティを始めとする MS-DOS 上のツールを使用しなけれ ばいけません。少なくとも第 2 拡張ファイルシステム、 Minix ファイルシステム、 Xia ファイルシステム用の fsck のバージョンはみつかるはずです。 「 4.18 緊急時になすべきこと」で、ファイルシステムを検査し、障害から回復す るための追加情報を提供します。 fsck は決してファイルシステムのすべてのエラー を探し出して修復するわけではありません。しかし、一般的な問題のほとんどについ ては処理されるはずです。重要なファイルを削除してしまったとき、それを回復する ための簡単な方法はありません。このような場合、 fsck は役立ちません。第 2 拡張 ファイルシステムでは、 undelete ユーティリティを提供しようという動きがありま すが、必ずバックアップを取っておくか、ファイルを削除する前に常にプロンプトを 出して警告してくれる rm -i を使用するようにしてください。 4.13 スワップ領域を管理する スワップ領域は、システムで利用できる見かけのメモリ容量を増やすために使用さ れるディスク記憶領域を指す一般的な用語です。 Linux では、スワップ領域はページ ングに使用されています。これは、実メモリが少ないときは、メモリページ ( 1 ペー ジは、一般に 4096B ( バイト ) です ) がディスクに書き込まれ、必要なときに、実メ モリに呼び戻されるプロセスです。ページングが行われるプロセスはかなり複雑です が、ある場合については最適化されています。 Linux の仮想記憶サプシステムは、実 行中のプログラム間でメモリページが共有されるようにしています。たとえば、 Emacs を同時にいくつか実行している場合、実際にメモリ上にあるのはひとつだけ です。また、テキストページ ( データではなく、プログラムコードを含んでいるべー ジ ) は通常変更ができないので、スワップアウトされたときディスクに書かれません。 その代わり、それらのページはメインメモリから直接解放され、再びアクセスされた とき、元の実行可能ファイルから読み込まれます。 もちろん、スワップ領域は、物理 RAM の不足を完全に補うことはできません。 ディスクアクセスは、 RAM アクセスよりも何桁も低速です。それゆえ、スワップは 主に、物理 RAM には入りきらない多くのプログラムを同時に実行する手段として 役に立ちます。これらのプログラムが素早く切り換えられるとき、ページがディスク

3. Running Linux : 導入からネットワーク構築まで

448 ・ 6 章 プログラミングは、どのアプリケーションにもそのまま使用できます。そして、アプ Linux におけるプログラミング うになり大いに発展してきたのです ( 訳注 ) 。 注 2 U NIX が初めから C で開発されたわけではありません。開発の早い段階で C で作成されるよ 準を定義しています。オリジナルの C コンパイラが提示している規約は、 UNIX プ 伝統的にほかの言語やリンカ、デバッガなどのツール類に対してインタフェースの標 であるからでしよう注 2 。 C は UNIX の世界の母国語です。 UNIX C コンパイラは、 れています。おそらくそれは、 UNIX システム自体がもともと C で開発されたもの プログラミング言語 C は、 UNIX におけるソフトウェア開発のほとんどで使用さ 6.1 gcc によるプログラミング ル類を紹介します。 本章の最後に、 C におけるデバッグ方法と C プログラマに有用な多くの補助ツー く、シェルスクリプトよりも強力で、多くのプログラミング作業に向いています。 本当に重要な作業に神経を集中することができます。 PerI と TcI/Tk は洗練度が高 のようなスクリプト言語で、記憶割当てなどの面倒な仕事を肩代わりしてくれるので、 ました。本章では、 PerI と TcI/Tk の 2 つを取り上げます。これらは UNIX シェル しかし、特にシステム運用のためには、ほかのいくつかのツールが重要になってき います。 ましよう。本章の最初の数節では、あなたがすでに C プログラマであると仮定して になっているので、そのためにどのようなツールが利用できるのかという話から始め では C 言語を使用しています。 C が現代のほとんどのプログラマの間で共通の言語 UNIX だけでなく、ほかの多くのシステムにおいても、大規摸なプログラム開発 機能は、新しいユーザにとってはわかりにくいこともあります。 ール類とそれらの効果的な使い方を知ることです。これらのツールのもっとも役立つ 潔に紹介します。 UNIX でプログラミングするときの第 1 の秘訣は、利用できるツ 本章では、 Linux のプログラミング環境を調査し、それが提供する多くの機能を簡 ルできるはずです。 リケーションの X に特有な部分は、ほかの UNIX システム上でも問題なくコンパイ

4. Running Linux : 導入からネットワーク構築まで

220 ・ 4 章 tar —CV システム運用の基本 -T /tmp/filelist. daily -f /dev/rftO こまでくれば、自動的にファイルのリストを作成し、それらを tar でバックア ップする短いシェルスクリプトを書くことができます。 cron を使用して、そのスク リプトを毎晩ある時刻に実行することができます。これで、あなたのなすべきことは、 テープがドライプに入っているのを確認するだけになります。毎週、毎月のバックア ップのために、同様のスクリプトを書くことができます。 cron については、本章の 「 4.15 cron を使用してジョブをスケジューリングする」で解説します。 4.9 ソフトウェアをアップグレードする Linux の動きは活発です。プロジェクトが協同的な性質を持っているために、新し いソフトウェアが常に利用できます。そして、プログラムは絶えずより新しいバージ ョンに更新されています。取り組んでいるグループがたくさんある Linux カーネル の場合には特にそうです。 Linux は開発過程のまっただ中にあるため、新しいカーネ ルバッチが毎日のようにリリースされることも珍しくありません。システムのそのほ かの部分はそれほど活発ではないにしろ、同じことが言えます。 開発がどんどん進んでいくのに合わせて、どのようにすればシステムソフトウェア の最新バージョンを手元に確保しておけるのでしようか。単刀直入に言えば、それは 不可能です。しかし、毎日のようにリリースされるカーネルバッチを追いかける必要 のある人々もいるので、ソフトウェアを頻繁にアップグレードすることもできないわ けではありません。本節では、なぜアップグレードしなければならないのか、そして いつアップグレードしたらよいかについて、さらにシステムのいくつかの重要な部分 をアップグレードする方法について解説します。 どの時点でアップグレードしなければならないのでしようか。一般には、アップグ レードする具体的な必要性があるときだけ、システムの一部をアップグレードするこ とを考えるべきです。たとえば、重大なバグ ( すなわち、アプリケーションを使用す る上で実際的な問題のあるバグ ) を解決したアプリケーションの新しいリリースのこ とを耳にしたときは、そのアプリケーションをアップグレードしたいと考えるのが普 通です。そのプログラムの新しいバージョンが有用だと思われる新しい機能を提供す

5. Running Linux : 導入からネットワーク構築まで

166 ・ 4 章システム運用の基本 ( 「ハードドライプからプートする」ということは、カーネル自体がハードドライプに 格納されていて、プートフロッピーを必要としないことを意味します。しかし、プー トフロッピーを使用するときでさえも、いったんカーネルがメモリにロードされたら、 制御はハードドライプに移されるということを覚えておいてください ) 。 LILO がド ライプのマスタープートレコード (MBR) 上にインストールされると、それは、ハ ードドライプのプート時に実行される最初のコードとなります。 LILO は Linux や MS-DOS といった OS をプートすることができ、プート時にどれかを選択すること ができます。 しかし、 OS/2 や Windows NT は MBR を占有するそれ自身のプートマネージャ を持っています。これらのシステムを使用しているなら、ハードドライプから Linux をプートするには、 LILO を Linux だけのための 2 次プートローダとしてインストー ルしなければいけません。この場合、 LILO は Linux のルートパーティション専用の プートレコード上にインストールされます。そして、 Linux をプートしたいときは、 プートマネージャ (OS/2 または NT 用 ) が LILO を実行する方法をとります。 しかし、あとで示すように、 LILO をプートするとき、 OS/2 と NT のプートマネ ージャはあまり相性がよくありません。これはよい方法ではありません。どうしても これらのプートマネージャを使用しなければならないならば、このようにしないで、 フロッピーから Linux をプートするほうが簡単かもしれません。これらについては 後述します。 先へ進む前に、 Linux ソフトウェアを最初にインストールするとき、多くの Linux パッケージでは、 LILO を構成してインストールすることができるようになっている ということを頭に入れておかなければいけません。しかし、すべてを正しく確実に行 うためには、自分で LILO の設定をするのがベストです。 (l)/etc/lilo. conf ファイル LILO を設定する第一段階は、よく /etc/lilo. conf に保存される LILO 設定ファイ ルをセットアップすることです。 ( / boot / 1i10. conf または /etc/lilo/config という ファイルに保存するシステムもあります ) 。 サンプル 1i10. conf ファイルの内容を見てみましよう。自分の 1i10. conf を作成す るときのべースとしてこのファイルを使用し、自分のシステムに合うように編集する

6. Running Linux : 導入からネットワーク構築まで

296 ・ 4 章システム運用の基本 のに必要なことは、それらのファイルシステムをマウントし、その上でアーカイプの 内容を展開することです ( それには、 tar コマンドと gzip コマンドを使用します。「 4.8 バックアップを取る」を参照してください ) 。バックアップを復元する時はいつでも、 ほかのシステムファイルを上書きしていることを思い出してください。すべての手続 きを確実に正しく行い、状況を悪化させないようにしてください。ほとんどのアーカ イプ処理プログラムを使用して、アーカイプから個々のファイルを展開することがで きます。 同様に、オリジナルの CD ー ROM を使用してファイルを復元したいなら、緊急ディ スクで使用するカーネルに、 CD-ROM ドライプにアクセスするのに必要なドライバ を必ず入れておくようにしてください。これで、 CD-ROM をマウントして (mount のフラグ「 -r -t iS09660 」を思い出してください ) 、そこからファイルをコピーす ることができます。 また、緊急ディスク上のファイルシステムには、重要なシステムファイルも入れて おくのがよいでしよう。システムからこれらの 1 つを削除してしまった場合に、その 消失ファイルを緊急ディスクからハードドライプのファイルシステムへコピーするの は簡単です。

7. Running Linux : 導入からネットワーク構築まで

1.7 Linux の設計と思想・ 35 ます。たまたま、うまくいった場合は、 UNIX の知識なしに Linux をインストール して使い始めることができるでしよう。しかし、 L ⅲ ux を動かすもっと複雑な作業、 たとえば新しいソフトウェアのインストール、カーネルの再コンパイルなどを行おう とすると、 UNIX に関する知識がどうしても必要になります。 幸いなことに、自分の Linux システムを動かすことによって、これら の作業に必要な UNIX に関する必須知識を習得することができます。本 3 章 / 4 章 書は、 Linux を使い始める際の手助けとなる情報を多数提供します。 3 章 では UNIX の基礎について、 4 章では Linux のシステム運用について解説します。 Linux をインストールしようと試みる前に、これらの章を読みたいと思うでしよう。 これらの情報は、万一問題にぶつかった際に貴重なものです。 ひと晩で UNIX 初心者が一人前の UNIX システム管理者になることなど、誰も期 待していません。トラブルも保守もなく動くような Linux などありません。これか ら起こるいろいろな出来事に対して、適切な準備を整えておかなければなりません。 さもないと、 UNIX が初めての場合、しなくてもよい失敗をしてしまうかもしれま せん。 1 . 7.2 UN Ⅸ専門家のためのヒント UNIX のプログラミングやシステム運用の経験者でさえも、 Linux を習得してイ ンストールする前に手助けを必要とするかもしれません。 Linux に取り組む前に、知 っておかなければならないことがあります。そのひとつは、 Linux が商用 UNIX シ ステムではないことです。ほかの UNIX システムと同様の基準を持っていません。 もっとはっきり言うと、 Linux 開発において安定性は重要ですが、必ずしも最優先事 項ではないということです。 Linux では安定性よりも機能性が重視されます。多くの場合、まだバグが多く機能 的に完全ではない新しいコードも、標準カーネルの中に入れられています。完全にな る以前に、ユーザがテストして使用できるコードをリリースする場合が多いのです。 例を挙げると、 WINE (Linux 用の Microsoft Windows 工ミュレータ ) は、完全に テストされる以前にアルフア・バージョンがリリースされました。このように、 Linux コミュニティはコードを生み出し、それを検査し、発展させるのを手伝う場となって います。そこに提供されたアルフア・バージョンのコードが十分に役立っと判断した

8. Running Linux : 導入からネットワーク構築まで

4 ・ 1 章 Linux 入門 ソコン用の OS でできるすべてのことに加えて、 Linux でのみ可能なことをできるよ うにすることです。基礎から始めて、導入、システム運用、プログラミング、ネット ワークに至るまでを解説します。 本書における内容の多くはそれほど技術的ではありませんが、 UNIX システムにおける経験は役立ちます。 UNIX を経験したことのない人達 3 章 / 4 章 のために、「 3 章基本的な UNIX コマンドと概念」に新規ューザに対す る短い解説を含めておきました。「 4 章システム運用の基本」はシステム運用全般 を解説した章です。 Linux システムを動かす上で、経験豊かな UNIX ューザにも役 立ちます。 UNIX の初心者は、 UNIX の基礎に関するより完全なガイドが欲しいでしよう。 私たちは、システムの楽しい部分を省略してまで、基礎的な事柄を長々と説明するよ うなことはしません。いずれにしても、本書は Linux を使い始めるには十分な内容 を提供しますが、ほとんどの読者には UNIX を走らせるためのより多くの情報が必 要になるでしよう。 Linux の情報リストについては、「付録 A Linux に関する情報 源」を参照してください。 1.2 LinUX 小史 サポート体制が整備され、広範囲に配布されているため、 UNIX は世界的に人気 の高い OS の 1 つです。そもそも UNIX は 1970 年代中頃に ニコンピュータとメ インフレームのためのマルチタスク・システムとして開発されました。困惑するよう なインタフェースや、標準化がなされていないといった欠点にも関わらず、広範囲に 使用される OS の 1 っとして成長してきました。 UNIX が人気を集めている真の理由は何でしようか。多くのハッカーたちは、 UNIX は正統、つまり唯一絶体の OS であると感じています。彼ら自身のシステムのために 手を汚したいと思っている UNIX ハッカーたちのグループによって、 Linux が開発 されたのはそのためです。 PC からクレイ Y-MP などのスーバコンピュータに至るまでの多数のシステムに 対して、さまざまなバージョンの UNIX が存在します。 PC 用 UNIX のほとんどの バージョンは非常に高価で、取り扱いが面倒です。本書を執筆している時点で、 386

9. Running Linux : 導入からネットワーク構築まで

幻 0 ・ 4 章 できます。 システム運用の基本 しかし、ほかの OS と違って、 rm によって削除されるか、不注意な cp または mv によって上書きされたファイルを「 undelete 」することは、一般的には不 可能です ( たとえば、あるファイルを別のファイルにかぶせてコピーすると、かぶせ られたファイルは破壊されてしまいます ) 。このような極端な場合に、バックアップ は問題から回復するためのキーとなります。 バックアップは、通常テープまたはフロッピーディスクに作成されます。どちらの 媒体も 100 % 信頼できるわけではありませんが、テープは長い目で見ればフロッピー ディスクよりもずっと信頼性があります。バックアップを作成するときに利用できる 多くのツールがあります。もっとも簡単な方法は、 gzip と tar の組合せを利用して、 フロッピーディスクまたはテープにハードドライプのファイルをバックアップするこ とです。これは、たとえば、月に一度くらいのバックアップを取るような場合に、も っとも適した方法です。 システム上に多数のユーザがいるか、システム構成を頻繁に変更するような場合に は、インクリメンタル・バックアップ方式を使用するほうがより効果的でしよう。そ のような方式の下で、月に一度だけシステムのフルバックアップを取ります。そして、 前の週に変更したファイルだけを毎週バックアップします。同様に、その日に変更し たファイルだけを毎晩バックアップします。このようなバックアップ作業を支援して くれるツールがいくつかあります。 インクリメンタル・バックアップの背後にある考え方は、小刻みにバックアップを 取るほうがより効率的であるということです。つまり、フロッピーディスクやテープ が少なくてすみ、毎週、毎晩のバックアップがずっと短くて、楽になるのです。これ によって、頻繁にバックアップを取ることが容易になります。少なくとも 1 日前のバ ックアップを必ず取っておくようにしましよう。間違ってシステム全体を削除してし まった場合には、次の方法でバックアップからシステムを復元してください。 1. 2. 最新の月毎バックアップから復元します。たとえば、 7 月 17 日にシステムを消 してしまったときは、 7 月 1 日のフルバックアップを復元します。これで、シス テムは 7 月 1 日にバックアップが行われた時点でのファイルの状態に戻ります。 その月に行った週毎バックアップをひとつひとつ復元します。この場合は、 7 月 7 日と 14 日の 2 回の週毎バックアップから復元します。各週毎バックアップを 復元すると、その週の間に変更されたファイルのすべてが更新されます。

10. Running Linux : 導入からネットワーク構築まで

218 ・ 4 章システム運用の基本 ます。でも、 afio の場合は圧縮を含んで、個々のファイルが圧縮されるのでいっそ う信頼できます。これは、アーカイプ中のデータが壊れたときは、バックアップ全体 ではなく、個々のファイルにダメージを限定することができることを意味します。 これらのツールは、 Linux パッケージだけでなく、インターネットにある Linux アーカイプのすべてから入手できるはずです。人気の度合や利用のされ方は違います が、ほかにも数多くのバックアップューティリティが開発され、 Linux に移植されて います。バックアップについてまじめに考えているなら、それらを調べてみるべきで す注 6 4.8.2 インクリメンタル・パックアップ 本節の初めのほうで述べたように、インクリメンタル・バックアップは、システム バックアップを最新の状態に保っておくためのよい方法です。たとえば、過去 24 時 間の間に変更したファイルだけを毎晩バックアップし、前の週に変更したすべてのフ ァイルを毎週バックアップし、システム全体を毎月バックアップすることができます。 上で述べたツール、すなわち tar 、 gzip 、 cpio 、そのほかを使用して、インクリ メンタル・バックアップを作成することができます。インクリメンタル・バックアッ プを作成する際の最初のステップは、ある単位時間の中で変更のあったファイルのリ ストを作成することです。これは、 find コマンドで簡単にできます注 7 。 たとえば、過去 24 時間の間に変更されたすべてのファイルのリストを作成するに は、次のコマンドを使用します。 find / -mtime ー 1 \ ! -type d -print 〉 /tmp/filelist. daily find への最初の引数は、探索の開始点となるディレクトリで、 こではルートデ ィレクトリ / です。 -mtime ー 1 というオプションは、過去 24 時間以内に変更のあっ 注 6 注 7 もちろん、私は 4 年近くも使い続けた Linux システムのバックアップを初めてとった上で、 本節を執筆しました。 f ⅲ d を知らなくても心配はいりません。特定のファイル名、使用許可、修正時刻を持っ多く のディレクトリの中から、ファイルをみつけるといった作業に大いに役に立つ道具です。みつ けた各ファイルに対して、プログラムを実行することもできます。要するに、 find はあなた の味方であり、優れたシステム管理者なら皆その使い方を知っています。