Edited at

CentOS7系と6系のコマンドの違いについて

More than 3 years have passed since last update.


CentOS7系と6系のコマンドの違いについて

備忘録として、よく使いそうなコマンドをまとめてみました。逐次更新予定です。

もしかしたら、間違いがあるかもしれないのですm(_ _)m


サービス系コマンド

CentOS7系ではサービス起動デーモンとして、SysVinit/Upstartに代わって、

systemdが導入されたことによって、サービス系コマンドが大幅に変更されました


サービスの状態確認

#################################################################################

# 状態の表示(サービス単位)
#################################################################################
# CentOS7系
$ /usr/bin/systemctl status {unit名}

# CentOS6系
$ /sbin/service {サービス名} status
$ /etc/init.d/{サービス名} status

#################################################################################
#状態の表示(全サービス)
#################################################################################
# CentOS7系
$ /usr/bin/systemctl {list-units} --type service

# CentOS6系
$ /sbin/service --status-all


サービスの起動・停止・再起動・設定反映・強制終了

#################################################################################

# サービスの起動・停止・再起動
#################################################################################
# CentOS7系
$ /usr/bin/ststemctl {start / stop / restart / reload} {unit名}

# CentOS6系
$ /sbin/service {start / stop / restart / reload} {サービス名}
$ $ /etc/init.d/{サービス名} {start / stop / restart / reload}

#################################################################################
# サービスの強制終了
#################################################################################
# CentOS7系
$ /usr/bin/systemctl kill -s 9 {unit名}

# CentOS6系
$ kill -9 PID


サービスの登録・解除・登録確認

CentOS7系のservice・chkconfigコマンドはsystemctlへリダイレクトするシェルスクリプトになっているので、そのまま使えます。ただし、chkconfig --listに関しては、一部のサービスのみしか表示されないので、注意が必要になります。

#################################################################################

# サービス定義の表示(全サービス)・登録(サービス単位)
#################################################################################
# CentOS7系
$ /usr/bin/systemctl list-units --type service
$ /usr/bin/systemctl daemon-reload

# CentOS6系
$ ls /etc/init.d/
$ /sbin/chkconfig --add / --del {サービス名}

#################################################################################
# サービスの自動起動確認
#################################################################################
# CentOS7系
$ /usr/bin/systemctl list-unit-files | grep {unit名}
$ /usr/bin/systemctl is-enabled {unit名}

# CentOS6系
$ /sbin/chkconfig --list {サービス名}

#################################################################################
# サービスの有効化・無効化
#################################################################################
# CentOS7系
$ /usr/bin/systemctl enable / disable {unit名}

# CentOS6系
$ /sbin/chkconfig --level 2345 {サービス名} on / off


Unitについて

ざっくり説明すると、デーモンの制御対象のことです。

ちなみに従来のサービスに相当する処理は、「.service」という拡張子がつくファイルで

管理されていて、サービス関連の処理を行う時はこのUnit名を指定します。

また、Unitには他にもマウントポイントの処理を行う「.mount」や

デバイスの処理を行う「.device」、Unitをグループ化する「.target」などがあります。

systemdではこのUnitという単位で様々な処理を行うので是非覚えて下さい!

補足ですが、targetファイルは自作することも出来ます。


Unitの種類

Unitの種類
説明

.service
指定のバイナリを実行する

.socket 
systemdがsocketをlistenして、接続があるとプロセスに受け渡す(xinetdの代替的な機能)

.target
複数のUnitをまとめる為に使用する

.device  
udevから通知されたデバイスを表す

.snapshot
ある時点のUnitの状態

.path
指定のファイルが生成されると指定したサービスを起動する

.mount  
指定のファイルシステムをマウントする

.automount
オートマウント処理を実施する(automountdの代替的な機能)


ランレベル系コマンド

通常起動の際は、いずれかのtargetへのシンボリックリンク(通常はmulti-user.targetかgraphical.target)となっているdefault.targetが参照されます

内容
CentOS6系
CentOS7系

システム停止
0
poweroff.target

シングルユーザモード
1
rescue.target

マルチユーザモード
3
multi-user.target

グラフィカルモード
5
graphical.target

再起動
6
reboot.target

緊急モード
N/A
emergency.target


起動・標準起動モードの変更

#################################################################################

# 起動モードの変更
#################################################################################
# CentOS7系
$ systemctl isolate {target名}

