ソフトウェアデザイン2011年5月号
Software Design (ソフトウェア デザイン) 2011年 05月号 [雑誌]
- 出版社/メーカー: 技術評論社
- 発売日: 2011/04/18
- メディア: 雑誌
- 購入: 5人 クリック: 232回
- この商品を含むブログ (8件) を見る
表紙にでかでかと「Vim&Emacs ちゃんと使えてますか?」とあったので、ちょうどちゃんとVim(かEmacsか)を使えるようになりたいと思って購入。
が、特集では個々のエディタの紹介に入る前に
- 第1章 エディタの基礎
- 第2章 テキストファイルの扱い方
- 第3章 サーバ管理で役立つエディタ実践
と、予想に反していた。
のだが、新人さん必読とコピーがあるけど、新人でなくてもWinな環境ばかりの人がサーバ側での作業をするときにも役立つ情報が満載でとてもよかった。
情報の探し方
調べて答えを見つけられる確率は、概念そのものを知っているか知らないか、あるいは、やろうと思えばできるかどうかを知っているかで変わります。探せば見つかると確信している検索とそうでない検索では当たる可能性に大きな差があるからです。
コマンド名はわかっていても使い方がうろ覚えの場合
- -hオプションまたは--helpオプション
- manコマンド
- infoコマンド(GNU系ツール)
で調べる。
コマンド履歴
historyコマンド
過去に実行したコマンドを参照できる。
コマンド履歴ファイルに残ってしまうのでシェルでパスワードを入力しない。
ファイルフォーマット判定
fileコマンド
対象ファイルがテキストファイルかどうかを確認
ディレクトリ構造
ディレクトリ名 | 読み方 | 説明 |
---|---|---|
/etc | えとせ | 各種設定ファイルがある |
/var | ゔぁー | /var/logにログファイルがある |
/proc | ぷろっく | プロセス情報を確認できる |
/sbin | えすびん | 緊急時に使うコマンドがある(/usr/sbinも要確認) |
/root | るーと | rootユーザの設定ファイルがある(/homeや/home/rootのシステムもあるので/etc/passwdを確認) |
ファイル検索
findコマンド
対象 | オプション例 |
---|---|
ファイル名 | -name |
ファイルパス名 | -path |
ファイルの日付 | -mtime |
ファイル所有者 | -uid |
ファイルサイズ | -size |
ファイルタイプ | -type |
ファイルの権限 | -perm |
inode番号 | -inum |
ハードリンク数 | -links |
procファイルシステム
プロセスの情報を取得できる
$ ls -l /proc/${pid}/fd $ ls -l /proc/${pid}/cwd $ cat /proc/${pid}/maps $ cat /proc/${pid}/cmdline
サーバ管理
なるべく最悪の事態を想定しておくほうがさまざまな場面に対応できます。
サーバ管理者にできることは、適切なリスク管理をしておくことと、非常事態にも落ち着いて作業できる心構えと武器を持っておくことです。サーバ管理者にとっての武器は知識と経験です。
設定ファイル
前提となる最初の心構えは一度に複数の問題を相手にしないことです。
ファイル検索
psコマンドで確認して、動いているプロセスから設定ファイルを探す
- /proc/${pid}/cmdlineファイル
- 起動時のコマンドラインオプションがわかる
- /proc/${pid}/mapsファイル
- 実行ファイルの確実なパスがわかる
- /proc/${pid}/cwdファイル
- リンク先のファイルを ls -l で確認すると実行ファイルのワーキングディレクトリがわかる
- /proc/${pid}/environ
- 環境変数がわかる
- /proc/${pid}/fdディレクトリ以下のファイル
- プロセスがオープン中のファイル。リンク先を ls -l で確認するとファイルパスがわかる
バックアップファイル
設定ファイルを書き換えるときの鉄則の1つは、動いているときの設定ファイルを残しておくことです。
ログファイル
該当のプロセスかsyslogdの/proc/${pid}/fd を確認。UNIX系OSのサーバログは/var/log ディレクトリ以下にだいたいある。
最近更新されたファイル名が最後に来る
$ ls -lrt
ある作業でファイルに更新がかかるはずだがどのファイルに起きるか確信がないときの確認
$ touch /tmp/dummy $ cd 作業ディレクトリ …何かしらの作業(で何かしらのファイルのタイムスタンプが更新される。はず) $ find . -newer /tmp/dummy
ログファイルを確認
$ tail -f ログファイル
- [control]+s
- スクロール停止
- [control]+q
- スクロール停止を解除
作業の記録
teeコマンド
コマンドの出力結果を画面で確認しながら、かつ同時にファイルに残しておく
$ コマンド | tee 出力ファイル $ コマンド | tee -a 出力ファイル(追記)
scriptコマンド
作業記録を完全に残す
$ script 出力ファイル名 ここからexitで抜けるまでscriptセクション $ コマンド 出力 $ コマンド 出力 $ exit
個々のエディタの使い方以前に、こういうサーバ管理(までではないけれど)する上で最低限必要な情報の紹介などはよかった。