運用で使うUNIXコマンド(備忘録的なもの)


更新履歴

  • 2014/11/29
    @heliac2000さんのご指摘を反映しました。
    また思い出したコマンドを追記。今後も不定期に追記していくかもしれません。タイトルも変えました。ほぼ単発のコマンドということに気づいたので。

  • 2014/12/28
    @tukiyo3さんのご指摘を反映しました。

ユーザが所有するファイルを一覧表示する

find / -user ユーザID -ls

用途
ユーザを削除する前に影響を受けるファイルがないか確認する、など。

更新されたファイルを一覧表示する

find / -mtime -日数 -ls
<日数>日前から現在までに更新されたファイル

用途
サーバに導入した定義の洗い出し、リリース後だとログファイルの洗い出しなど。

ディレクトリのディスク使用量を一覧表示する

du -sh .[^.]* *

用途
容量を食っているディレクトリの特定。

直前のディレクトリに戻る

cd -

用途
2つのディレクトリ間を行ったり来たりするときに。サーバ作業ではよく使う。

まだ存在していないログファイルをtail

GNU_tail
tail -F tmp.log 2>/dev/null
それ以外のtail
until tail -f tmp.log 2>/dev/null; do sleep 10; done

用途
あまり無いかもしれないが、システムや新機能をリリースした直後の稼働監視など。

端末のスクリーンをクリア

clear

用途
TeraTermなどの端末画面をきれいにしたい場合に使用。端末作業の証跡を取る前に実行したりする。TeraTermなどの端末ソフト側でも大抵行えるけど、コマンドで実行すると楽。

端末サイズをウインドウサイズに合わせる

resize

用途
Linuxでは気にする必要はないが、AIXなどはデフォルトの端末設定でうっかりTeraTermのサイズを変更してしまうと端末サイズとウインドウサイズが合わなくなり、スクリーンの表示がめちゃめちゃになってしまう(特にviやsmittyなどの表示がひどいことに)。
resizeはそれを同期してくれるコマンド。具体的にはTERMCAPと端末の設定をウインドウサイズに合わせてくれる。

障害メッセージが出ていないかを確認する

grep -v info /var/adm/messages

※/var/adm/messages:システムログ。OSやログの設定により出力先が異なる。

用途
Informationレベル以外のメッセージが出力していないかを確認する。サーバの挙動がおかしいぞ、となったら何はともあれこれを打つと良い。
ただし、これで全てのエラーメッセージが捕捉できるわけではないため注意すること。OSによってはメッセージをシスログ以外に吐いていることも。

・AIX :errpt -a
・HP-UX:/var/opt/sfm/log/sfm.log

また、メッセージ内容からの特定が難しい事象の場合、事象発生付近のメッセージ群と通常時のメッセージ群を突き合わせて差異を見つけるといったことを行うこともあるので、調査資料として採取する場合はシステムログは丸ごと回収するのが良い。

ちなみに、シスログは運用によっては馬鹿でかいサイズになることも少なくない。サイズが数百MB〜GBクラスの場合に単純に上記コマンドを実行すると標準出力の嵐となることもあるため、コマンドの実行前には、ファイルサイズをよく見て実行方法を工夫する必要がある。
例えば、サイズが大きい場合は、 tail -n 1000 messages | grep -v infogrep 日時 messages | grep -v info などのように打つと良い。