僕が思うLinuxの良いところについてお話したいと思います
記事を御覧頂き有難うございます。
僕が思うLinuxの良いところについてお話したいと思います。
※本記事はRHEL/CentOS寄りの記事となります。
僕は今までLinuxを業務で触った経験が5年程あります。
その経験を踏まえて話をしていければと思います。
僕の経験につきましては、下記noteをご覧頂ければと思います。
本記事はこのような人を対象としています。
・業務でWindowsServer寄りの仕事をしている方
・運用保守などIT業界の仕事をしている方
では、話していきたいと思います。
マウス操作が不要
CUI操作のため基本的にマウス操作が不要です。
※デスクトップ(GNOMEパッケージ)などを使用する場合は別です
例えば、ディレクトリ移動は下記コマンドで済みます。
cd /var/log
Windowsに触り慣れていてマウス操作に慣れている場合は、最初は苦労するかもしれません。
しかし、慣れるとLinuxの方が楽に感じてくると思います。
リソース確認が簡単
リソース確認が簡単だと感じます。
リソース確認とは、ディスク容量/メモリ容量/負荷状況の確認などのことを指します。
コマンド実行例を上げます。
・ディスク容量確認
ディスクの容量確認はこちらのコマンドを使用します。
df -Ph
オプション解説(ここで使用したもののみ)
-P: POSIX出力形式(サイズではなくブロックで表示)
-h:サイズに応じて読みやすい単位で表示する
詳しくは下記サイトをご覧ください。
実行結果は下記になります。
[apple@testcent01 /]$ df -Ph
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs 1.8G 8.5M 1.8G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/sda1 50G 2.0G 49G 4% /
tmpfs 354M 0 354M 0% /run/user/0
tmpfs 354M 0 354M 0% /run/user/547512283
[apple@testcent01 /]$
「/」を例にあげると、全体で「49GB」容量があり、その中の2%(2.0GB)のみ使用されているという意味となります。
Windowsであげるとここの画面をコマンド一発で確認する形となります。
・メモリ確認
メモリ確認の場合はこちらのコマンドを利用します。
free -m
オプション説明
-m: メモリの量をMB単位で表示する
詳しくはこちらのサイトを参照
コマンド実行結果は下記となります。
[apple@testcent01 /]$ free -m
total used free shared buff/cache available
Mem: 3537 214 3152 8 170 3117
Swap: 0 0 0
[apple@testcent01 /]$
「total」:全体のメモリ容量
「used」:使用済みのメモリ容量
「free」:空きメモリ容量
Windowsであげるとこの部分かと思われます。
・負荷確認
こちらのコマンドにて確認できます。
top
実行結果はこちらとなります。
[apple@testcent01 /]$ top
top - 08:58:24 up 1:21, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 89 total, 3 running, 86 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3622468 total, 3226080 free, 221168 used, 175220 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 3191120 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
530 root 20 0 358748 29472 7040 S 0.0 0.8 0:00.66 firewalld
2002 root 30 10 351496 21752 7472 S 0.0 0.6 0:00.14 yum-cron
950 root 20 0 574200 19316 6028 S 0.0 0.5 0:00.87 tuned
405 polkitd 20 0 701196 15836 7196 S 0.0 0.4 0:00.08 polkitd
1060 root 20 0 372384 15816 6440 S 0.0 0.4 0:00.56 google_acco+
953 root 20 0 116824 14532 6184 S 0.0 0.4 0:00.41 google_osco+
1051 root 20 0 214792 12748 4044 S 0.0 0.4 0:00.32 google_netw+
1052 root 20 0 214772 12676 4036 S 0.0 0.3 0:00.22 google_cloc+
952 root 20 0 218548 9576 2724 S 0.0 0.3 0:00.42 rsyslogd
559 root 20 0 547936 8644 6652 S 0.0 0.2 0:00.23 NetworkMana+
1 root 20 0 128004 8596 4152 S 0.0 0.2 0:01.73 systemd
2005 root 20 0 288732 8468 6632 S 0.0 0.2 0:00.23 sshd
2214 root 20 0 290880 6464 4988 S 0.0 0.2 0:00.01 sudo
2282 root 20 0 289868 6324 4864 S 0.0 0.2 0:00.01 su
443 dbus 20 0 164500 6164 4600 S 0.0 0.2 0:00.17 dbus-daemon
2030 aiou_kk+ 20 0 229836 5924 4596 S 0.0 0.2 0:00.04 bash
2895 apple 20 0 255664 5568 4148 R 0.0 0.2 0:00.03 top
[apple@testcent01 /]$
実行結果が多く表示されます。
しかし、これらのことを確認できます。
サーバの起動時間
ログインユーザー数
CPU負荷
メモリ使用状況
実行中プロセス
「top」というコマンドのみでこのように多くの情報を知ることができます。
詳しくはこちらのサイトをご覧ください。(オプションなどが記載されています)
Windowsで例えるとこちらの2つの画面の総称といった形になります。
このようにコマンド一つでサーバ情報が確認できます。
ログ確認がしやすい
ログ確認がしやすいと感じます。
システムログを確認する際は、こちらのコマンドを叩くのみです。
cat /var/log/message
こちらだと確認したいログ以外も表示されるため、業務でよく実行するコマンドは下記となります。
・ログ監視
ログの出力状況を監視します。
tail -f /var/log/messages
実行例)
[root@testcent01 ~]# tail -f /var/log/messages
Feb 24 08:56:24 testcent01 NetworkManager[559]: <info> [1582534584.7225] dhcp (eth0): domain search 'google.internal.'
Feb 24 08:56:24 testcent01 NetworkManager[559]: <info> [1582534584.7225] dhcp4 (eth0): state changed bound -> bound
Feb 24 08:56:24 testcent01 dbus[443]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Feb 24 08:56:24 testcent01 systemd: Starting Network Manager Script Dispatcher Service...
Feb 24 08:56:24 testcent01 dhclient[711]: bound to 10.19.140.4 -- renewal in 1412 seconds.
Feb 24 08:56:24 testcent01 dbus[443]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Feb 24 08:56:24 testcent01 systemd: Started Network Manager Script Dispatcher Service.
Feb 24 08:56:24 testcent01 nm-dispatcher: req:1 'dhcp4-change' [eth0]: new request (3 scripts)
Feb 24 08:56:24 testcent01 nm-dispatcher: req:1 'dhcp4-change' [eth0]: start running ordered scripts...
Feb 24 09:01:02 testcent01 systemd: Started Session 4 of user root.
・エラーログ確認
エラーログをピンポイントで確認する際に実行します。
(「error」という文字がある行のみ抽出)
cat /var/log/messages | grep "error"
もしくは
grep "error" /var/log/messages
※エラーログ確認パターンは多いので、一つの例となります。
実行例)
[root@testcent01 ~]# cat /var/log/messages | grep "error"
Feb 24 04:03:24 testcent01 systemd-vconsole-setup: /usr/bin/setfont failed with error code 71.
Feb 24 04:03:25 testcent01 systemd-vconsole-setup: /usr/bin/setfont failed with error code 71.
Feb 24 04:03:33 testcent01 systemd-vconsole-setup: /usr/bin/setfont failed with error code 71.
Feb 24 04:03:57 testcent01 oslogin_cache_refresh[2531]: Unknown error while retrieving group entry.
Feb 24 04:05:00 testcent01 oslogin_cache_refresh[2652]: Unknown error while retrieving group entry.
Feb 24 04:06:02 testcent01 oslogin_cache_refresh[2780]: Unknown error while retrieving group entry.
このようにログの確認も素早く実施することができます。
Windowsで例えるとイベントビューアーの画面かと思います。
誤操作が少ない
例えばこのようなミスが起こりづらいです。
「間違ってサーバをシャットダウンしてしまった!」
「手が滑って関係のないシェルを実行してしまった!」
Windowsの運用業務をしているとこのような出来事があり得ます。
Linuxの場合は全てコマンド操作のため、「手が滑る」ということはおきづらいです。
例えば、シャットダウン/再起動を実行する場合にコマンドはこちらです。
◯シャットダウン
shutdown -h now
◯再起動
reboot
このようなクリティカルなコマンドを二人でダブルチェック後に実行ということができます。
「手が滑って違うボタンをクリックしてしまった」
ということは少ないです。
まとめ
・リソース状況などサーバ内の知りたい情報をコマンド一つで確認できる
・ログ確認がしやすい
・Windowsのような「手が滑る」ということが起きづらい
ここまで読んで頂き有難うございます。
Twitterもやっておりますので、よろしければご覧ください。
※インフラエンジニア寄りのことを呟いております。