Linuxサーバの状況確認に利用するコマンドメモ

IT

仕事でLinuxサーバの保守をしています。

使用頻度の高いコマンドについては、ぱっと出てきますが、時々使うため忘れやすいコマンドも中にはあります。

本記事では、Linuxサーバの保守で利用するコマンドについてまとめます。

使用頻度【高】のコマンド

ディスク使用率の確認

# df -h

基本コマンドの一つです。Linuxサーバ全体のディスク使用状況を確認できます。

ZABBIXでディスク使用率に関するアラートが上がれば、必ずこのコマンドを打ちます。

【コマンド実行例】


# df -h
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/root         29G  4.4G   23G   17% /
devtmpfs         370M     0  370M    0% /dev
tmpfs            374M     0  374M    0% /dev/shm
tmpfs            374M   40M  335M   11% /run
tmpfs            5.0M   52K  5.0M    2% /run/lock
tmpfs            374M     0  374M    0% /sys/fs/cgroup
/dev/mmcblk0p1   253M   53M  200M   21% /boot
/dev/sda1        932G  255G  678G   28% /mnt/hdd
tmpfs             75M     0   75M    0% /run/user/1000

空きメモリの確認

# free -m

サーバ全体のメモリ使用状況をMB単位で表示します。

【コマンド実行例】


# free -m
              total        used        free      shared  buff/cache   available
Mem:            747         163          45          40         539         480
Swap:            99          99           0

起動プロセスの確認

# ps alx –sort -rss

プロセス一覧を表示し、使用メモリ量(RSS)でソートするコマンドです。RSSの単位はKBです。

freeコマンドで全体のメモリ使用率を確認した後、どのプロセスのメモリ使用量が多いか確認したい場合など、プロセスの動作確認に利用します。

【コマンド実行例】


# ps alx --sort -rss
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0 11919   670  20   0  21680 17376 wait_w S    ?          0:00 python Home
5     0   273     1  20   0  13360 10564 fuse_d Ss   ?         37:46 /sbin/mount
4     0 11938   669  20   0  14184 10312 wait_w S    ?          0:00 python Home
0     0   678     1  20   0  76144  9432 poll_s Sl   ?         30:23 python3 bot
0     0   703     1  20   0  49240  9408 poll_s S    ?         31:05 python3 bot
0     0   686     1  20   0  30016  7700 poll_s S    ?         30:02 python3 bot
0     0   674     1  20   0  30008  7660 poll_s S    ?         29:57 python3 bot
(以下略)

ファイル、ディレクトリ検索コマンド

# find [検索パス] -name [ファイル、ディレクトリ名]

サーバの保守をしていると、ファイル名がわかっていてもパスまではわからない場合が多々あります。

設計書を確認すればよいのですが、findコマンドで検索したほうが早いため、時短のため使用することが多いです。

【コマンド実行例】


# find / -name iptables
/var/lib/dpkg/alternatives/iptables
/usr/sbin/iptables
/usr/share/iptables
/usr/share/bash-completion/completions/iptables
/usr/share/doc/iptables
/sbin/iptables
/etc/alternatives/iptables

使用頻度【低〜中】のコマンド

ディレクトリ内のファイル使用量確認

# du -sh [ディレクトリ]

dfコマンドでサーバ全体のディスク使用量は分かりますが、具体的にどのディレクトリのどのファイルが大きいかを確認したい場合が時々あります。

オプションを「-h」にすれば、サブディレクトリをすべて表示してくれますが、実行に時間がかかるので、「-sh」として大きいディレクトリに当たりをつけて調査するのが吉です。

【コマンド実行例】


