仕事で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
コメント