search
LoginSignup
107

More than 5 years have passed since last update.

posted at

updated at

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

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カーネルの機能の事です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
107