システム管理コマンド
システム管理コマンド:記事リスト
システム管理コマンドのカテゴリーには以下の記事がリストされています。
CentOS7で言語ロケールを確認・設定する
localectl コマンドを使用します。
現在設定されている言語ロケールを確認する
現在設定されてる言語ロケールを確認するには、「localectl status」を実行します。# localectl status ←「localectl status」を実行します。 System Locale: LANG=ja_JP.UTF-8 VC Keymap: jp X11 Layout: jp
日本語になっている事が確認できます。
言語ロケールを英語に変更する
言語ロケールを変更するには、「localectl set-locale LANG=」に変更する言語を指定します。
変更後は、ログインし直すことで、言語が変更されます。
# localectl set-locale LANG=en_US.UTF-8 ←「localectl set-locale LANG=en_US.UTF-8」を実行します。 # localectl status ←確認の為「localectl status」を実行します。 System Locale: LANG=en_US.UTF-8 VC Keymap: jp X11 Layout: jp
Linuxのカーネルバージョンを確認する
確認コマンドを実行する方法とカーネルバージョンを
保持したファイルを確認する方法があります。
コマンドでLinuxカーネルバージョンを確認する方法
コマンドでカーネルバージョンを確認する場合は、unameコマンドを使用します。unameにはいくつかのオプションがありますので、代表的なものを紹介します。
Linuxのカーネルバージョンのみ表示する
unameコマンドに「-r」オプションを付けて実行します。$ uname -r 3.10.0-693.11.6.el7.x86_64
yumでシステムアップデートする(カーネルは除く)
このyumを使用することで、Linuxシステムにインストールされている
すべてのパッケージをアップデートすることができます。
■yumのサブコマンド
| yum check-update | アップデート可能なパッケージを調査します。 |
| yum update | インストールされている全てのパッケージをアップデートします。 |
| yum update パッケージ | 指定したパッケージのみアップデートします。 |
| yum upgrade | システムをアップグレードします。 (CentOS7.1→CentOS7.4) 実質yum updateと同じ |
yum updateにおいて、カーネルアップデートは行わないほうが無難です。
なぜなら、カーネルアップデートを行うと、
システムの再起動やサービスの停止措置が必要だったり、
最悪カーネルパニックが発生して、システムが起動しない場合があるからです。
■カーネルを除外してアップデートする
yum -y updateの後ろに「--exclude=kernel*」を指定して実行することで
カーネルをアップデート対象から除外することできます。
# yum -y update --exclude=kernel*
ただし、この方法だと毎回「--exclude=kernel*」を指定する必要があり、
指定し忘れてしまう危険性があります。
そこで、/etc/yum.confにカーネルアップデートを除外する設定を行うのがオススメです。
# vi /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
exclude=kernel* ←追加します。
追加したら「:wq」で保存終了します。
・カーネルのバージョンを確認します。
# uname -r
3.10.0-229.el7.x86_64
・CentOSのバージョンを確認します。
# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
・アップデート可能なパッケージを確認します。
アップデートリストを確認して、カーネルが対象になっていない事を確認します。
# yum check-update
jasper-libs.x86_64 1.900.1-31.el7 base
kbd.x86_64 1.15.5-13.el7 base
kbd-legacy.noarch 1.15.5-13.el7 base
kbd-misc.noarch 1.15.5-13.el7 base
kexec-tools.x86_64 2.0.14-17.el7 base
kmod.x86_64 20-15.el7_4.2 updates
kmod-libs.x86_64 20-15.el7_4.2 updates
kpartx.x86_64 0.4.9-111.el7 base
kpatch.noarch 0.4.0-1.el7 base
krb5-devel.x86_64 1.15.1-8.el7 base
krb5-libs.x86_64 1.15.1-8.el7 base
langtable.noarch 0.0.31-3.el7 base
・アップデートを実施します。
# yum update
・アップデート後のカーネルのバージョンを確認します。
# uname -r
3.10.0-229.el7.x86_64
・アップデート後のCentOSのバージョンを確認します。
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core) ←CentOS7.4にアップグレードしています。
・アップデート後にアップグレード可能なパッケージが存在しないことを確認します。
対象パッケージがなければ問題ありません。
# yum check-update
・ログファイルでもアップデート状況の確認が行なえます。
# less /var/log/yum.log
Sep 22 15:37:14 Updated: libgcc-4.8.5-16.el7.x86_64
Sep 22 15:37:15 Installed: 1:grub2-common-2.02-0.64.el7.centos.noarch
Sep 22 15:37:15 Updated: centos-release-7-4.1708.el7.centos.x86_64
Sep 22 15:37:16 Updated: setup-2.8.71-7.el7.noarch
Sep 22 15:37:19 Updated: filesystem-3.2-21.el7.x86_64
Sep 22 15:37:19 Updated: 1:emacs-filesystem-24.3-20.el7_4.noarch
Sep 22 15:37:19 Updated: libreport-filesystem-2.1.11-38.el7.centos.x86_64
Sep 22 15:37:19 Updated: 32:bind-license-9.9.4-51.el7.noarch
Sep 22 15:37:19 Updated: langtable-0.0.31-3.el7.noarch
Sep 22 15:37:20 Updated: langtable-data-0.0.31-3.el7.noarch
Sep 22 15:37:20 Installed: 1:grub2-pc-modules-2.02-0.64.el7.centos.noarch
Sep 22 15:37:20 Installed: firewalld-filesystem-0.4.4.4-6.el7.noarch
Sep 22 15:37:20 Updated: 2:vim-filesystem-7.4.160-2.el7.x86_64
カーネルアップデートを行わない場合でも、
何らかの不具合が発生する可能性がありますので、
アップデートを行う際は、事前に必ずテスト環境での検証を行うことが必要です。
yum upgradeは、「yum update --obsoletes」と同じ扱いになります。
CentOSでは、/etc/yum.confにobsoletes=1と設定されているため、
デフォルトで--obsoletesが有効の状態になっています。
結果的に、「yum update」も「yum upgrade」も同じ扱いになります。
CentOS7のログ管理(systemd、journald)
systemdがログ管理を行う新しい仕組みが導入されています。
従来のsyslogは、複数システムのログをネットワーク経由で一括管理出来たり、
多くの管理ソフトウェア製品とも連携が可能でしたが、
膨大なログの中から欲しい情報を抽出するには、
様々なコマンドやツールを駆使する必要がありました。
そこでCentOS7では、syslogでのログ抽出作業量を軽減するために、
以前と比べて格段に情報を抽出しやすい仕組みに変更されています。
■journaldの状態を確認する
CentOS7では、ログ収集の仕組みとして、「journald」を使用します。
サービス名は「systemd-journald.service」です。
journaldの起動確認は、systemctlコマンドを実行します。
# systemctl status systemd-journald.service
systemd-journald.service - Journal Service
Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service; static)
Active: active (running) since 金 2017-08-04 13:39:06 JST; 46min ago
Docs: man:systemd-journald.service(8)
man:journald.conf(5)
Main PID: 712 (systemd-journal)
Status: "Processing requests..."
CGroup: /system.slice/systemd-journald.service
mq712 /usr/lib/systemd/systemd-journald
8月 04 13:39:06 Tiger systemd-journal[712]: Runtime journal is using 6.1M (max 48.9M, leavin...M).
8月 04 13:39:06 Tiger systemd-journal[712]: Runtime journal is using 6.1M (max 48.9M, leavin...M).
8月 04 13:39:06 Tiger systemd-journal[712]: Journal started
8月 04 13:39:07 Tiger systemd-journal[712]: Runtime journal is using 6.1M (max 48.9M, leavin...M).
Hint: Some lines were ellipsized, use -l to show in full.
■ブートログを確認する
journaldが収集したログを出力するためのコマンドは、「journalctl」になります。
サーバーに搭載されている各種ハードウェアの情報を確認するには、
CentOS7が起動した時のブートログを確認します。
ブートログを確認するには、journalctlコマンドにオプション「-b」を付けて実行します。
# journalctl -b
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:29:01 JST. --
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuset
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpu
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuacct
8月 04 13:39:02 Tiger kernel: Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org)
8月 04 13:39:02 Tiger kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-229.el7.x86_64 root=/dev/map
8月 04 13:39:02 Tiger kernel: Disabled fast string operations
8月 04 13:39:02 Tiger kernel: e820: BIOS-provided physical RAM map:
■ログを日時でフィルタリングする
journalctlコマンドには、日時でログをフィルタリングする機能が備わっています。
日時開始を「--since=""」で、日時終了を「--until=""」で指定します。
下記例では、2017年8月4日 14時29分〜14時33分1秒までのログを出力しています。
# journalctl --since="2017-08-04 14:29:00" --until="2017-08-04 14:33:01"
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:35:01 JST. --
8月 04 14:29:01 Tiger systemd[1]: Starting Session 62 of user root.
8月 04 14:29:01 Tiger systemd[1]: Started Session 62 of user root.
8月 04 14:29:01 Tiger CROND[5038]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 14:29:25 Tiger clamd[1113]: SelfCheck: Database status OK.
8月 04 14:29:25 Tiger clamd[1113]: SelfCheck: Database status OK.
8月 04 14:30:01 Tiger systemd[1]: Starting Session 64 of user root.
8月 04 14:30:01 Tiger systemd[1]: Started Session 64 of user root.
8月 04 14:30:01 Tiger systemd[1]: Starting Session 63 of user root.
8月 04 14:30:01 Tiger systemd[1]: Started Session 63 of user root.
8月 04 14:30:01 Tiger CROND[5046]: (root) CMD (/usr/lib64/sa/sa1 1 1)
8月 04 14:30:01 Tiger CROND[5047]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 14:31:01 Tiger systemd[1]: Starting Session 65 of user root.
8月 04 14:31:01 Tiger systemd[1]: Started Session 65 of user root.
8月 04 14:31:01 Tiger CROND[5056]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 14:32:01 Tiger systemd[1]: Starting Session 66 of user root.
8月 04 14:32:01 Tiger systemd[1]: Started Session 66 of user root.
8月 04 14:32:01 Tiger CROND[5061]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
デフォルトでは、自動的にlessページャが起動するので、
スペースでページ送りをしますが、
不要な場合は、「--no-pager」オプションを付与します。
■今日のログを出力する
実行日当時のログを出力したい場合は、--sinceオプションに「today」を指定します。
# journalctl --since=today
- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:40:01 JST. --
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger systemd-journal[336]: Runtime journal is using 6.1M (max 48.9M, leaving 73.4M
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuset
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpu
8月 04 13:39:02 Tiger kernel: Initializing cgroup subsys cpuacct
8月 04 13:39:02 Tiger kernel: Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org)
8月 04 13:39:02 Tiger kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-229.el7.x86_64 root=/dev/map
8月 04 13:39:02 Tiger kernel: Disabled fast string operations
8月 04 13:39:02 Tiger kernel: e820: BIOS-provided physical RAM map:
他にも「yesterday」や何に使うか分かりませんが「tomorrow」も指定できます。
■特定のサービスに絞ってログを表示する
特定のサービスのみのログを出力したい場合は、
「-u」オプションにサービス名を付けて実行します。
下記例では、SSHサービスのログを出力しています。
# journalctl --since="2017-08-03 14:29:00" --until="2017-08-04 14:33:01" -u sshd.service
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 14:44:01 JST. --
8月 04 13:39:09 Tiger systemd[1]: Starting OpenSSH server daemon...
8月 04 13:39:09 Tiger systemd[1]: Started OpenSSH server daemon.
8月 04 13:39:09 Tiger sshd[1106]: Server listening on 0.0.0.0 port 2222.
8月 04 14:24:24 Tiger sshd[3972]: Accepted publickey for pakira from 192.168.0.80 port 50700 ssh2:
■リアルタイムでログを確認する
現在、リアルタイムで出力しているログを表示させたい場合は、
journalctlコマンドに「-f」オプションを付けて実行します。
従来の「tail -f /var/log/messages」と同様な表示ができます。
# journalctl -f
-- Logs begin at 金 2017-08-04 13:39:02 JST. --
8月 04 18:32:01 Tiger systemd[1]: Started Session 267 of user root.
8月 04 18:32:01 Tiger CROND[11781]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 18:33:01 Tiger systemd[1]: Created slice user-0.slice.
8月 04 18:33:01 Tiger systemd[1]: Starting Session 268 of user root.
8月 04 18:33:01 Tiger systemd[1]: Started Session 268 of user root.
8月 04 18:33:01 Tiger CROND[11787]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
8月 04 18:34:01 Tiger systemd[1]: Created slice user-0.slice.
8月 04 18:34:01 Tiger systemd[1]: Starting Session 269 of user root.
8月 04 18:34:01 Tiger systemd[1]: Started Session 269 of user root.
8月 04 18:34:01 Tiger CROND[11793]: (root) CMD (/var/www/system/check_process.pl > /dev/null 2>&1)
■プライオリティによるログのフィルタリング
syslogでは、ログのプライオリティ(緊急度)に応じた管理ができましたが、
journalctlでも同様の出力が行なえます。
プライオリティには、緊急度の高いものからemerg、alert、err、warning、
notice、debugがあります。
■warningプライオリティを表示する
特定のプライオリティを表示させるには、journalctlにオプション「-p」を付けて、
フィルタリングしたいプライオリティを指定します。
下記例では、warningプライオリティを表示しています。
# journalctl -p warning
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 18:42:01 JST. --
8月 04 13:39:02 Tiger kernel: ACPI: RSDP 00000000000f6a10 00024 (v02 PTLTD )
8月 04 13:39:02 Tiger kernel: ACPI: XSDT 000000003feea65b 0005C (v01 INTEL 440BX 06040000 VMW
8月 04 13:39:02 Tiger kernel: ACPI: FACP 000000003fefee73 000F4 (v04 INTEL 440BX 06040000 PTL
8月 04 13:39:02 Tiger kernel: ACPI: DSDT 000000003feec3fc 12A77 (v01 PTLTD Custom 06040000 MSFT
8月 04 13:39:02 Tiger kernel: ACPI: FACS 000000003fefffc0 00040
8月 04 13:39:02 Tiger kernel: ACPI: BOOT 000000003feec3d4 00028 (v01 PTLTD $SBFTBL$ 06040000 LTP
8月 04 13:39:02 Tiger kernel: ACPI: APIC 000000003feeb8bd 00742 (v01 PTLTD ? APIC 06040000 LTP
8月 04 13:39:02 Tiger kernel: ACPI: MCFG 000000003feeb881 0003C (v01 PTLTD $PCITBL$ 06040000 LTP
8月 04 13:39:02 Tiger kernel: ACPI: SRAT 000000003feea757 008A8 (v02 VMWARE MEMPLUG 06040000 VMW
8月 04 13:39:02 Tiger kernel: ACPI: HPET 000000003feea71f 00038 (v01 VMWARE VMW HPET 06040000 VMW
8月 04 13:39:02 Tiger kernel: ACPI: WAET 000000003feea6f7 00028 (v01 VMWARE VMW WAET 06040000 VMW
8月 04 13:39:02 Tiger kernel: kexec: crashkernel=auto resulted in zero bytes of reserved memory.
■errプライオリティを表示する
# journalctl -p err
-- Logs begin at 金 2017-08-04 13:39:02 JST, end at 金 2017-08-04 18:44:01 JST. --
8月 04 13:39:02 Tiger kernel: Detected CPU family 6 model 78
8月 04 13:39:02 Tiger kernel: Warning: Intel CPU model - this hardware has not undergone upstream t
8月 04 13:39:03 Tiger kernel: sd 0:0:0:0: [sda] Assuming drive cache: write through
8月 04 13:39:07 Tiger kernel: piix4_smbus 0000:00:07.3: Host SMBus controller not enabled!
8月 04 13:39:08 Tiger NetworkManager[839]: _nl_get_vtable: assertion 'vtable.handle' failed
8月 04 13:39:23 Tiger systemd[1]: Failed to start Crash recovery kernel arming.
これまでの例では各プライオリティ名を指定してフィルタリングしましたが、
これをプライオリティの値で指定することも可能です。
各プライオリティと値は下記の対応となっています。
| emerg | 0 |
| alert | 1 |
| crit | 2 |
| err | 3 |
| warning | 4 |
| notice | 5 |
| debug | 6 |
■emergプライオリティのログをプライオリティ値で表示する
emergログが存在しないので、loggerコマンドを使用してテストログを吐き出し、
その後プライオリティ値「0」でemergログを表示します。
# logger -p daemon.emerg "TEST LOG EMERG"
#
Message from syslogd@Tiger at Aug 7 16:23:46 ...
pakira:TEST LOG EMERG
# journalctl -p 0
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:23:46 JST. --
8月 07 16:23:46 Tiger pakira[3402]: TEST LOG EMERG
■alertプライオリティのログをプライオリティ値で表示する
プライオリティ値「1」でalertログを表示します。
# logger -p daemon.alert "TEST LOG ALERT"
# journalctl -p 1
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:26:26 JST. --
8月 07 16:23:46 Tiger pakira[3402]: TEST LOG EMERG
8月 07 16:26:26 Tiger pakira[3789]: TEST LOG ALERT
journalctlを実行すると、alertよりプライオリティの高い
emergプライオリティも表示されていることが分かります。
■カーネルログを表示する
カーネルログを表示するには、
journalctlコマンドにオプション「-k」を付けて実行します。
従来の「dmesg」コマンドに相当します。
# journalctl -k
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:29:01 JST. --
8月 07 15:57:16 Tiger kernel: Initializing cgroup subsys cpuset
8月 07 15:57:16 Tiger kernel: Initializing cgroup subsys cpu
8月 07 15:57:16 Tiger kernel: Initializing cgroup subsys cpuacct
8月 07 15:57:16 Tiger kernel: Linux version 3.10.0-229.el7.x86_64 (builder@kbuilder.dev.centos.org)
8月 07 15:57:16 Tiger kernel: Command line: BOOT_IMAGE=/vmlinuz-3.10.0-229.el7.x86_64 root=/dev/map
8月 07 15:57:16 Tiger kernel: Disabled fast string operations
8月 07 15:57:16 Tiger kernel: e820: BIOS-provided physical RAM map:
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x0000000000100000-0x000000003fedffff] usable
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000003fee0000-0x000000003fefefff] ACPI data
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000003feff000-0x000000003fefffff] ACPI NVS
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x000000003ff00000-0x000000003fffffff] usable
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000f0000000-0x00000000f7ffffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
8月 07 15:57:16 Tiger kernel: BIOS-e820: [mem 0x00000000fffe0000-0x00000000ffffffff] reserved
■特定のプロセスIDのログを表示する
特定のプロセスIDに関係するログを表示する場合は、
journalctlコマンドに「_PID=プロセス番号」を付けて実行します。
# journalctl _PID=1112
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:32:01 JST. --
8月 07 15:57:23 Tiger clamd[1112]: clamd daemon 0.98.7 (OS: linux-gnu, ARCH: x86_64, CPU: x86_64)
8月 07 15:57:23 Tiger clamd[1112]: Running as user amavis (UID 991, GID 991)
8月 07 15:57:23 Tiger clamd[1112]: Log file size limited to 1048576 bytes.
8月 07 15:57:23 Tiger clamd[1112]: Reading databases from /var/lib/clamav
8月 07 15:57:23 Tiger clamd[1112]: Not loading PUA signatures.
8月 07 15:57:23 Tiger clamd[1112]: Bytecode: Security mode set to "TrustSigned".
■実行ファイルのパス指定でのログ表示
journalctlコマンドにサービスを提供する実行ファイルのパスを指定して
それに関連するログを表示することができます。
下記例では、SSHサービスの実行ファイルである「/usr/sbin/sshd」関連のログを
表示しています。
# journalctl /usr/sbin/sshd
-- Logs begin at 月 2017-08-07 15:57:16 JST, end at 月 2017-08-07 16:34:06 JST. --
8月 07 15:57:23 Tiger sshd[1105]: Server listening on 0.0.0.0 port 22.
8月 07 16:22:03 Tiger sshd[3308]: Accepted publickey for pakira from 192.168.0.80 port 54097 ssh2:
8月 07 16:22:04 Tiger sshd[3308]: pam_unix(sshd:session): session opened for user pakira by (uid=0)
Apacheのログを一括でホスト名表示する(logresolve)
Apacheのアクセスログは、デフォルトの設定のままだと
接続クライアントのIPアドレスを記録します。
Apacheの設定ファイル(httpd.confまたは、httpd-default.conf)の
HostnameLookupsを「On」にすることで接続クライアントを
ホスト名で記録するように変更ができますが、
パフォーマンス低下を招いてしまいます。
運用中のパフォーマンス低下を防ぐために、
logresolveコマンドを使用してIPアドレスで記録したログファイルを、
一括でホスト名に変換します。
下記例では、IPアドレスで記録されたaccess_log_20170705ファイルを
ホスト名変換してresolve_logファイルに出力します。
# logresolve < access_log_20170705 > resolve_log
また、「-s」を指定して実行することで、logresolveコマンドの実行結果の
統計をファイル出力することも可能です。
例えば、名前解決できたIPアドレスやホスト名、
または名前解決できなかったIPアドレスなどが出力されます。
下記例では、toukeiファイルに統計データを出力しています。
# logresolve -s toukei < access_log_20170705 > resolve_log
統計データは下記のように出力されます。
# cat toukei
logresolve Statistics:
Entries: 131
With name : 0
Resolves : 75
- No reverse : 16
Cache hits : 56
Cache size : 75
アクセスログが大きいと、処理に時間が掛かります。
実行する際は、負荷が少ない時間帯を選ぶなどの配慮が必要になります。
CentOS7のホスト名設定(nmcliコマンド)
CentOS6までは、ホスト名の設定は「/etc/sysconfig/network」ファイルで
管理していましたが、CentOS7では、「/etc/hostname」ファイルで管理します。
ホスト名を変更するには、、「/etc/hostname」ファイルを直接編集するか、
または、nmcliコマンドでもホスト名設定が可能です。
現在設定されているホスト名を確認するには下記コマンドを実行します。
[root@Tiger ~]# nmcli general hostname
Tiger.linuxmaster.jp
上記の例ではホスト名に「Tiger.linuxmaster.jp」が設定されていることが確認できます。
ホスト名を「Leo.linuxmaster.jp」に変更します。
[root@Tiger ~]# nmcli general hostname Leo.linuxmaster.jp
変更後のホスト名を確認します。
[root@Tiger ~]# hostname
Leo.linuxmaster.jp
「/etc/hostname」ファイルの内容も確認します。
[root@Tiger ~]# cat /etc/hostname
Leo.linuxmaster.jp
CentOS7のネットワーク管理
CentOS7のネットワーク管理はNetworkManagerを利用して行います。
CentOS6系では、Network Administration Toolに含まれる
system-config-networkを使用した管理、管理ファイルを直接編集する
運用が一般的でしたが、CentOS7では、NetworkManagerを使用した
管理が推奨されています。
従来のNetworkManagerは、すべてのネットワーク機能を制御できなかった為、
直接ファイルを編集し、サービスの起動や停止を行っていましたが、
CentOS7のNetworkManagerでは、ネットワーク関連の操作が大幅に強化され、
設定ファイルを直接編集しなくても、コマンドラインやGUIツールで設定ファイルを
生成することが可能になっています。
また、NIC(Network Interface Card)に付与されるインタフェース名の命名管理も
これまでのCentOS6系とは全く異なる仕様となっています。
CentOS7では、ネットワークインタフェース名に永続的に変わらない名前が付与がされます。
この永続的な命名をConsistent Network Device Namingと言い、一般的なx86サーバーに
搭載されているオンボードのNICでは、eno1、eno2、拡張カードスロットに装着するNICでは
ens1、ens2、またはens7f0、ens7f1などの名前が付与されます。
■nmcliコマンド
nmcli(Network Manager Command Line Interface)コマンドは、
CentOS7のネットワーク設定を行なうNetworkManager基本コマンドになります。
nmcliコマンドには、下記パラメーターが用意されています。
・connection:接続の設定
・device:デバイス管理
・general:ホスト名設定、ロギング、権限操作、状態の表示
・networking:コネクティビティのチェック、有効化、無効化管理
・radio:ワイヤレスネットワークの設定有効化、無効化管理
■インタフェースの接続状態確認
[root@Tiger ~]# nmcli connection
名前 UUID タイプ デバイス
eno1 4a181dd8-0bac-43c5-8d4f-9e89c31e14b1 802-3-ethernet eno1
上記の例では、NICのインタフェース名がeno1として割当られています。
デバイスの項目にインタフェース名が表示されている場合は
ネットワークに接続されていることを表します。
■インタフェースの接続と切断
「nmcli connection」でupやdownを指定すると、
インタフェースの接続、切断を制御できます。
下記例ではインタフェースeno1を切断しています。
[root@Tiger ~]# nmcli connection down eno1
[root@Tiger ~]# nmcli connection
名前 UUID タイプ デバイス
eno1 4a181dd8-0bac-43c5-8d4f-9e89c31e14b1 802-3-ethernet --
デバイスの項目gが「--」になり、切断されていることが分かります。
再度接続するには、下記コマンドを実行します。
[root@Tiger ~]# nmcli connection up eno1
■デバイス名とデバイスの状態確認
インタフェースのデバイス名とその状態を確認するには「device」を指定します。
[root@Tiger ~]# nmcli device
デバイス タイプ 状態 接続
eno1 ethernet 接続済み eno1
lo loopback 管理無し --
物理NICが1ポートあるサーバーで、デバイス名がeno1と割り当てられています。
またループバックデバイスとしてloが認識されています。状態と接続からeno1が
ネットワークに接続されていることが分かります。
■詳細なデバイス情報を表示
デイバイスのMACアドレス、IPアドレス、MTUなどの詳細を確認するには、
「nmcli device」に「show」を付けて実行します。
[root@Tiger ~]# nmcli device show
GENERAL.デバイス: eno1
GENERAL.タイプ: ethernet
GENERAL.ハードウェアアドレス: 00:0C:29:37:80:B6
GENERAL.MTU: 1500
GENERAL.状態: 100 (接続済み)
GENERAL.接続: eno1
GENERAL.CON パス: /org/freedesktop/NetworkManager/ActiveConnection/0
WIRED-PROPERTIES.キャリア: オン
IP4.アドレス[1]: 192.168.0.36/24
IP4.ゲートウェイ: 192.168.0.1
IP4.DNS[1]: 192.168.0.1
IP6.アドレス[1]: fe80::20c:29ff:fe37:80b6/64
IP6.ゲートウェイ:
GENERAL.デバイス: lo
GENERAL.タイプ: loopback
GENERAL.ハードウェアアドレス: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.状態: 10 (管理無し)
GENERAL.接続: --
GENERAL.CON パス: --
IP4.アドレス[1]: 127.0.0.1/8
IP4.ゲートウェイ:
IP6.アドレス[1]: ::1/128
IP6.ゲートウェイ:
「nmcli device show」だけでは複数のNICが存在した場合、
そのすべての状態を表示してしまいます。
しかし、インタフェース名を指定することで出力を絞ることができます。
[root@Tiger ~]# nmcli device show eno1
GENERAL.デバイス: eno1
GENERAL.タイプ: ethernet
GENERAL.ハードウェアアドレス: 00:0C:29:37:80:B6
GENERAL.MTU: 1500
GENERAL.状態: 100 (接続済み)
GENERAL.接続: eno1
GENERAL.CON パス: /org/freedesktop/NetworkManager/ActiveConnection/0
WIRED-PROPERTIES.キャリア: オン
IP4.アドレス[1]: 192.168.0.36/24
IP4.ゲートウェイ: 192.168.0.1
IP4.DNS[1]: 192.168.0.1
IP6.アドレス[1]: fe80::20c:29ff:fe37:80b6/64
IP6.ゲートウェイ:
■接続情報の変更
・IPアドレス・ゲートウェイの変更
インタフェースに割り当てたIPアドレスやゲートウェイを変更するには、
「nmcli connection」に「modify」を指定します。
下記例では、IPアドレス192.168.0.36/24、ゲートウェイが192.168.0.1が
割り当てられている環境で、eno1のIPアドレスを192.168.0.20/24、
ゲートウェイを192.168.0.254に変更しています。
[root@Tiger ~]# nmcli connection modify eno1 ipv4.addresses "192.168.0.20/24 192.168.0.254"
[root@Tiger ~]# nmcli connection down eno1 && nmcli connection up eno1
「nmcli connection down eno1」が従来のifdown、
「nmcli connection up eno1」がifupに相当し、eno1を再起動しています。
・DNS・静的ルーティング変更
DNSサーバーと静的ルーティングを変更するには「ipv4.dns」、「ipv4.routes」を指定します。
下記の例では、eno1のDNSサーバーのIPアドレスを「8.8.8.8」、「4.4.4.4」を指定しています。
[root@Tiger ~]# nmcli connection modify eno1 ipv4.dns "8.8.8.8 4.4.4.4"
[root@Tiger ~]# nmcli connection down eno1 && nmcli connection up eno1
下記の例では、静的ルーティングとして、「10.0.0.0/24」のネットワークアドレスで
ルーターのIPアドレス「10.0.0.1」を指定しています。
[root@Tiger ~]# nmcli connection modify eno1 ipv4.routes "10.0.0.0/24 10.0.0.1"
[root@Tiger ~]# nmcli connection down eno1 && nmcli connection up eno1
CentOS7での日付、時刻、タイムゾーン設定
CentOS7では、日付、時刻の設定コマンドとして従来のdateコマンド、hwclockコマンドが
存在していますが、新たにsystemdで制御されるtimedatectlコマンドが用意されています。
■日付、時間、タイムゾーンの表示
timedatectlコマンドをオプションなしで実行すると、
日付、時間、タイムゾーン、NTPの同期設定の有無などを表示できます。
-----------------------------------------------------------------
[root@Tiger system]# timedatectl
Local time: 木 2016-01-14 13:51:12 JST
Universal time: 木 2016-01-14 04:51:12 UTC
RTC time: 木 2016-01-14 04:51:11
Timezone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
-----------------------------------------------------------------
■日付の設定
timedatectlで日付設定を行う場合は、オプションに「set-time」を付けて実行します。
下記の例では、2016年1月15日に設定しています。
-----------------------------------------------------------------
[root@Tiger system]# timedatectl set-time 2016-01-15
[root@Tiger system]# timedatectl
Local time: 金 2016-01-15 00:00:03 JST
Universal time: 木 2016-01-14 15:00:03 UTC
RTC time: 木 2016-01-14 15:00:04
Timezone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
-----------------------------------------------------------------
■時刻の設定
timedatectlで時刻設定を行う場合も、オプションに「set-time」を付けて実行します。
下記の例では、15時54分00秒に設定しています。
-----------------------------------------------------------------
[root@Tiger system]# timedatectl set-time 15:54:00
[root@Tiger system]# timedatectl
Local time: 金 2016-01-15 15:54:00 JST
Universal time: 金 2016-01-15 06:54:00 UTC
RTC time: 金 2016-01-15 06:54:00
Timezone: Asia/Tokyo (JST, +0900)
NTP enabled: yes
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
-----------------------------------------------------------------
■タイムゾーンの表示
timedatectlでタイムゾーンを表示するには、オプション「list-timesones」を付けて実行します。
-----------------------------------------------------------------
[root@Tiger system]# timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
〜中略〜
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Thimphu
Asia/Tokyo
-----------------------------------------------------------------
■タイムゾーンの変更
タイムゾーンを変更するには、timedatectlコマンドにオプション「set-timesone」を付けて実行します。
-----------------------------------------------------------------
[root@Tiger system]# timedatectl set-timezone Asia/Tokyo
-----------------------------------------------------------------
CentOS7でのロケール、キーボード設定
CentOS7でロケールとキーボードの設定変更するには、localectlコマンドを使用します。
<<ロケール設定>>
■ロケール状態の確認
現在のロケールの状態を確認します。
-----------------------------------------------------------------
[root@Tiger system]# localectl
System Locale: LANG=ja_JP.UTF-8
VC Keymap: jp
X11 Layout: jp
-----------------------------------------------------------------
■ロケールを日本語に設定
-----------------------------------------------------------------
[root@Tiger system]# localectl set-locale LANG=ja_JP.utf8
[root@Tiger system]# localectl
Syststrongm Locale: LANstrong=ja_JP.utf8
VC Keymap: jp
X11 Layout: jp
-----------------------------------------------------------------
■ロケールの設定ファイル
ロケールの設定ファイルは、「/etc/locale.conf」になります。
-----------------------------------------------------------------
[root@Tiger system]# ls -l /etc/locale.conf
-rw-r--r-- 1 root root 16 1月 14 13:28 /etc/locale.conf
[root@Tiger system]# cat /etc/locale.conf
LANG=ja_JP.utf8
-----------------------------------------------------------------
ja_JP.utf8に設定ファイルが変更されています。
<<キーボード設定>>
■キーマップの表示
利用可能なキーマップを表示します。
-----------------------------------------------------------------
[root@Tiger system]# localectl list-keymaps
ANSI-dvorak
amiga-de
amiga-us
applkey
〜中略〜
it-us
it2
jp
jp-OADG109A
jp-dvorak
jp-kana86
jp106
-----------------------------------------------------------------
■キーボードの設定
日本語のキーマップはjp106になるので、キーボード設定を日本語106キーボードに設定します。
-----------------------------------------------------------------
[root@Tiger system]# localectl set-keymap jp106
[root@Tiger system]# localectl
System Locale: LANG=ja_JP.utf8
VC Keymap: jp106
X11 Layout: jp
X11 Model: jp106
X11 Options: terminate:ctrl_alt_bksp
-----------------------------------------------------------------
■キーマップ設定ファイル
キーマップの設定ファイルは、「etc/vconsole.conf」になります。
-----------------------------------------------------------------
[root@Tiger system]# cat /etc/vconsole.conf
KEYMAP=jp106
FONT=latarcyrheb-sun16
-----------------------------------------------------------------
CentOS7のサービス・デーモンの起動
具体的なコマンドとしては、systemctlを利用して起動、停止、状態確認などを行います。
これらはユニットと呼ばれる単位で管理を行い、下記の幾つかのタイプが存在ます。
| start | httpdを起動します。 |
| stop | httpdを停止します。 |
| service | 各種デーモンやサービスを起動 |
| target | 起動プロセスやサービスなどの複数のユニットをグループにしてまとめたもの |
| mount | ファイルシステムのマウントポイント制御 |
| device | ディスクデバイス |
| socket | FIFO、UNIXドメインソケット、ポート番号などに関する通信資源 |
CentOS7に登録されているサービスのOS起動時の自動起動の有効化、
無効化の設定を確認するには、
ユニット「sevice」を指定し、更に「list-unit-files」を指定します。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl -t service list-unit-files
UNIT FILE STATE
abrt-ccpp.service enabled
abrt-oops.service enabled
abrt-pstoreoops.service disabled
abrt-vmcore.service enabled
abrt-xorg.service disabled
abrtd.service enabled
arp-ethers.service disabled
以下省略
-----------------------------------------------------------------
■サービスの登録状況確認
サービスの設定例として、WEBサービスの起動、停止、状態確認、
OS起動時の自動起動の有効化、無効化の設定を紹介します。
WEBサービスのがsystemdのユニットで
どのような名前で登録されているのかを確認します。
(例ではApacheがインストールされている環境を利用しています。)
-----------------------------------------------------------------
[root@Tiger ~]# systemctl -t service list-unit-files | grep -i httpd
httpd.service enabled
-----------------------------------------------------------------
WEBサーバーのサービスは「httpd.service」になります。
「httpd.serviceの右側に「enabled」と表示されています。
これはOS起動時に「httpd.service」が自動起動する
設定になっている事を意味します。
「disabled」だと自動起動しない設定という意味になります。
■サービスの状態確認
サービスの状態確認は、systemctlコマンドに「status」を指定します。
systemctlコマンドを利用する場合、サービス名の「.service 」は省略できます。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: active (running) since 水 2016-01-13 15:40:13 JST; 9min ago
Process: 1145 ExecStart=/usr/local/apache2/bin/apachectl start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/httpd.service
tq2114 /usr/local/apache2/bin/httpd -k start
tq2115 /usr/local/apache2/bin/rotatelogs /var/log/httpd/192.168.0.36_error_log_%Y%m%d ...
tq2116 /usr/local/apache2/bin/rotatelogs /var/log/httpd/192.168.0.36_access_log_%Y%m%d...
tq2117 /usr/local/apache2/bin/httpd -k start
tq2118 /usr/local/apache2/bin/httpd -k start
tq2119 /usr/local/apache2/bin/httpd -k start
tq2120 /usr/local/apache2/bin/httpd -k start
mq2121 /usr/local/apache2/bin/httpd -k start
1月 13 15:40:13 Tiger systemd[1]: Started The Apache HTTP Server.
-----------------------------------------------------------------
コマンドの実行結果「Active: active (running) 」となっており、
プロセスも正常起動していることから、Apacheサービスが正常に起動していることが分かります。
■サービスの起動と停止
Apacheを停止してみます。
停止は「systemctl stop httpd」で行えます。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl stop httpd
[root@Tiger ~]# systemctl status httpd
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
Active: inactive (dead) since 水 2016-01-13 15:52:20 JST; 4s ago
Process: 2384 ExecStop=/usr/local/apache2/bin/apachectl stop (code=exited, status=0/SUCCESS)
Process: 1145 ExecStart=/usr/local/apache2/bin/apachectl start (code=exited, status=0/SUCCESS)
1月 13 15:40:13 Tiger systemd[1]: Started The Apache HTTP Server.
1月 13 15:52:20 Tiger systemd[1]: Stopping The Apache HTTP Server...
1月 13 15:52:20 Tiger systemd[1]: Stopped The Apache HTTP Server.
-----------------------------------------------------------------
コマンドの実行結果が「Active: inactive (dead)」になっていることから
Apacheが停止していることが分かります。
因みに、起動は「systemctl start httpd」で行えます。
■起動時の自動実行、停止設定
CentOS7が起動した時に、Apacheサービスが自動的に起動するように設定します。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service'
'/etc/systemd/system/multi-user.target.wants/httpd.service'
-----------------------------------------------------------------
自動起動を無効にする場合は、下記コマンドになります。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl disable httpd
rm '/etc/systemd/system/multi-user.target.wants/httpd.service'
-----------------------------------------------------------------
「enable」を「disable」に変更します。
CentOS7が起動した際、Apacheサービスが自動起動するように 設定されているか確認します。
-----------------------------------------------------------------
[root@Tiger ~]# systemctl -t service is-enabled httpd
enabled
-----------------------------------------------------------------
| 機能 | CentOS6 | CentOS7 |
| サービスの開始 | # service httpd start | # systemctl start httpd |
| サービスの停止 | # service httpd stop | # systemctl stop httpd |
| サービスの再起動 | # service httpd restart | # systemctl restart httpd |
| サービスの設定ファイル再読み込み | # service httpd reload | # systemctl reload httpd |
| サービスの状態確認 | # service httpd status | # systemctl status httpd |
| サービスが既に稼働している場合、サービスを再起動する | # service httpd condrestart | # systemctl condrestart httpd |
| 次回OS起動時に自動的にサービスを起動する | # chkconfig httpd on | # systemctl enable httpd |
| 次回OS起動時に自動的にサービスを起動しない | # chkconfig httpd off | # systemctl disable httpd |
| ランレベルごとに全サービスが有効・無効になっているかを表示する | # chkconfig --list | systemctl -t service list-unit-files または # ls /etc/systemd/system/*.wants/ |
| ランレベルごとに指定したサービスが有効・無効になっているかを表示する | # chkconfig --list httpd | # ls /etc/systemd/system/*.wants/httpd.service |
YUM(Yellow dog Updater Modified)
CentOSや、Fedoraには、RPMパッケージの依存関係を自動的に解消してインストールする
YUM(Yellow dog Updater Modified)があります。
※YUMは、Debian GNU/LinuxおよびVine Linuxで採用されている
パッケージ管理システム(APTツール)に相当します。
もともとはYellow Dog Linuxのパッケージ管理システムとして
開発されたものでYUMの設定ファイルは、下記から構成されています。
/etc/yum.conf
/etc/yum.repos.d
■/etc/yum.confのファイル例
----------------------------------------------------------
$ cat /etc/yum.conf
[main]
cachedir=/var/cache/yum ←パッケージのキャッシュディレクトリ
keepcache=0
debuglevel=2
logfile=/var/log/yum.log ←ログファイル
distroverpkg=redhat-release
tolerant=1
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
# Note: yum-RHN-plugin doesn\'t honor this.
metadata_expire=1h
# Default.
# installonly_limit = 3
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
----------------------------------------------------------
/etc/yum.repos.dディレクトリ以下には、
リポジトリ情報の設定ファイルが保存されています。
パッケージの入手先を増やしたい場合は、リポジトリ情報の設定ファイルを追加します。
$ ls -l /etc/yum.repos.d
合計 16
-rw-r--r-- 1 root root 2245 4月 26 2010 CentOS-Base.repo
-rw-r--r-- 1 root root 626 4月 26 2010 CentOS-Media.repo
YUMを使用して管理を行うにはyumコマンドを使用します。
■yumコマンドの主なサブコマンド
------------------------------------------------------------------------
check-update アップデート対象のパッケージリストを表示する
update パッケージ名 指定したパッケージをアップデートする
install パッケージ名 指定したパッケージをインストールする
list installed パッケージ名 指定したパッケージがインストール済みか確認する
remove パッケージ名 指定したパッケージをアンインストールする
info パッケージ名 指定したパッケージの情報を表示する
list 全パッケージ情報をリスト表示する
search キーワード パッケージ情報をキーワード検索する
grouplist パッケージグループをリスト表示する
groupinstall グループ 指定したグループのパッケージをインストールする
------------------------------------------------------------------------
sync
キャッシュ(メモリ)の内容をディスクに書き込む
■-- 文法 --■
sync
例)
sync
キャッシュの内容をディスクに書き込む
※▲はスペースを表してます。
■ 説明
syncコマンドは任意にキャッシュの内容をディスクに書き込むコマンドです。
syncコマンドはメモリ内に存在するデータでありながら、ディスクに存在しない
データをディスクに書き込むコマンドになります。
実行するにはオプションなしでsyncコマンドを実行します。
また、shutdownコマンド、rebootコマンド、haltコマンドを実行した場合も
自動的に実行されるようになっています。
※補足
処理を高速に実現する為には、処理の実行及び、実行結果をそのまま
ディスクに書き込む事は得策ではないため、通常のOSではメモリにデータを書き込み、
CPUの不可やI/O(ハードディスクやメモリ)の利用状況を判断しながら自動的に
ディスクに書き込みを行うようになっています。
■ 実行例
▼キャッシュ(メモリ)の内容をディスクに書き込む
[root@Tiger ~]# sync ←syncコマンドを実行して、メモリ内のデータをディスクに書き込みます。
■ 関連記事
shutdownコマンドの詳細はこちら
rebootコマンドの詳細はこちら
haltコマンドの詳細はこちら
chkconfig
サービスの一覧表示、登録、削除、ランレベルの設定を行う
■-- 文法 --■
chkconfig [オプション] [サービス名]
例)
chkconfig▲--list
サービスを一覧表示する
※▲はスペースを表してます。
■ 説明
chkconfigコマンドは、Linuxがシステム起動時に起動するサービスを一覧表示したり、
サービスの登録、削除、サービスの起動をランレベル毎に細かく制御するコマンドに
なります。また、chkconfigコマンドを実行するにはroot権限が必要になります。
■ 主なオプション
--list サービスを一覧表示します。
--add サービスを登録します。
--del サービスを削除します。
--level [ランレベル] サービス名 ランレベル毎にサービスのon/offを設定します。
-h chkconfigコマンドのヘルプを表示します。
-v chkconfigコマンドのバージョンの表示します。
■ 実行例
▼サービスを一覧表示する
[root@Tiger ~]# chkconfig --list
NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off
acpid 0:off 1:off 2:off 3:off 4:off 5:off 6:off
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
apmd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
(省略)
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
ypbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off
yum-updatesd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
▼サービスを登録する
[root@Tiger ~]# chkconfig --add proftpd
▼サービスを削除する
[root@Tiger ~]# chkconfig --del proftpd
▼ランレベル毎にサービスのon/offを設定する
[root@Tiger ~]# chkconfig --level 2345 netfs off
[root@Tiger ~]# chkconfig --level 2345 netfs on
▼ヘルプを表示する
[root@Tiger ~]# chkconfig -h
chkconfig バージョン 1.3.30.1 - Copyright (C) 1997-2000 Red Hat, Inc.
このソフトウェアは GNU 一般公共使用許諾契約書に従って無償で再配布することができます。
使用法: chkconfig --list [名前]
chkconfig --add <名前>
chkconfig --del <名前>
chkconfig [--level <レベル>] <名前>
▼バージョンを表示する
[root@Tiger ~]# chkconfig -v
chkconfig バージョン 1.3.30.1
■ 関連記事
ランレベルごとのサービス起動と停止状況を表示する
不要サービスを停止するには
システム起動時に特定のサービスを起動する
サービスの起動、停止状況を初期設定(デフォルト)に戻す
telinit
ランレベルを切り替える
■-- 文法 --■
telinit [runlevel]
例)
runlevel 5
ランレベルを5に変更
※▲はスペースを表してます。
■ 説明
telinitコマンドはランレベルを切り替えるコマンドです。
telinitコマンドを実行するには設定したいランレベルを
引数として指定し、実行します。
また、telinitコマンドの実行にはroot権限が必要になり、
設定後は再起動して設定を有効にする必要があります。
■ 主なオプション
なし
■ 実行例
[pakira@Tiger ~]$ su - ←rootにユーザ切り替えを行う
パスワード: ←rootパスワードを入力する(パスワードは表示されません)
[root@Tiger ~]# runlevel ←現在のランレベルを確認します。
N 3 ←現在のランレベルは「3」に設定されています。
[root@Tiger ~]# telinit 5 ←ランレベルを5に設定します。
[root@Tiger ~]# runlevel ←設定後のランレベルを確認します。
3 5 ←ランレベルが「5」に変更されます。
■ ランレベルとモード
レベル:0 停止
レベル:1 シングルユーザモード
レベル:2 マルチユーザモード(テキストログイン、NFSサーバーは停止)
レベル:3 マルチユーザモード(テキストログイン)
レベル:4 未使用
レベル:5 マルチユーザモード(グラフィカルログイン)
レベル:6 再起動(リブート)
レベル:S シングルユーザモード(/etc/rc.d/rc.sysinitを読み込む)
runlevel
現在のランレベルと変更前のランレベルを表示する
■-- 文法 --■
runlevel
例)
runlevel
現在のランレベルと変更前のランレベルを表示する
※▲はスペースを表してます。
■ 説明
runlevelコマンドは現在のランレベルと変更前のランレベルを表示コマンドです。
ランレベルとは、Linuxの動作モードを表し、Linuxではランレベルがいくつか
定義されていて、ランレベルを変更することによって Linuxの動作を変えることができます。
ちなみに起動時のデフォルトランレベルは、/etc/inittabに記述されており、
runlevelコマンドを実行する場合にはrootでなければなりません。
■ 主なオプション
なし
■ 実行例
▼ 現在のランレベルと変更前のランレベルを表示する
[root@Tiger ~]# runlevel ←ランレベルを表示します。
5 3 ←現在のランレベルは「3」です。
↑
行頭の「5」は現在のランレベルにする前のランレベルが表示され、
前回ランレベルがない場合は「N」と表示されます。
■ ランレベルとモード
レベル:0 停止
レベル:1 シングルユーザモード
レベル:2 マルチユーザモード(テキストログイン、NFSサーバーは停止)
レベル:3 マルチユーザモード(テキストログイン)
レベル:4 未使用
レベル:5 マルチユーザモード(グラフィカルログイン)
レベル:6 再起動(リブート)
レベル:S シングルユーザモード(/etc/rc.d/rc.sysinitを読み込む)
pstree
■-- 文法 --■
pstree [オプション] [ プロセスID or ユーザ名 ]
例)
pstree
動作中のプロセスをツリー形式に表示する
※▲はスペースを表してます。
■ 説明
動作中のプロセスをツリー形式に表示するコマンドです。
■ 主なオプション
-a コマンドライン引数も表示する
-c 同じサブツリーを圧縮して表示しない
-G グラフィカルに表示する
-h 現在のプロセスのツリーを強調して表示する
-n プロセスIDでソートして表示する
-p プロセス IDも表示する
■ 実行例
▼ ツリー形式で表示する
[pakira@Tiger ~]$ pstree
init-+-atd
|-auditd-+-audispd---{audispd}
| `-{auditd}
|-automount---4*[{automount}]
|-crond
|-events/0
|-gpm
|-httpd-+-9*[httpd]
| `-12*[rotatelogs]
|-khelper
|-klogd
|-ksoftirqd/0
|-kthread-+-aio/0
| |-ata/0
| |-ata_aux
| |-cqueue/0
| |-kacpid
| |-kauditd
| |-kblockd/0
| |-kgameportd
| |-khubd
| |-2*[kjournald]
| |-kmpath_handlerd
| |-kmpathd/0
| |-kpsmoused
| |-kseriod
| |-ksnapd
| |-kstriped
| |-kswapd0
| `-2*[pdflush]
|-migration/0
|-6*[mingetty]
|-mysqld_safe---mysqld---8*[{mysqld}]
|-postmaster-+-postmaster
| `-postmaster---postmaster
|-proftpd
|-smartd
|-sshd---sshd---sshd---bash---pstree
|-syslogd
|-udevd
|-watchdog/0
`-xinetd
vmstat
CPU、プロセス、メモリに関する情報を表示する
■-- 文法 --■
vmstat [オプション] [間隔(sec) [回数] ]
例)
vmstat▲1▲10
1秒間隔で10回表示する
※▲はスペースを表してます。
■ 説明
vmstatコマンドは、CPU、プロセス、メモリになどの統計情報を表示するコマンドです。
■ 主なオプション
-V vmstatコマンドのバージョンを表示する
-n ヘッダー(項目)を一度だけ表示する
-a メモリのアクティブ/非アクティブ情報について表示する
-d ディスクに関する統計情報を表示する
-p 指定したパーティションの統計情報を表示する
-s 各項目の情報を詳しく表示する
-m 各項目の情報の一覧表示(?)
-S 各項目の情報を指定した単位で表示する
■ vmstatコマンドの表示項目
・procs
r 実行待ちプロセス数
b スリープ状態にあるプロセス数
w スワップアウトされているが、実行可能なプロセス数
・memory
swpd:仮想メモリ総量(kB)
free:空きメモリ(kB)
buff:バッファ用メモリ(kB)
cache:キャッシュ用メモリ(kB)
・swap
si:ディスクからスワップインされているメモリ
so:ディスクからスワップアウトされているメモリ
・io
bi:ブロックデバイスに送られたブロック
bo:ブロックデバイスから受け取ったブロック
・system
in:1秒あたりの割り込み回数
cs:1秒あたりのコンテキストスイッチの回数
・cpu
us:CPUの総時間に対するユーザ時間のパーセンテージ
sy:CPUの総時間に対するシステム時間のパーセンテージ
id:CPUの総時間に対するアイドル時間のパーセンテージ
wa:CPUの総時間に対するIO 待ち時間のパーセンテージ
st:仮想マシンから盗まれた時間
■ 実行例
▼ 統計情報を表示する
[pakira@Tiger ~]$ vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 490500 47268 401036 0 0 93 12 732 76 1 4 93 3 0
------------------------------------
▼ 1秒間隔で10回表示する
[pakira@Tiger ~]$ vmstat 1 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 490376 47580 401036 0 0 79 10 729 68 1 3 94 2 0
0 0 0 490376 47580 401036 0 0 0 0 708 28 0 0 100 0 0
0 0 0 490376 47580 401036 0 0 0 0 701 23 0 0 100 0 0
0 0 0 490376 47580 401036 0 0 0 0 688 23 0 0 100 0 0
0 0 0 490376 47580 401036 0 0 0 0 696 29 0 0 100 0 0
0 0 0 490376 47580 401036 0 0 0 0 683 21 0 0 100 0 0
0 0 0 490376 47580 401036 0 0 0 0 711 27 0 0 100 0 0
0 0 0 490376 47580 401036 0 0 0 0 686 25 0 0 100 0 0
0 0 0 490376 47588 401028 0 0 0 32 717 29 0 1 94 5 0
0 0 0 490376 47588 401036 0 0 0 0 710 23 0 0 100 0 0
------------------------------------
▼ ディスク情報の表示
[pakira@Tiger ~]$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
ram1 0 0 0 0 0 0 0 0 0 0
ram2 0 0 0 0 0 0 0 0 0 0
ram3 0 0 0 0 0 0 0 0 0 0
ram4 0 0 0 0 0 0 0 0 0 0
ram5 0 0 0 0 0 0 0 0 0 0
ram6 0 0 0 0 0 0 0 0 0 0
ram7 0 0 0 0 0 0 0 0 0 0
ram8 0 0 0 0 0 0 0 0 0 0
ram9 0 0 0 0 0 0 0 0 0 0
ram10 0 0 0 0 0 0 0 0 0 0
ram11 0 0 0 0 0 0 0 0 0 0
ram12 0 0 0 0 0 0 0 0 0 0
ram13 0 0 0 0 0 0 0 0 0 0
ram14 0 0 0 0 0 0 0 0 0 0
ram15 0 0 0 0 0 0 0 0 0 0
sda 26407 10882 882212 222469 4068 10730 118380 435352 0 122
dm-0 36013 0 878506 518629 14797 0 118376 1562409 0 122
dm-1 112 0 896 890 0 0 0 0 0 0
hdc 13 23 144 30 0 0 0 0 0 0
fd0 0 0 0 0 0 0 0 0 0 0
md0 0 0 0 0 0 0 0 0 0 0
------------------------------------
uptime
システムの稼働時間を表示する
■-- 文法 --■
例)
uptime
システムの稼働時間を表示する
※▲はスペースを表してます。
■ 説明
uptimeコマンドは、システムが起動してからの稼動時間を表示します。
システムを起動して、どのくらいそのシステムが稼動しているのか確認する場合に使用します。
稼働時間のほかに、次のような情報も同時に表示します。
・ 現在の時刻
・ システム稼動時間
・ 現在ログインしているユーザ数
・ ロードアベレージ(過去1分間、5分間、15分間)
※ロードアベレージとは、システムにかかっている負荷のことを言います。括弧の中の時間の平均負荷を表示します。
uname
OS情報を表示する
■-- 文法 --■
例)
uname
OS情報を表示する
※▲はスペースを表してます。
■ 説明
unameコマンドはOSの情報を表示します。たとえば、OSのリリース番号や、ハードウェア情報などが表示されます。オプションを指定することで、ホスト名や、カーネルコンパイル日時などの情報も表示することができます。
last
ログイン、ログアウトの履歴を表示する
■-- 文法 --■
例)
last
ログイン、ログアウトの履歴を表示する
※▲はスペースを表してます。
■ 説明
lastコマンドは、システムにログインした履歴を表示するコマンドです。
Linuxのようなサーバー利用されいるOSは、たくさんのユーザがログインし利用します。誰がいつ、どのくらいの頻度でアクセスしたのかなどを確認する場合に使用します。
また、ユーザ名に自分のアカウントを指定することで、自分のログイン履歴を確認できます。これにより、自分が知らないログイン履歴がないか、確認することもでき、ユーザアカウントが不正利用されていないかの確認ができます。
また、別のユーザ名を指定することで、指定したユーザのログイン履歴を確認することができます。
dmesg
システムのメッセージを表示する
■-- 文法 --■
例)
dmesg
システムのメッセージを表示する
※▲はスペースを表してます。
■ 説明
dmesgコマンドは、起動時のシステムメッセージを表示します。また、ディスク容量が一杯でデータやファイルを書き込めなかった場合のエラーメッセージも表示します。
主にシステム障害などが発生した場合などにこのdmesgコマンドを使用して、障害原因の追究などに使います。
ntpdate
サーバーの時刻を合わせる
■-- 文法 --■
例)
ntpdate eric.nc.u-tokyo.ac.jp
サーバーの時刻を合わせる
※▲はスペースを表してます。
■ 説明
ntpdateコマンドは、インターネットに存在するタイムサーバー(以下 NTPサーバー)へ接続し、自身の時刻を修正するコマンドです。サーバーの時刻がずれてしまうと、ファイルの更新日やメールの配信日時、バッチ処理などで、様々な問題が生じます。このような問題をさけるために、ntpdateコマンドを定期的に実行し、常に時刻を正確に保つことができます。このコマンドはスーパーユーザ権限で実行する必要があります。
halt
システムをシャットダウン(終了)、再起動する
■-- 文法 --■
例)
halt▲(オプション)
システムを停止する
※▲はスペースを表してます。
■ 説明
haltコマンドはシステムを停止し、再起動やシャットダウンの準備をする
コマンドです。haltコマンドの引数に「-p」オプションを付加して実行することで、
システムを停止後に電源を落とすことができます。
また、haltコマンドは一般ユーザでも実行することが可能であり、
下記のとおりディストリビューションごとに動作が異なります。
一般ユーザでhaltコマンドを実行した場合の各ディストリビューションの挙動
RedHat系:一般ユーザで実行可能。ただし、リモートホストからコマンドを実行した場合は無視される
Vine Linux:rootユーザのパスワードを求め、正しい場合停止プロセスを実行
Turbolinux:rootユーザのパスワードを求め、正しい場合停止プロセスを実行
Debian GNU/Linux:一般ユーザでの実行不可
Plamo Linux:一般ユーザでの実行不可
haltコマンドとshutdownコマンドの違い
haltはshutdownコマンドが利用できない場合に利用されることが多く、
その多くは緊急停止時に実行されることが多いです。
shutdownはマルチユーザモードを配慮して、シャットダウン時には
使用しているユーザへシステム停止のアナウンスがターミナルを通じて
行われますが、haltコマンドの場合、これがなく即システム停止処理を行います。
通常のシステム停止には「shutdown」、緊急時のシステム停止は「halt」と覚えると良いでしょう。
free
Linuxのメモリ状況を確認する
■-- 文法 --■
free▲(オプション)
例)
free▲-m
Linuxのメモリ状況を確認する
※▲はスペースを表してます。
■ 説明
freeコマンドはLinuxのメモリ状況を確認するコマンドです。表示される項目はメモリの合計値、使用領域、空き領域、バッファ、キャッシュがあり。これらメモリ状況をリアルタイムで表示します。またこのfreeコマンドは、「/proc/meminfo」ファイルを元に表示していますので、「cat /proc/meminfo」と実行しても同じ結果が得られます。
■ freeコマンドの表示項目
total:全メモリ容量
used:使用中のメモリ容量
free:空きメモリ容量
shared:共有メモリ容量
buffers:カーネルが使用するディスクバッファ容量
cached:キャッシュメモリ容量
source
シェルの設定ファイルを読み込む
■-- 文法 --■
source▲設定ファイル名
例)
source▲./.bashrc
シェルの設定ファイルを読み込む
※▲はスペースを表してます。
■ 説明
エイリアスや変数の設定などは、bashの設定ファイル(.bashrc)に記述されており、ログイン時やログアウト時に読み込まれることで設定を反映させています。しかし、これらの設定を変更した場合、再度ログアウトまたはログインしなおさなければ設定が反映しません。
そのような場合にこのsourceコマンドを実行すると変更内容を即時反映させることができます。
unset unsetenv
シェル変数・環境変数を削除する
■-- 文法 --■
unset▲変数
unsetenv▲環境変数
例)
unset▲$HOME
環境変数を削除する(bsh)
※▲はスペースを表してます。
■ 説明
unsetコマンドはbshでは環境変数とシェル変数を削除します。
またcshでは、シェル変数を削除します。
cshで環境変数を削除するにはunsetenvコマンドを使用します。
実行する際にはそれぞれのコマンドの引数として
シェル変数名及び、環境変数名をそれぞれ指定します。
env
環境変数を設定・確認する(bsh/csh)
■-- 文法 --■
env▲(オプション)▲(環境変数=値)
例)
env▲HOME=/home/pakira
環境変数を設定する
※▲はスペースを表してます。
■ 説明
envコマンドは現在設定されている環境変数を確認・設定するコマンドです。
引数無しでenvコマンドを実行した場合には、設定されている環境変数を
すべて表示します。
また、環境変数を設定する場合には、「環境変数=値」という形式で指定して設定します。
envコマンドはbsh、cshともに共通で使用することができます。
但し、envコマンドで設定した環境変数はログアウトすると無効になります。
setenv
環境変数を設定する(csh)
■-- 文法 --■
setenv▲(環境変数▲値)
例)
setenv▲HOME▲/home/pakira
環境変数を設定する
※▲はスペースを表してます。
■ 説明
setenvコマンドは、cshので環境変数を設定するコマンドです。
コマンドを実行する際には「環境変数▲値」という形式で
空白で区切って環境変数を指定します。
また、複数の値を設定する際には、コロン(;)で区切って指定します。
設定した変数を参照するには変数名の前に「$」をつけて変数を指定します。
setenvコマンドのみを実行した場合には、
現在設定されている環境変数一覧を表示します。
export
環境変数を設定する(bsh)
■-- 文法 --■
export▲(環境変数=値)
例)
export▲HOME=/home/pakira
環境変数を設定する
※▲はスペースを表してます。
■ 説明
exportコマンドはbshの環境変数を設定、有効にするコマンドです。コマンドを実行する際には「環境変数=値」という形式で環境変数を指定し、複数の値を設定する際には、コロン(;)で区切って指定します。
また、設定した変数を参照するには変数名の前に「$」をつける必要があります。exportコマンドのみを実行した場合には、現在設定されている環境変数一覧を表示します。
set
シェル変数を表示・設定する
■-- 文法 --■
set▲(変数=値)
例)
set▲NAME=pakira
シェル変数を設定する
※▲はスペースを表してます。
■ 説明
setコマンドはシェル内部のコマンドで、シェル変数を表示したり、
設定したりするコマンドです。
シェル変数を表示する場合にはsetコマンドのみを実行します。
また、シェル変数を設定する場合には、シェルによって異なりますが、
bsh、bashの場合は「変数=値」で、cshの場合は「set 変数=値」と指定し実行します。
また、設定した変数を参照するには変数名の前に「$」をつける必要があります。
reboot
システムを再起動する
■-- 文法 --■
reboot
例)
reboot
システムを再起動する
※▲はスペースを表してます。
■ 説明
rebootコマンドはシステムを再起動するコマンドです。
実行する際には、引数なしで実行します。
このコマンドを実行する際にはスーパーユーザ権限が必要です。
shutdown
システムをシャットダウン(終了)、再起動する
■-- 文法 --■
shutdown▲(オプション)▲(時間)▲(メッセージ)
例)
shutdown▲-h▲now
システムをシャットダウンする
※▲はスペースを表してます。
■ 説明
shutdownコマンドは、システムのシャットダウン(終了)、再起動をする際に使用するコマンドです。
shutdownコマンドが実行されると、ユーザーへシステムが終了するメッセージが送付されます。
これは、Linuxはマルチユーザ環境なため、ログインしているユーザーに利用の終了を促す必要があるためです。
また、shutdownコマンドは引数に時間を指定することで、指定した時間分の猶予をもってシステムを終了します。
なお、shutdownコマンドはスーパーユーザー(root)のみ実行することができます。
logout
ログアウトする
■-- 文法 --■
logout
例)
logout
ログアウトする
※▲はスペースを表してます。
■ 説明
logoutコマンドはシステムからログアウトするためのコマンドです。
実行する際には引数などの指定はありません。
実行するとログアウトが実行され、ログインプロンプトが表示されます。
exit
ログアウトする
■-- 文法 --■
exit
例)
eixt
ログアウトする
※▲はスペースを表してます。
■ 説明
exitコマンドは、Linuxシステムからログアウトする際に使用するコマンドです。
同じログアウトコマンドにlogoutコマンドがあります。
logoutコマンドは、サブシェルを使用できませんが、exitコマンドならサブシェルを実行できます。
ログインシェルを利用していない状態でlogoutを実行すると、ログアウトすることが出来ませんが、
exitコマンドは、現在利用しているシェルのプロセスを終了させ、最後にログインシェルを
終了することでログアウトすることが出来ます。
cal
カレンダーを表示する
■-- 文法 --■
cal (オプション) (月 西暦)
例)
cal▲カレンダーを表示する
※ ▲はスペースを表してます。
■ 説明
calコマンドは、コンソール画面上でカレンダー表示をするコマンドです。
オプションを設定することで、表示方法をさまざまな形に変えることができます。
hostname
サーバーのホスト名を表示、設定する
■-- 文法 --■
hostname (オプション) (ホスト名)
例)
hostname▲-s▲pakira
ホスト名を表示する
※▲はスペースを表してます。
■ 説明
hostnameコマンドは、システムに設定されているホスト名を表示するコマンドです。オプションを指定せずにコマンドを実行するとFQDN(Full Qualified Domain Name)と呼ばれるドメインを含めた形のホスト名を表示します。
また、hostnameコマンドの引数として、ホスト名を指定すると、システムのホスト名を変更することができます。このホスト名の変更を実行できるのはスーパーユーザ(root)のみです。ホスト名とは、ネットワーク上でコンピュータを区別するために付けられる名前になり、windowsネットワークで表示される
コンピュータ名に相当します。
domainname
サーバーのドメイン名を表示、設定する
■-- 文法 --■
domainname (ドメイン名)
例)
domainname▲pakira
ドメイン名を表示する
※▲はスペースを表してます。
■ 説明
domainnameコマンドは、NISドメイン名を表示、設定することができます。NISドメイン名を設定するには、domainnameコマンド名の引数にドメイン名を指定して実行することで、設定、変更することができます。
ただし、domeinnameコマンドで確認、設定できるのは、NIS/YPのドメイン名になります。DSNドメイン名とはことなりますので、注意してください。
date
現在の日付を表示、設定、変更する
■-- 文法 --■
date (オプション) (日付)
例)
date
現在の日時を表示する
※▲はスペースを表してます。
■説明
dateコマンドはLinuxのシステム日時を表示、設定するコマンドです。
スーパーユーザ(root)はdateコマンドのオプションとして、「-s」を指定し、
引数に日時を指定することで、システム日付を変更することができます。
また、dateコマンドは、書式を指定することで日時の表示方法を変更することができます。
history
コマンド実行履歴を表示する
■-- 文法 --■
例)
history
コマンド実行履歴を表示する
※▲はスペースを表してます。
■ 説明
historyコマンドは、ユーザーが実行したコマンドの履歴を表示するコマンドです。
このhistoryコマンドで表示された結果は、ホームディレクトリの「.bash_history」に格納されます。
ここに格納された結果は、コマンドラインから簡単に呼び出すことができ、
コマンドを再実行する際、コマンド入力が必要なくなるため非常に便利な機能です。
ただし、環境によっては、セキュリティ上好ましくないということで履歴機能を
無効している場合があります。その場合は使用出来ませんので注意が必要です。
