読者です 読者をやめる 読者になる 読者になる

ゼロからの技術ブログ

初学者がゼロの状態から理解するまでの軌跡を書いていくブログ

サーバサイドエンジニアがよく使うコマンドまとめ

サーバサイドになった自分がよく使うコマンド自分的まとめ。
順次増加中。

top

システム全体の情報を確認できるコマンド。
主にプロセス事のメモリ仕様状況、CPU使用率を確認する。

$ top
top - 10:46:07 up 43 days, 19:38,  1 user,  load average: 4.17, 3.97, 3.84
Tasks: 421 total,   1 running, 420 sleeping,   0 stopped,   0 zombie
%Cpu(s):  9.9 us,  1.0 sy,  0.0 ni, 89.0 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 65690952 total,   416772 free, 25993760 used, 39280420 buff/cache
KiB Swap: 29241340 total, 19587856 free,  9653484 used. 39049748 avail Mem
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

ヘッダー情報

1行目

top - 10:46:07 up 43 days, 19:38,  1 user,  load average: 4.17, 3.97, 3.84


左からシステム稼働時間、ログインユーザ数、ロードアベレージ
上記はuptimeコマンドでも表示される。

$ uptime
 10:54:33 up 43 days, 19:46,  1 user,  load average: 4.25, 3.87, 3.83


ロードアベレージについては下記参照。
load averageを見てシステムの負荷を確認する - Qiita

2行目

Tasks: 421 total,   1 running, 420 sleeping,   0 stopped,   0 zombie


システムのタスク状態を確認できる。
左から全体、実行中、待機中、停止中、ゾンビプロセス
ゾンビプロセスは処理が終了したが、メモリ上に残っているタスクを表す。

3行目

%Cpu(s):  9.9 us,  1.0 sy,  0.0 ni, 89.0 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st


システムのCPU使用率を確認出来る。
それぞれの語尾の意味は下記の通り。

us:ユーザのシステム使用時間
sy:システムのシステム使用時間
ni:niceで実行優先度を変更したプロセスがユーザモードでCPUを消費した時間
id:アイドル状態の時間
wa:I/0を終了を待っている時間
hi:ハードウェアの割り込み要求での使用時間
si:ソフトウェアの割り込み要求での使用時間
st:os仮想利用時に他の仮想CPUで待たされた時間

4行目,5行目

KiB Mem : 65690952 total,   416772 free, 25993760 used, 39280420 buff/cache
KiB Swap: 29241340 total, 19587856 free,  9653484 used. 39049748 avail Mem

モリー状態、swap状態の確認ができる。
total:合計容量
free:未使用可能な領域、容量
used:使用中の領域、容量
buff/catch:バッファー/キャッシュで使用されている容量
avail Mem:利用可能な領域

ps

実行中のプロセスを確認するコマンド
ゾンビプロセスや変なプロセスが実行されていないかを確認する時に重宝してます。
またkillしたい時にPIDを調べる時に役に立ちます。

$ ps
  PID TTY           TIME CMD
 1086 ttys000    0:00.03 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server login -fp -----
 1088 ttys000    0:00.04 -bash

PID はプロセスID。処理を止めたい時はkill PIDで処理が強制終了される。
ttyについては以下参照。
qiita.com
TIMEは実行経過時間。
CMDは実行コマンドを表している。


よく使うオプション

ps -v
プロセスの他、プロセス毎の使用CPU率やメモリ消費量なども確認出来る。

$ ps -v
  PID STAT      TIME  SL  RE PAGEIN      VSZ    RSS   LIM     TSIZ  %CPU %MEM COMMAND
 1086 Ss     0:00.03   0   0      0  2480180   5276     -        0   0.0  0.1 /Applications/iTerm.app/Contents/MacOS/iTerm2 --se
 1088 S      0:00.05   0   0      0  2452852   2724     -        0   0.2  0.0 -bash

ps aux
a は全てのプロセスを表示するオプション
u はユーザ名と開始時刻を表示するオプション
x は制御端末のないプロセスの情報も表示するオプション

誰が実行したプロセスか、なんか知らんけど動き続けてるプロセスとかを確認する時に使うコマンド。
また、一度実行したプロセスを止めたい!誰か違うユーザが実行したプロセスを止めたい時に使うオプション。

$ ps aux
USER               PID  %CPU %MEM      VSZ    RSS   TT  STAT STARTED      TIME COMMAND
morototo           889   2.9  0.5  2739372  41696   ??  S    12:01AM   0:03.55 /Applications/iTerm.app/Contents/MacOS/iTerm2 -ps
morototo          1081   0.6  3.8  3844528 321180   ??  S    12:02AM   0:58.47 /Applications/Google 
morototo          1088   0.0  0.0  2452852   2724 s000  S    12:03AM   0:00.05 -bash

