スクリーンショット_2020-02-24_17

僕が思う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であげるとここの画面をコマンド一発で確認する形となります。

スクリーンショット 2020-02-24 17.50.30

・メモリ確認

メモリ確認の場合はこちらのコマンドを利用します。

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であげるとこの部分かと思われます。

スクリーンショット 2020-02-24 17.57.18

・負荷確認

こちらのコマンドにて確認できます。

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つの画面の総称といった形になります。

スクリーンショット 2020-02-24 18.06.24

スクリーンショット 2020-02-24 18.06.38


このようにコマンド一つでサーバ情報が確認できます。

ログ確認がしやすい

ログ確認がしやすいと感じます。

システムログを確認する際は、こちらのコマンドを叩くのみです。

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で例えるとイベントビューアーの画面かと思います。

スクリーンショット 2020-02-24 18.19.45

誤操作が少ない

例えばこのようなミスが起こりづらいです。

「間違ってサーバをシャットダウンしてしまった!」
「手が滑って関係のないシェルを実行してしまった!」

Windowsの運用業務をしているとこのような出来事があり得ます。

Linuxの場合は全てコマンド操作のため、「手が滑る」ということはおきづらいです。

例えば、シャットダウン/再起動を実行する場合にコマンドはこちらです。

◯シャットダウン
shutdown -h now

◯再起動
reboot

このようなクリティカルなコマンドを二人でダブルチェック後に実行ということができます。

「手が滑って違うボタンをクリックしてしまった」

ということは少ないです。

まとめ

・リソース状況などサーバ内の知りたい情報をコマンド一つで確認できる
・ログ確認がしやすい
・Windowsのような「手が滑る」ということが起きづらい


ここまで読んで頂き有難うございます。
Twitterもやっておりますので、よろしければご覧ください。
※インフラエンジニア寄りのことを呟いております。





よろしければサポートお願いします! あなたにとっていい記事を一つでもかけるように日々勉強していきたいと思います!