7. システムのメンテナンス
7.1. ソースからのインストール
7.1.1. ソースの展開
Linuxのソフトウェアはアーカイブ形式で配布される。
アーカイブはtar
コマンドで作成された後、gzip
、bzip2
、xz
を使って圧縮される。
アーカイブの展開と回答は以下の通り。
- .gzの場合 ...
gunzip
、gzip
- .gzipの場合 ...
bunzip2
、bzip2
- .xzの場合 ...
unxz
、xz
アーカイブの中には以下の内容が含まれることが多い。
- ソースファイル ... C言語などで書かれたソースコード
- ヘッダファイル ... C言語のヘッダファイル
- configureファイル ... コンパイルに必要な環境をチェックするスクリプト
- ドキュメント ... インストールの手順/注意事項が書かれたファイル
ソースファイルが含まれたアーカイブを展開した後、以下の手順でコンパイルからインストールを行う。
- ./configure
- make
- su (必要の場合)
- make install
なおインストール(make install
)後にプログラムを起動するとき、環境変数LD_LIBRARY_PATH
が正しく設定されていないと、プログラムの実行に必要な共有ライブラリを読み込むことができず、起動に失敗する事がある。
patchコマンド
差分ファイル(パッチファイル)を既存のソースコードに適用してソースコードをバージョンアップするコマンド。
オプション | 説明 |
---|---|
-d ディレクトリ | 指定したディレクトリに移動して処理を行う |
-p | パッチファイル内に書かれたパス名を修正する(-p0: パス名を修正しない, -p1: 最後の/まで削除する, -p2: 次のディレクトリまで削除する) |
-C | どういう処理を行うかテストする |
-R | パッチの適用を取り消して戻す |
7.1.2. Makefileの作成
Makefileはconfigure
スクリプトにより、プログラムをコンパイルする際に必要な寛容をチェックし環境に合わせたファイル。
カレントディレクトリにあるスクリプトの実行はファイル名に./
を付ける。
なおconfigureの主なオプションは以下の通り。
オプション | 説明 |
---|---|
--help | 説明を表示する |
-prefix=ディレクトリ | インストール先のトップディレクトリを指定する |
7.1.3. コンパイルとインストール
makeコマンド
Makefileに従ってソースコードをコンパイル、リンクするコマンド。
なおコンパイル後はsudo make install
でインストールする。
この際のinstall
はターゲットと呼ばれる。
オプション | 説明 |
---|---|
-C ディレクトリ | 指定したディレクトリに移動してから処理を実行する |
--file=ファイル | Makefileを指定する |
-j N | 同時にNのジョブを並行して実行する |
またmakeのターゲットは以下のようなものがある。
ターゲット | 説明 |
---|---|
all | コンパイルを行う(デフォルト) |
install | ソフトウェアのインストール |
uninstall | アンインストールする |
clean | コンパイル時に生成された一時ファイルを削除する |
なおインストールしたものは/usr/local/bin
や/usr/localsbin
などに配置された。
7.2. バックアップ
7.2.1. バックアップの種類
完全バックアップ(フルバックアップ)
すべてのファイルを対象としてバックアップを行うもの。 特徴は以下の通り。
- バックアップに時間がかかる
- バックアップに必要な容量も大きい
差分バックアップ
前回のフルバックアップ以後に作成/変更されたファイルのみをバックアップする。 特徴は以下の通り。
- フルバックアップより処理に時間がかからない
- バックアップ後にはフルバックアップと最新の差分バックアップが必要
増分バックアップ
前回のバックアップ(フルバックアップ/差分バックアップ/増分バックアップ)以後に作成/変更されたファイルのみをバックアップする。 特徴は以下の通り。
- 3種類で最も処理時間が短い
- 復元にはフルバックアップ/それ以降の増分バックアップが必要
7.2.2. バックアップデバイス
バックアップに利用できるデバイスには以下のようなものがある。
CD-R/RW リムーバブルハードディスク
CD-R/RWは安価で容量が小さい。 リムーバブルハードディスクは高速で大容量で高価となる。
DVD-R/RW
DVD-R/RWはCD-R/RWより大容量なディスク。 容量は4.7GB~8.54GBほど。
BD-R/RE
BD-R/REはDVD-R/RWよりも大容量なメディア。 容量は約25GB~50GBほど。
特徴は以下の通り。
- BD-Rは一度のみ書き込み/追記が可能
- BD-REは繰り返し書き換えできる
磁気テープ
大容量で低価格のメディア。 容量は規格により異なり、また定期的に取り換える必要がある。
規格 | 容量 |
---|---|
DDS4 | 40GB(圧縮時) |
SuperDLT-300 | 320GB(圧縮時) |
LTO Ultrium3 | 800GB(圧縮時) |
7.2.3. オンサイトとオフサイト
バックアップの保管場所にはオンサイトとオフサイトのバックアップがある。
- オンサイト ... バックアップ対象のシステムと同一拠点にバックアップを保管する
- オフサイト ... 別拠点にバックアップを保管する
ネットワーク経由のバックアップ
ツールではAMANDA, Balcula, BackupPC, Bareosなどでネットワーク経由でバックアップ可能。 またストレージ用のネットワーク構築にはSANが使用される。
- AMANDA ... 1台のAmandaサーバでネットワーク内の複数のクライアントをテープ/ディスクドライブにバックアップ可能
- Balcula ... 1台のBaculaサーバでネットワーク内の複数のクライアントを様々な記録メディアにバックアップ可能、CUI/GUIを使える
- BackupPC ... いくつかの標準プロトコルを利用するのでクライアント不要のバックアップツール、WebUIを使用可能
- Berous ... Baculaプロジェクトから派生したバックアップツール
7.2.3. ローカルのバックアップ
tarコマンド
tarコマンドはファイルやディレクトリを1つのアーカイブファイルにしたり、圧縮/展開するコマンド。
デフォルトで圧縮しないため、tarコマンドで圧縮を行うためには-z
オプションや、-j
オプションを指定する必要がある。
オプション | 説明 |
---|---|
-c | アーカイブの作成 |
-x | アーカイブからファイルの取り出し |
-t | アーカイブの内容の確認 |
-f ファイル名 | アーカイブファイル名の指定 |
-z | gzip による圧縮 ・ 展開 |
-j | bzip2 による圧縮 ・ 展開 |
-J | 7zip による圧縮 ・ 展開 |
-v | 詳細な情報の表示 |
-u | アーカイブ内にある同じ名前のファイルより新しいものだけを追加 |
-r | アーカイブにファイルの追加 |
-N | 指定した日付より新しいデータのみを対象とする |
-M | 複数デバイスへの分割 |
--delete | アーカイブからファイルの削除 |
使用例は以下の通り。
cpioコマンド
ファイルをアーカイブファイルにコピーしたり、アーカイブからファイルをコピーできるコマンド。
フラグ | 説明 |
---|---|
-i オプション パターン | アーカイブからファイルを抽出 |
-o オプション | アーカイブの作成 |
-p オプション ディレクトリ | ファイルを別のディレクトリにコピー |
オプション | 説明 |
---|---|
-A | 既存のアーカイブファイルに追加 |
-d | 必要な場合にディレクトリの作成 |
-r | ファイルを対話的に変更 |
-t | コピーせず、入力内容の一覧表示 |
-v | ファイル名の一覧表示 |
使用例は以下の通り。
ddコマンド
入力側に指定したファイル内容をファイルもしくは標準出力に送るコマンド。 デバイス間のディスクコピーやブートドライブの作成に利用可能。
オプション | 説明 |
---|---|
if=入力ファイル | 入力側の指定(標準は標準入力) |
of=出力ファイル | 出力側ファイルの指定(標準は標準出力) |
bs=バイト数 | 入出力のブロックサイズを指定 |
count=回数 | 回数分の入力ブロックをコピーする |
ddコマンドでは入力に以下のいずれかの特殊ファイルを指定してデータの上書きを行える。 格納されたデータを消去することが可能。
/dev/zero
... 16進数のデータ「0x00」を生成する特殊ファイル/dev/urandom
... 擬似乱数を生成する特殊ファイル
dumpコマンド
ファイルシステム単位でext2/ext3/ext4ファイルシステムをバックアップするコマンド。 バックアップからファイルを取り出すときなどに使用でき、磁気テープにバックアップを取る際に適している。
オプション | 説明 |
---|---|
0~9 | dumpレベルを指定する(0は完全バックアップ) |
u | バックアップ実装時に/etc/dumpdates を更新する |
f デバイス名 | バックアップ装置のデバイスを指定する |
dumpレベルの指定で増分バックアップが可能。
なお増分バックアップを行う際はu
オプションの指定し、バックアップの記録を/etc/dumpdates
に記録する必要がある。
磁気テープの命名規則には以下のような特徴がある。
/dev/st0
... 自動巻き戻しをする/dev/nst0
... 自動巻き戻しをしない
restoreコマンド
dumpコマンドで作成したバックアップからファイルやディレクトリを取り出すコマンド。
オプション | 説明 |
---|---|
r | すべてのファイルを取り出す |
i | 対話的にファイルを取り出す |
f デバイス名 | バックアップ装置のデバイスを指定 |
mtコマンド
テープドライブを操作するコマンド。
オペレーション | 説明 |
---|---|
status | テープの状態を表示 |
tell | テープの現在地の表示 |
rewind | テープを先頭に巻き戻す |
fsf N | テープをN個先のデータを先頭位置まで早送りにする |
compression 1 | ハードウェア圧縮を使用する |
compression 0 | ハードウェア圧縮を使用しない |
使用例は以下の通り。
7.2.4. ネットワーク経由でのバックアップ
rsyncコマンド
リモートホスト間でファイルやディレクトリをコピーできるコマンド。
オプション | 説明 |
---|---|
-v | コピー中のファイルを表示 |
-a | アーカイブモード(属性もそのままコピー) |
-r | ディレクトリ内を再帰的にコピーする |
-u | 変更/追加されたファイルのみをコピーする |
-l | シンボリックリンクをそのままコピーする |
-H | ハードリンクをそのままコピーする |
-o | 所有者をそのまま維持 |
-g | 所有グループをそのまま維持 |
-t | タイムスタンプをそのまま維持する |
-n | テスト |
-z | ファイルを圧縮する |
-delete | コピー元ファイル削除コピー先でも削除する |
使用例は以下の通り。
# ローカルホスト内でdirディレクトリを/backupディレクトリ内にコピー
rsync -auv --delete dir /backup
# ローカルホスト内でdirディレクトリ内のファイルを/backupディレクトリ内にコピー
rsync -auv --delete dir/ /backup
# host12の/backupに差分保存する例
rsync -auvz --delete -e ssh dir host12:/backup
7.3. ユーザのシステム管理情報の通知
7.3.1. ログイン前後にメッセージの送信
ログイン後と前のメッセージ
ログイン前のメッセージ表示は/etc/issue
に、ログイン後のメッセージ表示は/etc/motd
を使うことで可能。
具体的にはメンテナンス予定やサービス停止連絡/新しいソフトウェア情報などを告知する際に使用する。
システム情報の表示
ログインプロンプト表示前にシステム情報やメッセージは/etc/issue
に表示される。
記述する方法は「\r」でカーネルバージョン、「\m」でマシンアーキテクチャ、「\n」でホスト名、「\l」は端末名を表す。
7.3.2. ログイン中のユーザへのメッセージ送信
wallコマンド
wall
コマンドによるメッセージ送信はログイン中のユーザに一斉に送信できる。
shutdown -kコマンド
shutdown -k
コマンドでも指定したメッセージを伝える。
mesgコマンド
使用中のターミナルへ他のユーザがwriteコマンドやtalkコマンドでメッセージを送信できるかどうかを制御できるコマンド。
talkコマンド
指定したログイン中のユーザとチャットができるコマンド。
writeコマンド
コマンドの後に入力したメッセージを指定したユーザのターミナルに1行ずつ送信するコマンド。