システムの保守
アプリケーションソースのコンパイル
アプリケーションソース
- ディストリビューションで提供されているアプリケーション
- 独自の開発元から提供されているアプリケーション
コンパイルインストール手順
デフォルトでは /ursr/local
にアプリケーションがインストールされ、コマンドは /usr/local/bin
にインストールされる。
$ ./configure
: システムに適合した Makefile を生成する$ make
:./configure
によって生成した Makefile を参照してコンパイルする$ su
: インストールする権限を取得するために root ユーザーになる# make install
: コンパイルしたアプリケーションをインストールする
configure コマンド
Makefile.in
から Makefile を生成するシェルスクリプトである。 引数によって Makefile の内容が置き換えられる。
Makefile.in | Makefile | 説明 |
---|---|---|
prefix = @prefix@ | prefix = /usr/local | プレフィックスの指定 |
exec_prefix = @exec_prefix@ | exec_prefix = ${prefix} | インストールディレクトリの指定 |
bindir = @bindir@ | bindir = ${exec_prefix}/bin | コマンドを置くディレクトリの指定 |
mandir = @mandir@ | mandir = ${prefix}/share/man | オンラインマニュアルを置くディレクトリの指定 |
INSTALL = @INSTALL@ | INSTALL = /user/bin/install -c | インストールプログラムの指定 |
CC = @CC@ | CC = gcc | C コンパイラの指定 |
make コマンド
ソースプログラムからバイナリプログラムを生成するツールである。 カレントディレクトリ配下の GNUmakefile、makefile、Makefile を順に探し、最初に見つけたファイルを参照してプログラムを生成する。 make で生成する対象のことをターゲットと呼ぶ。 最初のターゲット名は all が一般的である。 ターゲットが依存するコンポーネントを指定し、次の行にはタブを入力した後にターゲットを生成するコマンドを指定する。
個別に作成されるターゲットのほか、標準的には次のようなターゲットが含まれる。
- all: 依存する全てのターゲットの頂点となる
- clean: 生成された不要なターゲットを削除する
- install: 生成したターゲットをインストールする
- test: 生成したターゲットが正しく動作するかテストする
- uninstall: インストールしたコマンドなどを削除する
install コマンド
ファイルをコピーし、その属性を設定する。 ソースからコンパイルして作成したファイルをインストールするときに使用する。
install [オプション] ファイル ... ディレクトリ
- -m パーミッション: コピーしたファイルのパーミッションを 8 進数で指定
- -s: コピーしたファイルのシンボルテーブルを削除
make コマンド
ターゲットとターゲットが依存するファイルの更新時刻を比較して、更新時間が新しい場合にのみターゲットを再生成する。 これにより、ソースの更新部分に関わる部分だけを効率よく再生成する。
すべてを最初から再生成するときは make clean
で以前生成したターゲットを削除してから実行する。
Makefile にリグレッションテストをターゲット test として記述し、make test
で検証する。
ファイルシステムのバックアップ
完全バックアップと増分バックアップがある。 完全バックアップを取得するには時間がかかるが、増分バックアップだけではデータの完全な復旧が難しくなる場合がある。 復旧計画に沿ったバックアップの取得と保存頻度を計画する。
dump コマンド
ファイルシステム単位のバックアップを取得する。
dump [ダンプレベル]uf バックアップデバイス マウントポイント
- -ダンプレベル: 0 ~ 9 までのダンプレベルを指定 (0: フルダンプ、1 ~ 9: 差分あるいは増分ダンプ)
- -a: テープ長の計算はせず、eom を検知するまで書き込む
- -f デバイス: 使用するデバイスあるいはファイルを指定する
- u: ダンプ終了時に
/etc/dumpdates
ファイルを更新する
増分バックアップ実行時は以前のバックアップ番号より大きい番号を指定する。 以前のタイミングで取得した時からの増分データのみをバックアップする。
差分バックアップ実行時は同じ番号を指定し続ける。 前回の完全バックアップで取得した時からの増分データをバックアップする。
dump でのバックアップ中にファイルシステムが変更されるとバックアップに不整合が生じる可能性がある。 そのため、ランレベル 1 で起動し、ファイルシステムを変更するサービスは停止しておく。
restore コマンド
バックアップ取得順に古いものから順にリストアする。
restore [オプション] バックアップデバイス
- -r: フルダンプのリスト後それに続く差分あるいは増分ダンプのリストアで指定する
- -x: 指定したファイルをリストアする場合に指定する
- -i: 対話的にファイルをリストアする場合に指定する
- -v: リストア中のファイル名を表示する
- -f デバイス: 使用するデバイスあるいはファイルを指定する
dd コマンド
ディスクパーティション内のデータをそのまま別のパーティションにコピーする。
dd [if=file] [of=file] [bs=bytes] [count=blocks]
- if=file: 入力ファイルの指定
- of=file: 出力ファイルの指定
- bs=bytes: 1 回の read/write で使用するブロックサイズの指定
- count=block: 入力するブロック数を指定
dd if=/dev/zero of=/dev/sda1
などとすると、全データを消去できる。
tar コマンド
アーカイブファイルの管理に使用する。
tar [オプション] ファイル名またはディレクトリ名...n
- -c, –create:アーカイブファイルを作成する。
- -t, –list:アーカイブファイルの内容を表示する。
- -x, –extract:アーカイブファイルを展開する。
- -f, –file:アーカイブファイル名を使用する。
- -v, –verbose:詳細情報を表示する。
- -j, –bzip2:アーカイブに対して、bzip2 を使用する。
- -J:アーカイブに対して、xz を使用する。
- -z, –gzip:アーカイブに対して、gzip を使用する。
zip コマンド
ファイルを zip 形式で圧縮するツールである。 ディレクトリ以下や複数のファイルを単一のファイルに圧縮できる。 従来の ZIP 形では圧縮前のファイルサイズは 4 GB 以下である必要がある。 zip バージョン 3.0 からは ZIP64 拡張をサポートし、上限のサイズは 16 EB となる。
- -P: パスワードをつけて暗号化する
rsync コマンド
ファイルをコピーするツールである。 ローカルホストのディレクトリ間もしくはリモートホストとの間でのバックアップや同期を行う。
rsync [オプション] コピー元 コピー先
- -a, –archive: アーカイブモード (-rlptgoD と等しい)
- -r, –recursive: ディレクトリを再帰的にコピーする
- -l, –links: シンボリックリンクをシンボリックリンクとしてコピーする
- -p, –perms: パーミッションをそのまま維持する
- -t, –times: ファイルの変更時刻をそのまま維持する
- -g, –group: ファイルのグループをそのまま維持する
- -o, –owner: ファイルの所有者をそのまま維持する
- -D: –devices, –specials と等しい
- –devices: キャラクタデバイスファイルとブロックデバイスファイルをそのままデバイスファイルとしてコピーする
- –specials: ソケットファイルと名前付き FIFO をそのままソケットあるいは FIFO としてコピーする
- -v, –verbose: 転送ファイル名を表示する
- -z, –zompress: 転送時にファイルデータを圧縮する
- -u, –update: 送信先ファイルの方が新しい場合はコピーしない
- –delete: 送信元で削除されたファイルを送信先でも削除する
- -e, –rsh=COMMAND: リモートシェルを指定する
ユーザーへの通知
ログインプロンプトメッセージ
ユーザーがコンソールにログインした時ログインプロンプトの前のメッセージは /etc/issue
の内容を表示する。 Linux ディストリビューションの名前とバージョン、カーネルのリリース番号とマシンタイプが格納される。
ログインメッセージ
ログインした時のメッセージは /etc/motd
の内容が表示される。(Message Of The Day) インストール時はからファイルである。
wall コマンド
引数で指定したメッセージをログインしているユーザー全員に送る。
wall [メッセージ]
ディスクの保守
lsof コマンド
プロセスがオープンしているファイルやソケット、および TCP コネクションの情報を表示する。
lsattr コマンド
ファイルの属性情報を表示する。
lspci コマンド
PCI バスに接続されたデバイスの情報を表示する。
lsusb コマンド
USB バスに接続されたデバイスの情報を表示する。
lsdev コマンド
インタラプト、DMS、IO ポートの情報を表示する。
SMART
SMART (Self-Monitoring, Analysis and Reporting Technology) はハードディスクに組み込まれた監視システムである。 seek、read、write のエラー率や温度などの信頼性に関する項目を検知して報告する。 smartctl コマンドや smartd デーモンでこれらの情報を収集および表示する。
smartd ではエラーや変化を検知したときはファシリティ daemon で syslog に送る。
smartctl [オプション] デバイス名
- -H, –health: ヘルスステータス情報の表示。fail の場合は故障中か 24 時間以内に故障の可能性がある
- -i, –info: ハードディスクのデバイス情報を表示
- -c, –capabilities: ケーパビリティの表示 (ATA ディスクのみ)
- -A, –attributes: 検査項目の情報を表示
- ID#: 1 ~ 254 の属性識別番号
- ATTRIBUTE_NAME: 属性名
- VALUE: RAW_VALUE から 1 ~ 254 内に正規化された現在値
- WORST: 正規化されたこれまでの最低値
- THRESH: faail と判定するしきい値
- RAW_VALUE: 物理的に検知された生の値
- -l, –log: ログの表示
- error: エラーログ
- selftest: セルフテストログ
- selective: セルフテストログ
- -a, –all: SMART が表示したデータをすべて表示する
- ATA ディスク:
- SCSI ディスク:
- -t, –test: セルフテストを実行する
- offline: エラーがあったかどうかを確認
- short: offline とは違う種類のオフラインテスト
- -s, –smart: SMART 機能をオン、オフする
コメント