webエンジニアがトラブル対応時にサーバ管理で使うコマンド

今日id:akio0911さんと話す時、uptimeを話してたのがきっかけで作ってみました。

とりあえず覚えておきたいサーバ管理とかトラブル対応時によく使うコマンドのリスト。
それぞれのコマンドの細かい意味はman参照。
コマンドの存在を知らないとヘルプすら参照できないので、
コマンドの存在を知ってもらうのが中心の目的です。

  1. 状況確認系
    1. top
      1. タスクの動きをリアルタイムで確認する。
      2. 重いプロセス把握
      3. uptimeとかfreeと同じ情報も把握できるので、最悪これだけ覚えてれば
    2. uptime
      1. 現在の時刻、システムが稼働し続けている期間、現在ログインしているユーザーの数、過去 1, 5, 15 分のシステムの平均負荷を表示。
      2. CPU使用率をチェックするのに使う。
      3. サーバが重いとか言われるとコレでcpu使用率チェック
    3. free
      1. メモリの使用領域と空き領域をチェック
      2. 重い時はcpuかメモリですよね。
    4. df
      1. マウントされてるボリュームのファイル容量をチェック
      2. 上の意味が分かんない人向けの解説→HDDの空き容量チェック
      3. df -h で容量を見やすく出してくれる。
  2. 負荷の高いプロセスの停止/起動時に使うコマンド
    1. ps
      1. プロセスをみる。
      2. ps -ef か ps auxで使う。
      3. 動いてるプロセスのCPU使用率とかメモリ消費量とか。pidとか確認
    2. kill
      1. プロセスを殺す(停止)。
      2. kill pid で殺す(停止)。
      3. kill -signal pid
      4. 止まらない時はkill -9 pid
    3. /etc/init.d/XXXX restart
      1. プログラムを停止/開始
      2. /etc/init.d/apache2 stop や /etc/init.d/apache2 restart でアパッチ停止/再起動とか*1
      3. /etc/init.d/mysqldだったり、サービス毎にあります。
      4. 無い場合はPG毎に探す。
    4. which command
      1. コマンドの場所を確認。
      2. which ls で lsの配置場所がかえってきます。
      3. パス通ってないと意味が無いけど、知らない環境で探すのに便利ですよ。
  3. エラーログチェック用PGチェック用
    1. tail
      1. ファイルの末尾を表示する。
      2. tail -100 logfaile で、ログファイルの最後100行を表示
    2. grep
      1. ファイルの正規表現にマッチしたデータを表示
      2. grep error logfile で、logfileに存在するerrorの行を表示できる。
      3. grep -R link_to app とかで、appフォルダ配下のファイル全部の中で、link_toと書いてある部分を検索する。

*1:apacheは/etc/init.d/httpd だった>りする事も