システムの保守と運用管理
git clone URL:ソフトウェアのDL
git tag:タグ一覧の表示
git checkout ファイル:ファイルの復元
gzipの解凍:gunzip or gzip -d
bzipの解凍:buzip2 or bzip2 -d
xzの解凍 :unxz or xz -d
make [オプション][ターゲット]
ソースコードのコンパイル、リンク
| オプション | 説明 |
|---|---|
| -C ディレクトリ | 指定したdirに移動してから処理を開始 |
| --file=ファイル | makefileを指定する |
| -j N | 同時にNのジョブを並行して実行する |
patch[オプション]<パッチファイル
既存のソースコードをバージョンアップ
tar オプション[ファイル名]:アーカイブ
dd[オプション]
ブロックデバイス単位のBUに適している
| オプション | 説明 |
|---|---|
| if=入力ファイル | 入力側ファイルを指定(デフォは標準入力) |
| of=出力ファイル | 出力側ファイルを指定(デフォは標準出力) |
| bs=バイト数 | 入出力のブロックサイズを指定 |
| count=回数 | 回数分の入力ブロックをコピーする |
dump オプション BU対象
磁気テープにBUする用途に適している
| オプション | 説明 |
|---|---|
| 0~9 | dumpレベルを指定 |
| u | BU時に/var/lib/dumpdatesファイルを更新 |
| f デバイス名 | BU装置のデバイスを指定 |
resotre[オプション][ファイル名]
dumpで作成したBUのリストア
mt [-f デバイス]オペレーション
テープドライブの操作
| オペレーション | 説明 |
|---|---|
| status | テープの状態を表示 |
| tell | テープの現在位置を表示 |
| rewind | テープを先頭に巻き戻す |
| fsf N | テープをNまでデータの先頭位置まで早送り |
| compression 1 | ハードウェア圧縮を使用する |
| compression 0 | ハードウェア圧縮を使用しない |
rsync:NW経由でのBU
/etc/issue:ログイン前のメッセージ表示
/etc/motd:ログイン後のメッセージ表示
wall メッセージ:ログイン中のユーザに一斉メッセージ送信
shutdown -k now メッセージ:-kでシャットダウンせずメッセのみ
top [オプション]
| オプション | 説明 |
|---|---|
| -b | 対話モードでなくバッチモードで実行 |
| -d 秒 | 表示を更新する間隔を指定 |
| -n 回 | 指定した回数だけ更新すると自動的に終了 |
| -u ユーザ | 指定したUID(ユーザ名)のプロセスのみ監視 |
| -p PID | 指定したPIDのプロセスのみ監視 |
| キー操作 | 説明 |
|---|---|
| f | 表示項目を変更 |
| o | 表示項目の順を変更 |
| l | 平均負荷を表示・非表示 |
| m | メモリ、スワップ欄を表示・グラフ表示・非表示 |
| u | 指定ユーザのプロセスのみ表示 |
| t | プロセスとCPU状態を表示・非表示 |
| P | プロセスをCPU使用率順にソート |
| M | プロセスをメモリ使用順にソート |
| N | プロセスをPID順に表示 |
| T | プロセスを起動時間順に表示 |
| W | 現在の設定を保存 |
| k | プロセスにシグナルを送信 |
| h,? | ヘルプを表示 |
| q | 終了 |
| A | 表示モードを切り替える |
| d,s | 更新間隔を変更 |
| <,> | ソートする項目を変更 |
vmstat[表示間隔(秒)][回数]
メモリや仮想メモリの詳細な状態を継続的に監視
iostat[オプション][表示間隔(秒)][回数]
CPUの使用状況とストレージの入出力に関する情報を継続的に監視
| オプション | 説明 |
|---|---|
| -c | CPUの使用率のみ出力 |
| -d | ディスクi/oのみ出力 |
| -k | KB単位で出力 |
| -t | 時間を表示 |
iotop:i/o情報をtopコマンドのように出力
sar オプション[-s開始時刻][-e終了時刻][-fログファイル名][表示間隔(秒)][回数]]
様々なシステムの統計情報を取得
| オプション | 説明 |
|---|---|
| -A | 全ての項目を表示 |
| -b | ディスクの入出力と転送レート情報を表示 |
| -c | プロセスの生成回数を表示 |
| -f ファイル | ログファイルを指定 |
| -n DEV | NW関連の情報を表示 |
| -n EDEV | NW関連のエラー情報を表示 |
| -r | メモリとスワップ関連の情報を表示 |
| -u | CPU関連の情報を表示(iostatのCPU列と同じ) |
| -P id/ALL | CPUごとの情報を表示 |
| -R | メモリの統計情報を表示 |
| -W | スワップの情報を表示 |
w [オプション][ユーザ名]
現在ログインしているユーザと各ユーザのプロセス情報を表示
| オプション | 説明 |
|---|---|
| -h | ヘッダを表示しない |
| -s | ログイン時刻、JCPU、PCPUを表示しない |
ps[オプション]
プロセス単位でより詳細な情報を確認
| オプション | 説明 |
|---|---|
| a | 端末上の全てのプロセスを表示 |
| e | 環境変数も表示 |
| x | 制御端末のないプロセスも表示 |
| u | 実行ユーザ名なども表示 |
| r | 実行ちゅのプロセスのみ表示 |
| l | 長いフォーマットで表示 |
| U ユーザ名 | ユーザ名で選択 |
| -C コマンド名 | コマンド名で選択 |
| -e | 全てのプロセスを表示 |
| -f | 引数等も含めた完全なフォーマットで表示 |
| -l | ロング形式で表示 |
| -p PID | PIDで選択 |
| -t tty | 端末名で選択 |
| -u UID | ユーザIDで選択 |
lsof[オプション][ファイル名]
開いてるファイルやポートの確認、引数なしは開いてるもの全て表示
| オプション | 説明 |
|---|---|
| -c コマンド | 指定コマンドが開いてるファイルを表示 |
| -i[:port] | 指定ポートが開いてるプロセスを表示 |
| -p PID | 指定PIDのプロセスが開いてるファイルを表示 |
| -u ユーザ名 | 指定ユーザが開いてるファイルを表示 |
free[オプション]
メモリの使用量の測定
| オプション | 説明 |
|---|---|
| -b,--bytes | バイト単位で表示 |
| -k,--kilo | キロバイト単位で表示 |
| -m,--mega | メガバイト単位で表示 |
| -h,--human | 読みやすい単位で表示 |
| --si | SI単位系で表示(1024でなく1000単位) |
| -t--total | 物理メモリとスワップメモリの合計も表示 |
| -s秒,--seconds秒 | 繰り返し実行する間隔 |
df[オプション][ディレクトリ]
ディスクの使用量や割合の確認
| オプション | 説明 |
|---|---|
| -a,--all | 全てのファイルシステムを表示 |
| -h,--buman-readable | 読みやすい単位で表示 |
| -H,--si | SI単位系で表示(1MB=1000kb) |
| -i,--inodes | ディスク容量でなくiノードの使用状況を表示 |
| -l,--local | ローカルファイルシステムのみ表示 |
| -T,--print-type | ファイルシステムタイプを表示 |
netperf:クライアントからサーバに接続
netserver:netperfによるサーバ側で接続を待つ
iptraf:NWIFのトラフィックをモニターする
collecd:システムの各種情報を定期的に収集する軽量なデーモン
Nagios:オープンソースのシステム監視やNW監視を行うアプリケーション
MRTG:NW機器のトラフィック量をグラフ化するプログラム
Cati:MRTGの代替 SNMPにも対応
lcinga:Nagiosからフォークした統合監視ツール
Zabbix:サーバ、NW、サービスなどを監視するオープンソースの統合監視ソフトウェア
Ansible
オープンソースで開発されてるシステム構成ツール
YAML形式で記述され設定ファイルは「インベントリ」「Playbook」から構成
・インベントリ:ターゲットノードのリスト
・Playbook:ターゲットノードで実施するシステム構成処理
ansible-plybook -iインベントリファイルかホスト playbookファイル
platbookの処理を実行する
仮想化サーバー
仮想化構築の大まかな手順
①KVMと関連ツールおよびQEMUをインストール
livvirtdサービスを起動→仮想マシンの制御を抽象化するライブラリ
QEMU→ハードウェアエミュレータ
②ブリッジネットワークを設定
仮想マシンのNWIFをホストOSのNWIFと同じNW上に配置する仕組み
→外部のホストから仮想マシンにNW接続ができる
③仮想マシンを作成
仮想マシンのイメージ作成は下記2パターン
CUIでvirt-installコマンドを使用する
GUIでvirt-managerを使用する→仮想マシンのインスト、起動・停止・終了が可能
virsh[オプション]サブコマンド[引数]
仮想マシンとハイパーバイザの管理コマンド
コンテナ
コンテナの隔離に使用されるのが名前空間の機能
| 名前空間の種別 | 隔離するリソース |
|---|---|
| マウント名前空間 | ファイルシステムのマウント |
| UTS名前空間 | ホスト名やドメイン名 |
| IPC名前空間 | IPCオブジェクトやメッセージキュー |
| PID名前空間 | プロセスID |
| ネットワーク名前空間 | 各種ネットワークリソース |
| ユーザ名前空間 | UIDとGID |
unshare:新しい名前空間を作成してプロセスを実行
cgroup:プロセスをグループ化して管理する仕組み
Dockerイメージ:コンテナの雛形
Dockerレジストリ:Dockerイメージを管理するサイト
Dockerエンジン:コンテナ化する仕組み
DockerFile:既存のDockerイメージに手を加え新しくイメージを作成
docker pull リポジトリ名[:タグ名]
DockerレジストリからコンテナイメージをDL
docker create[--nameコンテナ名]リポジトリ名[:タグ名]
Dockerイメージからコンテナを生成
docker start コンテナ名かコンテナID
コンテナの起動
docker ps[-a]
動作中のコンテナの表示
docker run リポジトリ名[:タグ名]コマンド
コンテナイメージの取得、コンテナの生成、起動の一連の動作
docker rm コンテナID
コンテナの削除
docker run -it --name コンテナ名 イメージ名[:タグ名]シェル
コンテナ内にログインしてコマンド実行
docker attach コンテナ名かコンテナID
抜けたコンテナに再接続
docker exec コンテナ名 コマンド
コンテナにで指定したコマンドを実行
docker network create 仮想ネットワーク名
新しく仮想ネットワークを作成
connectで接続する
docker commit コンテナID イメージ名[:タグ名]
コンテナからDockerイメージを作成
docker rmi イメージ名かコンテナID
Dockerイメージの削除
docker build -t リポジトリ名:タグ名Dockerファイルのあるディレクトリ
DockerファイルからDockerイメージを作成
docker import ファイル名またはURL[リポジトリ名[:タグ名]]
圧縮アーカイブを取得してDockerイメージを作成
docker pause コンテナ:コンテナにのすべてのプロセスを一時停止
docker unpause コンテナ:再開する
docker stop コンテナ:コンテナを停止、終了
docker kill[-sシグナル]コンテナ:KILLシグナルを送信して終了
docker push:レジストリへの登録