# du -sh /var/log/*
16K	/var/log/Xorg.0.log
16K	/var/log/Xorg.0.log.old
0	/var/log/alternatives.log
4.0K	/var/log/alternatives.log.1
100K	/var/log/apt
2.1M	/var/log/auth.log
2.2M	/var/log/auth.log.1
68K	/var/log/auth.log.2.gz
64K	/var/log/auth.log.3.gz
72K	/var/log/auth.log.4.gz
344K	/var/log/boot.log
0	/var/log/bootstrap.log
0	/var/log/btmp
0	/var/log/btmp.1
336K	/var/log/daemon.log
324K	/var/log/daemon.log.1
32K	/var/log/daemon.log.2.gz
28K	/var/log/daemon.log.3.gz
28K	/var/log/daemon.log.4.gz
0	/var/log/debug
4.0K	/var/log/debug.1
4.0K	/var/log/debug.2.gz
4.0K	/var/log/debug.3.gz
4.0K	/var/log/debug.4.gz
0	/var/log/dpkg.log
16K	/var/log/dpkg.log.1
4.0K	/var/log/dpkg.log.2.gz
4.0K	/var/log/dpkg.log.3.gz
4.0K	/var/log/dpkg.log.4.gz
8.0K	/var/log/dpkg.log.5.gz
8.0K	/var/log/faillog
4.0K	/var/log/fontconfig.log
80K	/var/log/kern.log
84K	/var/log/kern.log.1
12K	/var/log/kern.log.2.gz
12K	/var/log/kern.log.3.gz
12K	/var/log/kern.log.4.gz
8.0K	/var/log/lastlog
24K	/var/log/lightdm
48K	/var/log/messages
52K	/var/log/messages.1
8.0K	/var/log/messages.2.gz
8.0K	/var/log/messages.3.gz
8.0K	/var/log/messages.4.gz
4.0K	/var/log/openvpn
4.0K	/var/log/private
264K	/var/log/samba
72K	/var/log/syslog
116K	/var/log/syslog.1
12K	/var/log/syslog.2.gz
12K	/var/log/syslog.3.gz
16K	/var/log/syslog.4.gz
12K	/var/log/syslog.5.gz
12K	/var/log/syslog.6.gz
8.0K	/var/log/syslog.7.gz
0	/var/log/user.log
4.0K	/var/log/user.log.1
4.0K	/var/log/user.log.2.gz
4.0K	/var/log/user.log.3.gz
4.0K	/var/log/user.log.4.gz
424K	/var/log/wtmp
36K	/var/log/zabbix-agent

ファイル内の文字列一括置換

# sed -i -e ‘s#[置換前文字列]#[置換後文字列]#g’ [ファイル]

設定ファイルの中の文字列を一括で変更したい場合に利用します。

使用頻度はそれほど高くないですが、時と場合によっては効果が絶大のため、筆者は好んで利用します。

「#」の部分は、置換文字列に含まれなければ何でもよく、基本的にはスラッシュが利用されますが、筆者はパスを書き換えるパターンが多いので「#」を利用することが多いです。

【コマンド実行例】


# cp -p /etc/fstab /tmp
# sed -i -e 's#defaults,##g' /tmp/fstab
# diff /etc/fstab /tmp/fstab
3c3
< PARTUUID=ea7d04d6-02  /               ext4    defaults,noatime  0       1
---
> PARTUUID=ea7d04d6-02  /               ext4    noatime  0       1
6c6
< UUID=C63C2B483C2B32BB  /mnt/hdd     ntfs-3g     defaults,umask=000              0           0
---
> UUID=C63C2B483C2B32BB  /mnt/hdd     ntfs-3g     umask=000              0           0

1日以内に更新されたファイルの検索

# find [検索パス] -mtime -1

こちらも使用頻度は低めですが、どのファイルがどのぐらいユーザに使用されているかを知りたい場合に使用します。

また、障害対応などで、ログがどこに出力されているか分からない場合でかつ、多数出力されている中で、最新のものを見つけたい場合にも利用したりします。

【コマンド実行例】


# find /var/log -mtime -1
/var/log
/var/log/syslog
/var/log/daemon.log
/var/log/wtmp
/var/log/lastlog
/var/log/kern.log
/var/log/auth.log
/var/log/messages
/var/log/syslog.1

コメント

タイトルとURLをコピーしました