# CentOS6系
$ telinit runlevel

#################################################################################
# 標準起動モードの変更
#################################################################################
# CentOS7系
$ sudo systemctl set-default {target名}

# CentOS6系
$ /etc/inittabの編集


ログ確認系コマンド

systemdで起動されたUnitのログは、/var/log/journal以下にバイナリ形式で保存されます。journalctlの表示はデフォルトでページャ(less)で表示されるので、パイプ処理などでページャを使用したくない場合は、--no-pagerオプションを付加する必要があります。

また、デフォルトの設定だと/run/systemd/journal以下にログが書き込まれ、

再起動するとログが消えてしまうので、ログを残したい場合は、/var/log/journalを作成して、

journaldの再起動(systemctl restart systemd-journald)が必要があります。


ログ確認(サービス単位)

# CentOS7系

$ journalctl -u {unit名}

# CentOS6系
$ cat /var/log/{サービス名}


ログ更新監視

# CentOS7系

$ journalctl -f -u {unit名}

# CentOS6系
$ tail -f /var/log/{サービス名}


起動ログの確認

# CentOS7系

$ journalctl --dmesg

# CentOS6系
$ dmesg


ネットワーク系コマンド

CentOS7系からiproute2へ移行されたので、ifconfigやnetstatのコマンドが含まれる

net-toolsパッケージがインストールされなくなりました(インストールすれば使えます)


TCP接続状態表示

# CentOS7系

$ ss -tan

# CentOS6系
$ /bin/netstat -tan


インターフェース情報表示(全アクティブ・特定)・統計情報

#################################################################################

# インターフェース情報表示(全アクティブ)
#################################################################################
# CentOS7系
$ /sbin/ipaddress show または /sbin/ip a
$ /sbin/ip link show または /sbin/ip l

# CentOS6系
$ /sbin/ifconfig

#################################################################################
# インターフェース情報表示(特定)
#################################################################################
# CentOS7系
$ /sbin/ipaddress show dev enp0s3 または /sbin/ip a s dev enp0s3

# CentOS6系
$ /sbin/ifconfig eth0

#################################################################################
# インターフェース毎の統計情報
#################################################################################
# CentOS7系
$ ip -s link または ip -s l

# CentOS6系
$ /bin/netstat -i


ルーティングテーブル表示

# CentOS7系

$ /sbin/ip route または /sbin/ip r

# CentOS6系
$ /sbin/route


デフォルトゲートウェイの追加・削除

# CentOS7系

$ ip route {add / del} default via xxx.xxx.xxx.xxx または /sbin/ip {r / d} a default via
xxx.xxx.xxx.xxx

# CentOS6系
$ /sbin/route {add / del} default gw xxx.xxx.xxx.xxx


ARPテーブルの表示

# CentOS7系

$ /sbin/ip neighbour または /sbin/ip n

# CentOS6系
$ /sbin/arp -n


NetworkManager系コマンド

※後日、追記します


ホスト名操作系コマンド

ホスト名もCentOS7系から、systemdで管理されるようになりました


hostnameの確認・変更(永続的)

#################################################################################

# hostnameの確認
#################################################################################
# CentOS7系
$ hostname または hostnamectl

# CentOS6系
$ hostname

#################################################################################
# hostnameの変更(永続的)
#################################################################################
# CentOS7系
$ hostnamectl set-hostname {新しいホスト名}

# CentOS6系
$ /etc/sysconfig/networkを編集


ファイアウォール系コマンド

CentOS7系からファイアウォールの設定として、iptablesに代わって、firewalldが導入されました

※後日、追記します


ファイルシステム系コマンド

CentOS7からデフォルトのファイルシステムは、ext4からxfsに変更になりました

EXT4とXFSのコマンド参照表

※詳細については、後日追記します


追記

今回調べていて、CentOS7系になってかなりの量の変更点があるというより、今までの6系とは

完全に別物のOSになったといった印象を受けました。

多くのディストリビューションでもsystemdの対応を表明しているので、

個人的学習の為にも、ちょこちょこ更新していくつもりです、

cgroupsについても、またまとめたら投稿します。

ちなみにcgroupsは、control groupsの略で、プロセスグループ毎にCPUやメモリ・ディスクI/O等の

利用制限が出来るLinuxカーネルの機能の事です。