ちなみにプロセスのメモリを消費している順に並べて表示するのは

$ ps aux | sort -r -k4 | head -n10

のようです。

free

現在のメモリーの使用状況を確認するコマンド
Swapってなんぞ?という方は下のリンクへ。
itpro.nikkeibp.co.jp


$ free
              total        used        free      shared  buff/cache   available
Mem:       65690952    23505088      329168        5732    41856696    41568316
Swap:      29241340    12615068    16626272

total:実メモリの全容量
used:実メモリの使用容量
free:実メモリの空き容量
shared:共有メモリ容量
buff/cache:バッファ、キャッシュに割り当てられたメモリ容量
available:Swapを発生させずにメモリを割り当てられるメモリ量の推定

available は最近追加されたみたいなので、詳しい説明は以下記事参照。
nopipi.hatenablog.com

よく使うオプション

free -h
メモリの単位を表示してくれるので、見やすくなります。

$ free -h
              total        used        free      shared  buff/cache   available
Mem:            62G         22G        352M        4.9M         40G         39G
Swap:           27G         12G         15G

free -mt
スワップ領域との合計を出してくれる。

$ free -mt
              total        used        free      shared  buff/cache   available
Mem:          64151       22791         266           4       41093       40769
Swap:         28555       12445       16110
Total:        92707       35236       16377


ifconfig

IPアドレスを確認する時のコマンド

$ ifconfig
eth0      Link encap:Ethernet  HWaddr 06:C0:22:13:10:E1  
          inet addr:10.0.0.139  Bcast:10.0.0.255  Mask:255.255.255.0
          inet6 addr: fe80::4c0:22ff:fe13:10e1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:9001  Metric:1
          RX packets:2791607 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2120684 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:815077258 (777.3 MiB)  TX bytes:2481642503 (2.3 GiB)
 
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:440014 errors:0 dropped:0 overruns:0 frame:0
          TX packets:440014 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:29321505 (27.9 MiB)  TX bytes:29321505 (27.9 MiB)

このままだと見にくいので、grepで検索してあげると楽に抽出出来ます。
5行目にあるIPが使用中のIPになります。

$ ifconifg | grep inet
	inet 127.0.0.1 netmask 0xff000000
	inet6 ::1 prefixlen 128
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
	inet6 fe80::18fe:42a5:7e35:e41%en0 prefixlen 64 secured scopeid 0x4
	inet xxx.xxx.xxx.xxx netmask 0xffffff00 broadcast xxx.xxx.xxx.xxx
	inet6 2400:2410:2760:3900:1837:3db:a8fa:fb4 prefixlen 64 autoconf secured
	inet6 2400:2410:2760:3900:55f:4a6a:58df:32ec prefixlen 64 autoconf temporary
	inet6 fe80::84ea:cdff:fe88:d20b%awdl0 prefixlen 64 scopeid 0x7
	inet xxx.xxx.xxx.xxx netmask 0xffffff00 broadcast xxx.xxx.xxx.xxx
	inet6 fe80::ddf3:ab26:3cdb:dc1%utun1 prefixlen 64 scopeid 0xb
	inet6 fe80::f795:b249:836f:9058%utun0 prefixlen 64 scopeid 0x9


df

ディスクの空き容量を調べるときに使うコマンド。

$ df
/dev/mapper/VolGroup-lv_root
                      12941636   1851304  10432924  16% /
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                   510348         0    510348   0% /dev/shm
/dev/sda1               495844     70443    399801  15% /boot
/vagrant             488383484 421285716  67097768  87% /vagrant

1K-blocks :全容量
Used:使用容量
Avaiable:使用可能容量
Use%:使用率
Mounted on はどこのファイルにマウントしているのかを表示しています。

よく使うオプション

df -i
iノードの使用率が表示されます。
iノードとは実データのファイルに属する小さなファイルの事を指します。
ファイル容量は全然空いてるのに書き込めない!といった時にはこのinodeのファイルも確認して見ましょう。

$ df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/mapper/VolGroup-lv_root
                      822544   72999  749545    9% /
tmpfs                 127587       1  127586    1% /dev/shm
/dev/sda1             128016      44  127972    1% /boot
/vagrant                1000       0    1000    0% /vagrant

du

特定のディレクトリの中のファイル容量を確認するコマンド。
そのまま打ち込むとずらずらと出てしまうので、grepとかsortで表示してあげると見やすくなります。
それでも多い場合はheadかtailで抽出してあげると便利です。

$ du /var/* | -n 50 head 
43788   /var/cache
42600   /var/lib
2060    /var/log
104     /var/run
44      /var/spool

左の数値が容量(Kb単位)です。

順次更新中