システム管理
システム管理:記事リスト
システム管理のカテゴリーには以下の記事がリストされています。
SWAP領域を拡張する(システム再起動・サービス停止なし)
下記の様に、メモリ不足によりエラーになった場合などに有効です。
実行環境は、CentOS7.6。
5月 14 10:02:02 MAIL-SV-001 clamd[4758]: daemonize() failed: Cannot allocate memory
5月 14 10:02:03 MAIL-SV-001 systemd[1]: Failed to start clamd scanner (amavisd) daemon.
SWAP領域拡張手順
1.システムメモリ状況を確認します。SWAP領域の空きが94MBしかないことが分かります。
# free -h
total used free shared buff/cache available
Mem: 1.8G 602M 668M 2.0M 566M 1.1G
Swap: 2.0G 1.9G 94M
CentOS8 カーネルバージョン(kernel version)を確認する
今回は、それらの確認方法を紹介します。
CentOS8.0をインストールした直後の
カーネルバージョン(kernel version)は、4.18になります。
CentOS8のカーネルバージョン(kernel version)をumameで確認する
umameコマンドにオプション「-a」を付与して実行すると、すべての情報を表示します。
カーネルバージョンのみ表示したい場合は、
オプション「-r」を付与します。
$ uname -a Linux Tiger 4.18.0-80.el8.x86_64 #1 SMP Tue Jun 4 09:19:46 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux $ uname -r 4.18.0-80.el8.x86_64
CentOS 古いカーネルを削除する(boot領域を確保)
過去更新したカーネルが/boot領域に蓄積され、
容量を圧迫してしまい、更新が出来なくなくなる場合があります。
そのような場合は、古いカーネルを削除することで解決できます。
ちなみに、Red Hatでは下記のようにアナウンスされています。
新しいカーネルで問題がある可能性を考慮し、古いカーネルの維持を強くお薦めします。
アップグレードの実行
これは、カーネルアップデートした後に、
万が一問題が発生しても、あえて削除せず古いカーネルを残す事で、
元に戻せるようにしています。
しかし、旧カーネルを残した状態で、新カーネルの動作確認が充分にできれば、
古いカーネルは削除しても問題ありません。
古いカーネルの削除を実行
1./boot領域のサイズを確認します。$ df -h /boot ファイルシス サイズ 使用 残り 使用% マウント位置 /dev/sda1 497M 232M 266M 47% /boot
2.インストールされているカーネルの確認をします。
$ rpm -q kernel kernel-3.10.0-957.1.3.el7.x86_64 kernel-3.10.0-957.21.3.el7.x86_64 kernel-3.10.0-957.27.2.el7.x86_64 kernel-3.10.0-1062.4.3.el7.x86_64 kernel-3.10.0-1062.9.1.el7.x86_64
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
CentOS7でrootのSSHログインを無効化する
/etc/ssh/sshd_configファイルを編集します。
SSHは、暗号化された状態でリモート接続することができるサービスで、
sshdデーモンが提供しています。
CentOSでは、デフォルト環境のままだと、
SSHでのrootログインが行えてしまいます。
インターネットに公開するサーバーを構築する場合、
その設定のままだとセキュリティ上非常に好ましくないので
無効化する必要があります。
CentOS7でfirewalldの確認と停止(ファイアウォール)
CentOS7のファイアウォールでは、これまでのCentOS6系で使用されていた
iptablesよりもfirewalldを使用することが推奨されています。
※CentOS7でもiptablesが使用できます。その場合、firewalldを停止する必要があります。
逆に、firewalldを使用する場合は、iptablesを停止する必要があります。
インターネットに公開するサーバーでは、ファイアウォールは必須になりますが、
信頼できる内部ネットワーク、開発環境及びテスト環境では無効にしておいた方が
良い場合もあります。
本ページでは、CentOS7から推奨されているfirewalldの状態の確認と、
停止方法を紹介します。
CentOS7でSELinuxを無効化する
ディレクトリビューションではありません。
現在のLinuxシステムの問題点として挙がっているものに、
root(スーパーユーザー)の権限が強すぎるというものがあります。
正規のユーザーが、rootを使用する分には問題ないのですが、
万が一、不正ユーザーがrootを奪取した場合、
システムを完全に乗っ取られてしまい、被害が大きくなりすぎるのです。
そこで誕生したのがSELinuxになります。
アメリカ国家安全保障局 (NSA) が開発し、GPL下で提供しています。
機能を簡単に説明すると、rootの権限を弱くすることがSELinuxの役割になります。
rootに集中している権限を、ユーザーやプロセスごとに振り分けることで、
root権限を奪取されたとしても、被害を限定的に抑えるというのが目的になり、
前提として、サーバーに侵入された場合に、その機能が役立つというものです。
従って、サーバー侵入を防ぐというものではありません。
また、扱うデータの重要度や他のセキュリティ対策での防衛、
設定の複雑さなどからくるサーバー管理のしにくさなどを
総合的に鑑みて、敢えてSELinuxを無効にしているシステムも多く存在します。
CentOS7でSElinux(Security-Enhanced-Linux)を無効化する手順を紹介します。
SELinux無効化設定を行う前に、現在のSElinuxの状態を確認しましょう。
SELinuxの状態を確認するには、getenforceコマンドを使用します。
このコマンドを実行すると、SELinuxの状態が確認できます。
ステータスは、次の通りです。
| Enforcing | 有効な状態 |
| Permissive | 無効な状態であるが、SELinuxのログは記録している状態 |
| Disabled | 無効な状態 |
CentOS7バージョンアップ手順
CentOSを最新バージョンにアップデートする手順を紹介します。
本作業を行うことで、常に最新のCentOS を利用することが可能になります。
注意
実行タイミングやサーバー環境によっては、システムやアプリケーションの誤作動や
不具合、場合によっては、サーバー自体が起動しなくなる可能性があります。
そうなっても良いように、実行する場合は、必ずテスト環境(壊れても良い環境)で
事前確認を行ってください。
今回の例では、CentOS7.4を使用していますが、
他のバージョンでも基本的に手順は同じになります。
1.Linux のバージョンを確認します。
$ su -
パスワード: ←rootパスワードを入力します(パスワードは入力しても表示されません)
# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
2.カーネルバージョンを確認します。
# uname -a
Linux Tiger 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
3.カーネルをアップデート対象から除外する設定を行います。
バージョンアップの多くのトラブル原因は、
カーネルアップデートなので、取り敢えず除外します。
13 行目に「exclude=kernel*」を追加します。
# 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
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_repor
t_page.php?category=yum
distroverpkg=centos-release
exclude=kernel* ←「exclude=kernel*」を追加します。
--------------------------------------------------------------------
編集後、「:wq」で保存終了します。
4.yumアップデートを実施します。
yum コマンドでアップデートを実施します。
途中、処理を続行するか問われるので「y」を入力します。
※表示される内容は、実行タイミングによって異なります。
--------------------------------------------------------------------
# yum update
読み込んだプラグイン:fastestmirror, langpacks
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): extras/7/x86_64/primary_db | 147 kB 00:00:03
(2/4): updates/7/x86_64 /primary_db | 2.0 MB 00:00:08
〜中略〜
libinput x86_64 1.8.4 -2.el7 base 142 k
libwayland-client x86_64 1.14.0-2.el7 base 32 k
libwayland-cursor x86_64 1.14.0 -2.el7 base 20 k
libwayland-server x86_64 1.14.0 -2.el7 base 38 k
llvm-private x86_64 5.0.0 -3.el7 base 20 M
lz4 x86_64 1.7.5 -2.el7 base 98 k
mesa-libwayland-egl x86_64 17.2.3 -8.20171019.el7 base 17 k
unbound-libs x86_64 1.6.6 -1.el7 base 405 k
volume_key-libs x86_64 0.3.9-8.el7 base 140 k
トランザクションの要約
============================================================
インストール 4 パッケージ(+20 個の依存関係のパッケージ)
更新 613 パッケージ ←この辺りの数字は、実行タイミングによって異なります。
合計容量: 642 M
総ダウンロード容量: 641 M
Is this ok [y/d/N]: y ←「y」を入力します。
〜中略〜
xorg-x11-server-common.x86_64 0:1.19.5-5.el7
xorg-x11-xinit.x86_64 0:1.3.4-2.el7
yum.noarch 0:3.4.3-158.el7.centos
yum-plugin-fastestmirror.noarch 0:1.1.31 -45.el7
yum-utils.noarch 0:1.1.31-45.el7
置換:
grub2.x86_64 1:2.02-0.64.el7.centos grub2 -tools.x86_64 1:2.02-0.64.el7.centos
完了しました!
--------------------------------------------------------------------
5.サーバーを再起動します。
# shutdown -r now
6.再起動後、Linux のバージョンを確認します。
下記の例では、CentOS7.5 にバージョンアップしていますが、
実行タイミングによってバージョンが異なる場合があります。
$ su -
パスワード:
# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
7.カーネルバージョンを確認します。
カーネルのバージョンはアップデートから除外しているので、変わっていません。
# uname -a
Linux Tiger 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
8.カーネルのバージョンアップをします。
13 行目の「exclude=kernel*」行頭に「#」を追加します。
# 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
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_repor
t_page.php?category=yum
distroverpkg=centos-release
#exclude=kernel* ←行頭に「#」を追加します。
--------------------------------------------------------------------
編集後、「:wq」で保存終了します。
9.yumアップデートを実施します。
yum コマンドでアップデートを実施します。
途中、処理を続行するか問われるので「y」を入力します。
※表示される内容は、実行タイミングによって異なります。
--------------------------------------------------------------------
# yum update
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.nara.wide.ad.jp
* extras: ftp.nara.wide.ad.jp
〜中略〜
---> パッケージkernel-tools-libs.x86_64 0:3.10.0-693.el7 を更新
---> パッケージkernel-tools-libs.x86_64 0:3.10.0-862.3.2.el7 をアップデート
--> 依存性解決を終了しました。
依存性を解決しました
============================================================
Package アーキテクチャーバージョン リポジトリー 容量
============================================================
インストール中:
kernel x86_64 3.10.0-862.3.2.el7 updates 46 M
kernel-devel x86_64 3.10.0-862.3.2.el7 updates 16 M
更新します:
kernel-headers x86_64 3.10.0-862.3.2.el7 updates 7.1 M
kernel-tools x86_64 3.10.0-862.3.2.el7 updates 6.2 M
kernel-tools-libs x86_64 3.10.0-862.3.2.el7 updates 6.2 M
トランザクションの要約
============================================================
インストール 2 パッケージ ←この辺りの数字や内容は、実行タイミングによって異なります。
更新 3 パッケージ
総ダウンロード容量: 81 M
Is this ok [y/d/N]: y ←「y」を入力します。
〜中略〜
検証中 : kernel-headers-3.10.0-693.el7.x86_64 7/8
検証中 : kernel-tools-libs-3.10.0-693.el7.x86_64 8/8
インストール:
kernel.x86_64 0:3.10.0-862.3.2.el7 kernel -devel.x86_64 0:3.10.0-862.3.2.el7
更新:
kernel-headers.x86_64 0:3.10.0-862.3.2.el7 kernel-tools.x86_64 0:3.10.0-862.3.2.el7
kernel-tools-libs.x86_64 0:3.10.0-862.3.2.el7
完了しました!
--------------------------------------------------------------------
10.サーバーを再起動します。
# shutdown -r now
11.カーネルバージョンを確認します。
カーネルがバージョンアップしています。
$ su -
パスワード:
[root@Tiger ~]# uname -a
Linux Tiger 3.10.0-862.3.2.el7.x86_64 #1 SMP Mon May 21 23:36:36 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
本手順を実施することで、常に最新のCentOS を利用することが出来ます。
しかし、冒頭でも説明しましたが、アップデートによるトラブルが発生する場合も
ありますので、実施する際は、必ずテスト環境で問題がないことを確認してから、
本番環境で実施してください。
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でログ容量制限を設定する
ログが肥大化すると、システムファイルの空き容量が無くなり、
システムの動作に悪影響を及ぼします。
そのため、ログ容量を予め設定しておくのが一般的です。
CentOS7から採用されているjournaldは、デフォルトでファイルシステムの
10%がログの容量として割り当てられています。
また、journaldには、ログの肥大化を防ぐために、ログの最大サイズの指定して、
古いログを自動的に削除するログローテート機能、従来のsyslogデーモン、
カーネルログバッファ(kmsg)にログ転送するなどの機能があります。
■ログの容量制限をする
journaldで生成されるログの容量を制限するには、
「/etc/systemd/journald.conf」ファイルの「SystemMaxUse」パラメータを設定します。
下記例ではログの容量を256MBに制限しています。
# vi /etc/systemd/journald.conf
以下、ファイル内容
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# See journald.conf(5) for details
[Journal]
#Storage=auto
Storage=persistent
#Compress=yes
#Seal=yes
#SplitMode=login
#SyncIntervalSec=5m
#RateLimitInterval=30s
#RateLimitBurst=1000
#SystemMaxUse=
SystemMaxUse=256M ←追加します。
追加したら「:wq」で保存終了します。
■journaldサービスを再起動します。
設定を変更したら、journaldサービスを再起動します。
# systemctl restart systemd-journald.service
■journaldで管理されているすべてのログ容量を確認する
journalctlコマンドに「--disk-usage」を付けて実行します。
# journalctl --disk-usage
Journals take up 24.0M on disk.
CentOS7でログ保存設定をする
CentOS7のjournaldのログファイルは、/run/log/journalディレクトリに保存されます。
しかし、/runディレクトリは、tmpsファイルシステムでマウントされているため、
OSの再起動を行うと、/run/log/journalディレクトリ配下に保存されている
ログファイルは、削除されてしまいます。
# df -HT | grep tmpfs
devtmpfs devtmpfs 504M 0 504M 0% /dev
tmpfs tmpfs 514M 0 514M 0% /dev/shm
tmpfs tmpfs 514M 14M 501M 3% /run ←tmpfsでマウント
tmpfs tmpfs 514M 0 514M 0% /sys/fs/cgroup
そこで、OSを再起動してもログが削除されないようにするには、
journaldの設定ファイル「/etc/systemd/journald.conf」に
「Storage=persistent<」を追加します。
■ファイルを編集します。
# vi /etc/systemd/journald.conf
以下、ファイル内容
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# See journald.conf(5) for details
[Journal]
#Storage=auto
Storage=persistent ←追加する
追加したら「:wq」で保存終了します。
■journaldサービスを再起動します。
# systemctl restart systemd-journald.service
「Storage=persistent」設定を行うと、ログの保存先ディレクトリが、
「/run/log/journal」から「/var/log/journal/」に変更され、
その配下にmachine-id名が付与されたディレクトリが作成されます。
そのディレクトリ内にログが永続的に保存されます。
# ls -l /var/log/journal/
合計 0
drwxr-xr-x 2 root root 27 8月 8 15:40 c035188450f4455691b947425145773d
※「c035188450f4455691b947425145773d」がmachine-id名が作成されたディレクトリ
※machine-idは、/etc/machine-idファイルで確認できます。
また、/etc/systemd/journald.confファイルに「Storage=auto」を設定した場合、
「/var/log/journal/」ディレクトリが存在する場合は、「/var/log/journal/」に保存し、
存在しない場合は、「/run/log/journal」に保存します。
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)
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 |
CentOSでCtrl-Alt-Deleteを無効にする
システムをあまり知らないユーザーが、Windowsと誤ってCtrl-Alt-Deleteを実行し、
CentOSが再起動してしまう事があります。
それを防ぐには、Ctrl-Alt-Deleteを無効化します。
CentOS5とCentOS6では設定方法が異なります。
■CentOS6でCtrl-Alt-Deleteを無効化する
--------------------------------------------------------------------------------------------------
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# vi /etc/init/control-alt-delete.conf
# control-alt-delete - emergency keypress handling
#
# This task is run whenever the Control-Alt-Delete key combination is
# pressed. Usually used to shut down the machine.
#
# Do not edit this file directly. If you want to change the behaviour,
# please create a file control-alt-delete.override and put your changes there.
start on control-alt-delete
#exec /sbin/shutdown -r now "Control-Alt-Delete pressed"
↑行頭に「#」を挿入し無効化します。
--------------------------------------------------------------------------------------------------
■CentOS5でCtrl-Alt-Deleteを無効化する
--------------------------------------------------------------------------------------------------
[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# vi /etc/inittab
#
# inittab This file describes how the INIT process should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg,
# Modified for RHS Linux by Marc Ewing and Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
# Trap CTRL-ALT-DELETE
#ca::ctrlaltdel:/sbin/shutdown -t3 -r now
↑行頭に「#」を挿入し無効化します。
--------------------------------------------------------------------------------------------------
シャドウパスワードの生成、更新を行う(pwunconv -v)
シャドウ化を解除された状態のパスワードを再びシャドウ化するには、pwunconvコマンドを実行します。
pwunconvコマンドは、パスワードファイル「/etc/passwd」から
シャドウファイル「/etc/shadow」を生成したり、シャドウ化されていない
パスワードをシャドウ化することが出来ます。
また、オプション「-v」を付けて「pwunconv -v」を実行すると、実行結果を表示できます。
なお、pwunconvコマンドはパスワードファイルとシャドウパスワードファイルの不一致があると、
正しく動作しないので、事前にpwckコマンドでチェックを行ってから実行します。
pwunconv、pwckコマンドを実行するにはroot権限が必要になります。
■シャドウパスワードの生成、更新を行う
---------------------------------------------------------------------------------------------
[pakira@Tiger ~]$ su - ←rootになります。
パスワード:
[root@Tiger ~]# ls /etc/shadow ←シャドウパスワードファイルの存在を確認します。
ls: cannot access /etc/shadow: そのようなファイルやディレクトリはありません
↑シャドウパスワードファイルは存在しません。
[root@Tiger ~]# cat /etc/passwd | grep tomohiro
↑パスワードファイルに存在するtomohiroのエントリーを確認します。
tomohiro:$6$xZ.YNf/O$KJovf6Z0qybKsxzDNpj4Vy31MrTILmsOqzszNQF.
Urc2hGm64emqm5TGh3Yy64dLFeqwMp7DW.sJuPUqgDv9l.
:501:501::/home/tomohiro:/bin/bash
↑2番目のカラムが暗号化されたパスワードになっています。
[root@Tiger ~]# pwck
ユーザ adm: ディレクトリ '/var/adm' が存在しません
ユーザ uucp: ディレクトリ '/var/spool/uucp' が存在しません
ユーザ gopher: ディレクトリ '/var/gopher' が存在しません
pwck: 変更はありません
[root@Tiger ~]# pwconv -v ←シャドウパスワードファイルを生成します。
Usage: pwconv
[root@Tiger ~]# ls /etc/shadow ←シャドウパスワードファイルの存在を確認します。
/etc/shadow ←シャドウパスワードファイルが生成され存在しています。
[root@Tiger ~]# cat /etc/passwd | grep tomohiro
↑パスワードファイルに存在するtomohiroのエントリーを確認します。
tomohiro:x:501:501::/home/tomohiro:/bin/bash
↑2番目のカラムが「x」でシャドウパスワードになっています。
---------------------------------------------------------------------------------------------
Linuxパスワードファイルをチェックする(pwck)
Linuxでは、パスワード登録されていないアカウントはロックされており、
登録する際にも、不適切なものは登録できない仕組みになっています。
従って、基本的に不適切なパスワードは使用できないようになっています。
しかし、システム管理上パスワードファイルをエディタで直接修正することもあり、
操作を誤ると不適切なパスワードファイルとなってしまう可能性があります。
こうした問題がないかをチェックするコマンドに「pwck」コマンドがあります。
このコマンドは以下の項目のチェックを行います。
・フィールド数が正しいか
・ユーザー名に重複がないか
・ユーザー及び、グループが有効なものであるか
・プライマリグループが有効なものであるか
・ホームディレクトリが正しいか
・ログインシェルが正しいか
もし問題を発見した場合、問題のあるエントリーの内容を表示し、
不整合の状態は望ましくないので削除を行うか確認します。
因みに、pwckコマンドを実行するにはroot権限が必要です。
■Linuxパスワードファイルをチェックする
---------------------------------------------------------------------------------------------------------
[pakira@Tiger ~]$ su - ←rootになります。
パスワード:
[root@Tiger ~]# pwck ←パスワードファイルをチェックします。
ユーザー adm: ディレクトリ '/var/adm' が存在しません
ユーザー uucp: ディレクトリ '/var/spool/uucp' が存在しません
ユーザー gopher: ディレクトリ '/var/gopher' が存在しません
pwck: 変更はありません
---------------------------------------------------------------------------------------------------------
今回表示されている「存在しません」のエントリーは、
パスワードファイル「/etc/passwd」に登録されていますが、
ホームディレクトリとして記述されているパスが存在しないため
エラーメッセージとして表示されています。
しかし、不正なものではないため削除は推奨されません。
mkpasswdコマンドでパスワードを生成する
セキュリティ保持の為には、定期的にパスワードを変更する必要があります。
しかし、どのようなパスワードにすれば良いか迷う場合もあります。
その場合、mkpasswdコマンドを使用するとランダムなパスワードを容易に生成できます。
mkpasswdコマンドがインストールされていない場合は、
下記コマンドを実行してインストールを行います。
※今回のインストール環境はCentOS6.5です。
※下記コマンドを実行するには、root権限が必要です。
Linuxで一時的に管理者(root)にスイッチする
管理者(root)にスイッチする場合、suコマンドを実行して管理者パスワードを
入力する必要があります。
suコマンド:ユーザーを切り替える
しかし、複数のユーザーがrootを利用する環境だと、パスワード変更の度に
全員に伝えなければなりません。そうなると、第三者にrootパスワードが
漏れる危険性がありますし、運用上とても面倒です。
その為、sudoコマンドを利用して、これらの危険性を防ぐことができます。
sudoコマンドは、root権限を必要とするコマンドを実行する際、
ユーザーパスワードを入力することで、一時的にrootのシェルを
利用してコマンド実行が出来るようになるコマンドです。
また、sudoコマンドには、パスワードキャッシュという仕組みがあり、
一度コマンドを使用して、有効なパスワードを入力すれば
そのユーザーについては、次回以降パスワード入力が
求められなくなります。ただし、これを永久的に許可したのでは
意味が無いので、デフォルトでは5分間だけパスワード入力が不要になります。
sudoコマンドを利用するには、/etc/sudoersファイルの編集が必要になります。
このファイルを編集するには、visudoコマンドを実行します。
visudoは、事前に変数のEDITORに定義されているエディタが起動して
/etc/sudoersファイルの編集が行え、ファイルのロック
(編集中他人が編集できないようにする)や、構文チェックが使用できます。
1.事前準備 /etc/sudoersファイルの編集
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# visudo ←visudoコマンドで/etc/sudoersファイルを編集します。
編集箇所はCentOS6.3の場合、104~105行目あたりにあります。
## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
%pakira ALL=(ALL) ALL ←sudoコマンドが使用できるようpakiraを追加します。
※行頭のハッシュマーク(#)はコメントアウトを意味し、
システム的にその行は無効になります。
上記の例では、pakiraグループに属するユーザーはsudoコマンドが
利用できるよう設定を行なっています。
特定のユーザーのみに許可したい場合は、「%」を付けずに
ユーザー名のみを記述します。
「%」はグループを意味しています。
また、下記の箇所を編集すると、
コマンド実行時にユーザーパスワードを求められなくなります。
編集箇所はCentOS6.3の場合、107~108行目あたりにあります。
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
%pakira ALL=(ALL) NOPASSWD: ALL
上記のどちらを設定するかは、
運用ルールやセキュリティ・ポリシーに則り決めることになります。
visudoを実行してviエディタが起動した場合は、
編集後、visudoを「:wq」で保存終了します。
viエディタの詳しい操作方法などは、下記ページで無料配布している
Linux無料マニュアルで習得できます。
Linuxサーバー構築マニュアル
2.sudoコマンド実行テスト
[root@Tiger ~]# logout ←rootから一般ユーザー「pakira」に戻ります。
[pakira@Tiger ~]$ whoami ←ユーザー名を表示します。
pakira ←pakiraユーザーであることを確認します。
[pakira@Tiger ~]$ tail /var/log/messages ←messagesファイルを表示します。
tail: `/var/log/messages' を 読み込み用でオープンできません: 許可がありません
↑権限がないのでエラーになります。(パーミッションエラー)
[pakira@Tiger ~]$ sudo tail /var/log/messages ←sudoコマンドでrootシェル得て実行します。
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for pakira: ←pakiraユーザーのコマンドを入力します。
Dec 19 03:14:24 Tiger kernel: EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts:
Dec 19 03:14:24 Tiger kernel: Adding 2064376k swap on /dev/mapper/vg_tiger-lv_swap. Priority:-1 extents:1 across:2064376k
Dec 19 03:14:24 Tiger kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
Dec 19 03:14:24 Tiger kernel: NET: Registered protocol family 10
Dec 19 03:14:24 Tiger kernel: lo: Disabled Privacy Extensions
Dec 19 03:14:24 Tiger kernel: eth0: link up
Dec 19 03:14:29 Tiger abrtd: Init complete, entering main loop
Dec 19 03:14:31 Tiger kernel: warning: `proftpd' uses 32-bit capabilities (legacy support in use)
Dec 19 03:14:31 Tiger proftpd[1395]: 127.0.0.1 - ProFTPD 1.3.4b (maint) (built 火 8月 21 2012 17:12:41 JST) standalone mode STARTUP
Dec 19 03:14:31 Tiger kernel: ip_tables: (C) 2000-2006 Netfilter Core Team
↑messagesファイルの内容が表示されます。
ファイル名データベースを更新する
Linuxで検索を行う場合、一般的に使用されるのはfindコマンドですが、
このコマンドは対象ディレクトリのパスを個別に検索するため、
検索対象ディレクトリに多くのサブディレクトリ、ファイルが存在すると
検索に時間が掛かります。
その為、予めファイル名データベースファイルを作成し、
そのファイルを対象としてlocateコマンドやslocateコマンドで
検索する方法が使われます。
ファイル名データベースは、デフォルトで毎日午前4時ごろ
自動更新されるようになっていますが、システムが稼働していない場合、
更新されないことになります。
そこで、更新を手動実行するには、updatedbコマンドを引数なしで実行します。
※実行にはroot権限が必要になります。
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# updatedb & ←カタログデータベースをバックグラウンドで更新します。
[1] 1470 ←ジョブ番号が表示されます。
なお、この処理はコンピュータのスペックやディレクトリ、ファイル数によって
長い時間を要する場合があります。実際に実行する場合は、システム負荷の
少ない時間にバックグラウンドジョブとして実行するのが望ましいです。
使用量の高いディレクトリを表示する
システムを使い続けると、気づかないうちにファイル数が増加して
多くの容量を消費している場合があります。
そこで、システム運用では定期的に使用量が多い
ディレクトリのチェックを行います。
また、ディレクトリだけではなく、ファイルサイズのチェックも行い、
無用にシステムリソースの無駄遣いが無いかのチェックにもなります。
使用量の高いディレクトリを表示する場合は、
duコマンドの他に、sortコマンド、headコマンドを
パイプで並べて実行します。
duコマンドでディスク容量を抽出し、
sortコマンドにオプション「-r」を付けて
容量の多い順を降順に並び替え、
headコマンドで上位のもの10個までを表示させます。
※アクセス権限の無いディレクトリのチェックをした場合、
エラーになるので注意が必要です。
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# du -s /var/* | sort -rn | head -10 ←/var配下ディレクトリをチェック対象にします。
40236 /var/lib
33168 /var/cache
27912 /var/www
3888 /var/log
132 /var/spool
100 /var/run
16 /var/lock
12 /var/db
8 /var/empty
4 /var/yp
IPv6アドレスを確認する
基本的にCentOSをインストールすると、従来のIPv4アドレスとIPv6アドレスが併用して割り当てられます。
IPv6のIPアドレスを確認するには、ifconfigコマンドを実行します。
IPv6のIPアドレスが表示される箇所は、eth0とloのinet6 addr:行になります。
[pakira@Tiger ~]$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:2C:4C:AA
inet addr:192.168.0.36 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: 2001:c90:****:****:****:****:****:4caa/64 Scope:Global
inet6 addr: fe80::****:****:****:****/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:133 errors:0 dropped:0 overruns:0 frame:0
TX packets:77 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15654 (15.2 KiB) TX bytes:12553 (12.2 KiB)
Interrupt:19 Base address:0x2000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:240 (240.0 b) TX bytes:240 (240.0 b)
inet6 addr: 2001の行は固定で割り当てたIPv6アドレスになり、
inet6 addr: fe80の行は、自動で割り当てられたIPv6アドレスになります。
fe80で始まる自動構成されたIPv6アドレスは、リンクローカルアドレスと呼ばれ、
隣接したコンピュータと通信できますが、インターネットとは直接通信できません。
IPv6アドレスを使用してインターネットに接続するには、プロバイダーに申請する
必要があります。
また、loのinet6 addr: 行は、Ipv6のループバックアドレスが表示されており、
システム共通で「::1」となっています。
RPMパッケージの更新情報を表示する
RPMパッケージは、インストールやアップグレード、削除などを行うと、
RPMパッケージデータベースに操作日時を記録します。
その操作日時、つまり更新情報を表示するには、
rpmコマンドにオプション「-qa」をつけ、さらに「--last」を併用して実行します。
更新されたパッケージ情報が、新しい順に表示されます。
[pakira@Tiger ~]$ rpm -qa --last ←RPMパッケージの更新情報を表示します。
ftp-0.17-51.1.el6.i686 2012年08月24日 14時11分23秒
ImageMagick-perl-6.5.4.7-6.el6_2.i686 2012年08月24日 00時35分40秒
ImageMagick-6.5.4.7-6.el6_2.i686 2012年08月24日 00時34分27秒
librsvg2-2.26.0-5.el6_1.1.0.1.centos.i686 2012年08月24日 00時33分10秒
libgsf-1.14.15-5.el6.i686 2012年08月24日 00時32分02秒
libtool-ltdl-2.2.6-15.5.el6.i686 2012年08月24日 00時31分44秒
ghostscript-8.70-14.el6.i686 2012年08月24日 00時31分13秒
ghostscript-fonts-5.50-23.1.el6.noarch 2012年08月24日 00時31分09秒
libXt-1.0.7-1.el6.i686 2012年08月24日 00時28分07秒
xorg-x11-font-utils-7.2-11.el6.i686 2012年08月24日 00時27分50秒
libXfont-1.4.1-2.el6_1.i686 2012年08月24日 00時27分39秒
libfontenc-1.0.5-2.el6.i686 2012年08月24日 00時26分25秒
GConf2-2.28.0-6.el6.i686 2012年08月24日 00時26分09秒
sgml-common-0.6.3-32.el6.noarch 2012年08月24日 00時25分52秒
ORBit2-2.14.17-3.1.el6.i686 2012年08月24日 00時25分34秒
libIDL-0.8.13-2.1.el6.i686 2012年08月24日 00時25分10秒
perl-Archive-Zip-1.30-2.el6.noarch 2012年08月24日 00時24分59秒
libcroco-0.6.2-5.el6.i686 2012年08月23日 20時45分16秒
lcms-1.19-1.el6.i686 2012年08月23日 20時45分02秒
lcms-libs-1.19-1.el6.i686 2012年08月23日 20時44分42秒
libwmf-0.2.8.4-22.el6.centos.i686 2012年08月23日 20時44分25秒
urw-fonts-2.4-10.el6.noarch 2012年08月23日 20時44分07秒
libwmf-lite-0.2.8.4-22.el6.centos.i686 2012年08月23日 20時43分48秒
perl-GD-2.44-3.el6.i686 2012年08月23日 20時43分28秒
gd-2.0.35-10.el6.i686 2012年08月23日 20時43分11秒
libXpm-3.5.8-2.el6.i686 2012年08月23日 20時42分54秒
perl-DBD-MySQL-4.013-3.el6.i686 2012年08月23日 17時10分21秒
zlib-devel-1.2.3-27.el6.i686 2012年08月23日 16時55分15秒
readline-devel-6.0-4.el6.i686 2012年08月23日 16時55分04秒
ncurses-devel-5.7-3.20090208.el6.i686 2012年08月23日 16時54分55秒
ctags-5.8-2.el6.i686 2012年08月18日 18時33分27秒
diffstat-1.51-2.el6.i686 2012年08月18日 18時33分26秒
compat-libstdc++-296-2.96-144.el6.i686 2012年08月18日 18時33分26秒
RPMパッケージデータベースを新たに作成する
RPMパッケージデータベースを新たに作成するには、rpmコマンドに
「--initdb」オプションを付けて実行します。
このコマンドを実行するには、root権限が必要になります。
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# rpm --initdb ←RPMパッケージデータベースを新たに作成します。
関連記事
RPMデータベースを再構築する
RPMデータベースを再構築する
RPMパッケージに関する情報は、RPMデータベースに保存されています。
パッケージの情報を検索する時は、このRPMデータベースが重要な役割を果たすのですが、
たまに壊れてしまう場合があります。
そのような場合には、rpmコマンドに「--rebuilddb」オプションを付けて実行することで
RPMデータベースを再構築できます。
このコマンドを実行するにはroot権限が必要で、インストールされているパッケージ数、
コンピューターのスペックによっては終了するまでかなり時間が掛かる場合があります。
[pakira@Tiger ~]$ su - ←rootになります。
パスワード:
[root@Tiger ~]# rpm --rebuilddb ←RPMデータベースを再構築します。
[root@Tiger ~]#
RPMパッケージの状態を表示する
インストールされているRPMパッケージが現在どのような状態にあるのかを
確認するには、rpmコマンドにオプション「-q」と「-s」を付け、
状態を確認したいRPMパッケージ名を指定して実行します。
コマンドを実行し、「normal」または、「通常」と表示されれば、正常な状態です。
この他に、
・インストールされていない(not installed)
・置き換えられている(replaced)
があります。
このコマンドを実行すると、多くの情報が表示されるため、lessコマンドや
moreコマンドでパイプするのが良いでしょう。
[pakira@Tiger ~]$ rpm -qs ghostscript | less ←RPMパッケージの状態を表示します。
通常 /etc/ghostscript
通常 /etc/ghostscript/8.70
通常 /etc/ghostscript/8.70/CIDFnmap.local
通常 /etc/ghostscript/8.70/Fontmap.local
通常 /etc/ghostscript/8.70/cidfmap.local
通常 /usr/bin/bdftops
通常 /usr/bin/dumphint
通常 /usr/bin/dvipdf
通常 /usr/bin/eps2eps
通常 /usr/bin/font2c
通常 /usr/bin/ghostscript
通常 /usr/bin/gs
通常 /usr/bin/gsbj
通常 /usr/bin/gsdj
通常 /usr/bin/gsdj500
通常 /usr/bin/gslj
通常 /usr/bin/gslp
通常 /usr/bin/gsnd
通常 /usr/bin/lprsetup.sh
所属しているグループをプライマリグループに戻す
所属しているグループ内で一時的にプライマリグループを変更するで
一時、プライマリグループの変更を行いましたが、それを元に戻すには、
newgrpコマンドを実行します。
[pakira@Tiger ~]$ newgrp ←newgrpコマンドを実行します。
所属しているグループ内で一時的にプライマリグループを変更する
ユーザーが複数のグループに所属している場合、通常はプライマリグループの
メンバーとしてコマンドを実行します。しかし、プライマリグループ以外の権限を
必要とする処理を実行する場合は、ユーザーが所属しているグループ内で
一時的にプライマリグループを変更できます。
一時的にプライマリグループを変更するには、
newgrpコマンドにグループ名を付けて実行します。
[miyazaki@Tiger ~]$ whoami ←ユーザー名を確認します。
miyazaki
[miyazaki@Tiger ~]$ cat /etc/group | grep miyazaki
↑ユーザー「miyazaki」の所属グループを確認します。
nobody:x:99:miyazaki
miyazaki:x:601:
[miyazaki@Tiger ~]$ newgrp nobody ←グループ「nobody」に変更します。
ユーザーにプライマリグループ以外のグループを追加する
ユーザーにプライマリグループ以外のグループを追加する場合には、
usermodコマンドにオプション「-G」を付け、追加するグループのグループ名、
またはGIDを指定します。
(カンマ「,」で区切ることで複数のグループを同時に設定することも可能です。)
そして、追加を行いたいユーザ名を付けて実行します。
このコマンドを実行するには、root権限が必要になります。
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# cat /etc/group | grep miyazaki
↑ユーザー「miyzaki」のステータスを確認します。
miyazaki:x:601: ←プライマリグループのみ設定されています。
[root@Tiger ~]# usermod -G nobody miyazaki
↑ユーザー「miyzaki」にグループ「nobody」を追加します。
[root@Tiger ~]# cat /etc/group | grep miyazaki
nobody:x:99:miyazaki ←グループ「nobody」が追加されます。
miyazaki:x:601:
ユーザーのプライマリグループを変更する
ユーザーが複数のグループに所属している場合、プライマリグループを変更する場合は、
usermodコマンドにオプション「-g」を付けて、プライマリグループのグループ名、または
GID、そして変更するユーザー名を付けて実行します。
これらのパラメータは、既にシステムに登録済みである必要があるとともに、
実行するには、root権限が必要になります。
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# cat /etc/passwd | grep miyazaki
↑ユーザー「miyazaki」のプライマリグループを確認します。
miyazaki:x:502:601:Miyazaki,,03-333-3333:/home/miyazaki:/bin/bash
[root@Tiger ~]# usermod -g nobody miyazaki
↑ユーザー「miyazaki」のプライマリグループを「nobody」に変更します。
[root@Tiger ~]# cat /etc/group | grep nobody
↑ユーザー「miyazaki」のプライマリグループを確認します。
nobody:x:99:
[root@Tiger ~]# cat /etc/passwd | grep miyazaki
↑ユーザー「miyazaki」のプライマリグループを確認します。
miyazaki:x:502:99:Miyazaki,,03-333-3333:/home/miyazaki:/bin/bash
グループパスワードを削除する
グループに設定したパスワードを削除するには、gpasswdコマンドに
オプション「-r」か、「-R」を付けて実行します。
引数にはパスワードを削除したいグループ名を指定します。
グループにパスワードを設定する
この処理は、root、またはグループ管理者に登録されているユーザーが実行できます。
グループに管理者を設定する
[pakira@Tiger ~]$ whoami ←グループ管理者であることを確認します。
pakira
[pakira@Tiger ~]$ gpasswd -r unyo ←グループ「unyo」のパスワードを削除します。
[pakira@Tiger ~]$ gpasswd -R unyo ←グループ「unyo」のパスワードを削除します。
グループからメンバーを外す
既存グループからメンバーを外すには、gpasswdコマンドに
オプション「-d」を付けて実行します。
引数には、追加するユーザー名、グループ名を指定して実行します。
この処理は、root、またはグループ管理者に登録されているユーザーが実行できます。
■グループ管理者に登録されているユーザーがメンバーを外す
[pakira@Tiger ~]$ whoami ←グループ管理者であることを確認します。
pakira
[pakira@Tiger ~]$ cat /etc/group | grep miyazaki ←グループに追加されていることを確認します。
unyo:x:600:miyazaki
miyazaki:x:601:
[pakira@Tiger ~]$ gpasswd -d miyazaki unyo ←miyazakiをグループから外します。
Removing user miyazaki from group unyo
[pakira@Tiger ~]$ cat /etc/group | grep miyazaki ←グループから外れていることを確認します。
miyazaki:x:601:
グループにメンバーを追加する
既存グループにメンバーを追加するには、gpasswdコマンドに
オプション「-a」を付けて実行します。
引数には、追加するユーザー名、グループ名を指定して実行します。
この処理は、root、またはグループ管理者に登録されているユーザーが実行できます。
■グループ管理者に登録されているユーザーがメンバー追加する
[pakira@Tiger ~]$ whoami ←グループ管理者であることを確認します。
pakira
[pakira@Tiger ~]$ gpasswd -a miyazaki unyo ←miyazakiをunyoグループに追加します。
Adding user miyazaki to group unyo
[pakira@Tiger ~]$ cat /etc/group | grep miyazaki ←グループに追加されていることを確認します。
unyo:x:600:miyazaki
miyazaki:x:601:
グループに管理者を設定する
既存のグループに、root(特権ユーザー)とは別に管理者を設定することができます。
ここで設定された管理者は、グループに対して、メンバーの追加、削除、
グループパスワードの設定、削除などが行えます。
グループごとに管理者を設定するメリットは、特定のディレクトリ以下の
管理をその管理者に任せることができるので、root(特権ユーザー)である
システム管理者の負担を軽減することができます。
管理者を設定するには、gpasswdコマンドにオプション「-A」を付け、
引数にユーザー名、管理させるグループ名を指定します。
ユーザーはカンマ「,」で区切ることで複数指定することが可能です。
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# cat /etc/group | grep unyo ←unyoグループが存在することを確認します。
unyo:x:600:
[root@Tiger ~]# gpasswd -A pakira unyo ←unyoグループの管理者としてpakiraを設定します。
グループにパスワードを設定する
グループにパスワードを設定する場合には、gpasswdコマンドを使用します。
グループにユーザーを追加する場合や、グループに登録されていない
ユーザーの場合にパスワード入力が求められるようになります。
グループにパスワードを設定することで、
グループに勝手にメンバーを登録されることを防ぐことができます。
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# gpasswd unyo ←unyoグループにパスワードを設定します。
Changing the password for group unyo
New Password: ←unyoグループのパスワードを入力します。
Re-enter new password: ←もう一度、unyoグループのパスワードを入力します。
グループIDを指定してグループを追加する
グループを追加すると、Linuxシステムは自動的にGID(グループID)を割り当てます。
このため、システム管理上、GIDの規則性を持たせて運用・管理したい場合には不都合に
なってしまいます。このような場合には、「-g」オプションを付けてGIDを指定して
groupaddコマンドを実行します。
このコマンドを実行するには、root権限が必要になります。
[pakira@Tiger ~]$ su - ←rootになります。
パスワード:
[root@Tiger ~]# groupadd -g 600 unyo ←GIDを指定してグループを作成します。
[root@Tiger ~]# cat /etc/group | grep unyo ←追加したグループを確認します。
unyo:x:600:
グループを削除する
グループを削除するには、groupdelコマンドを使用します。
引数には、削除したいグループ名をして実行します。
しかし、削除するグループをプライマリーグループとするユーザーがいる場合、
そのユーザを先に削除してからでないと、グループの削除ができないので注意が必要です。
たとえば、グループpakiraを削除するためには、ユーザーpakiraを削除してからでないと
グループ削除ができません。
このコマンドを実行するには、root権限が必要になります。
[pakira@Tiger ~]$ su - ←rootになります。
パスワード:
[root@Tiger ~]# cat /etc/group | grep unyo ←unyoフループの確認をします。
unyo:x:503:
[root@Tiger ~]# groupdel unyo ←unyoグループを削除します。
[root@Tiger ~]# cat /etc/group | grep unyo ←unyoグループが削除されていることを確認します。
[pakira@Tiger pakira]$ su - ←rootユーザになります。
Password:
[root@Tiger root]# grep linuxuser /etc/group ←グループ「linuxuser」が存在することを確認します。
linuxuser:x:503:
[root@Tiger root]# groupdel linuxuser ←グループ「linuxuser」を削除します。
[root@Tiger root]# grep linuxuser /etc/group ←再度グループ「linuxuser」を確認します。
[root@Tiger root]# ←削除されたのでなにも表示されません。
グループを追加する
グループを作成するメリットは、複数人のプロジェクトなどで、メンバーをグループに
登録することでパーミッション管理が容易になる点です。
グループを作成するには、groupaddコマンドを使用します。
実行する際は、引数に追加するグループ名を指定します。
このコマンドを実行する際は、root権限が必要になります。
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード:
[root@Tiger ~]# groupadd unyo ←新規グループを作成します。
[root@Tiger ~]# cat /etc/group | grep unyo ←作成したグループを確認します。
unyo:x:503:
所属グループを表示する
特定のユーザーがどのグループに所属しているかを確認するには、groupsコマンドを使用します。
引数なしで実行した場合は、コマンドを実行したユーザーの所属グループが表示されます。
引数に所属グループを表示したいユーザー名を指定すると、そのユーザーの所属グループが表示されます。
■コマンドを実行したユーザーの所属グループを表示する
[pakira@Tiger ~]$ whoami ←ユーザー名を表示します。
pakira
[pakira@Tiger ~]$ groups ←所属グループを表示します。
pakira
■特定ユーザーの所属グループを表示する
[pakira@Tiger ~]$ groups nobody ←「nobody」ユーザーの所属グループを表示します。
nobody : nobody
[pakira@Tiger ~]$
ディレクトリの総使用量だけ表示する
特定のディレクトリの総使用量だけ表示するには、duコマンドに「-s」オプションを付けて実行します。
「-h」オプションはわかりやすい単位を付けて表示します。
[pakira@Tiger ~]$ du -sh /var/www/ ←「/var/www」ディレクトリの総使用量だけ表示します。
36M /var/www/
ディレクトリの使用量を表示する
ディレクトリの使用量を表示するには、duコマンドを使用します。
引数なしで実行した場合は、カレントディレクトリ以下のディレクトリ使用量を
1024バイト単位(1MB)で表示します。
ファイルの使用量も表示したい場合には、「-a」オプションを付けて実行します。
また、「-h」を付けて実行すると、わかりやすい単位を付けて表示します。
なお、特定のディレクトリを指定したい場合は、最後の引数にディレクトリを指定します。
■使用量を表示する
[pakira@Tiger ~]$ pwd ←カレントディレクトリを表示します。
/home/pakira
[pakira@Tiger ~]$ du -ah ←使用量を表示します。
4.0K ./.bashrc
4.0K ./.bash_profile
4.0K ./.bash_history
4.0K ./.bash_logout
20K .
■ディレクトリを指定して使用量を表示する
[pakira@Tiger ~]$ du -ah /var/www/ ←ディレクトリを指定して使用量を表示します。
4.0K /var/www/system/backup_all.sh
4.0K /var/www/system/ftp_send.sh
4.0K /var/www/system/check_process.pl
4.0K /var/www/system/db_my_backup.sh
20K /var/www/system
40K /var/www/backup/db_bak/mt_my_Tiger20120824.dump.gz
44K /var/www/backup/db_bak
4.3M /var/www/backup/www_bak/www_back_20120824.tar.gz
4.3M /var/www/backup/www_bak/www_back_20121005.tar.gz
4.3M /var/www/backup/www_bak/www_back_20121009.tar.gz
13M /var/www/backup/www_bak
13M /var/www/backup
4.0K /var/www/html/.passwds
4.0K /var/www/html/webstudy1.no-ip.info/index.html
8.0K /var/www/html/webstudy1.no-ip.info
4.0K /var/www/html/192.168.0.36/.htaccess
8.0K /var/www/html/192.168.0.36/archives.html
4.0K /var/www/html/192.168.0.36/mt/tmpl/cms/import_others.tmpl
12K /var/www/html/192.168.0.36/mt/tmpl/cms/view_log.tmpl
省略
Linuxユーザーのパスワードロックを解除する
Linuxユーザーのパスワードロックを解除するには、usermodコマンドにオプション「-U」を
付けてユーザー名を指定するか、passwdコマンドにオプション「-u」を付けて、
ユーザ名を指定して実行します。
■usermodコマンドでパスワードロックを解除する
[pakira@Tiger ~]$ su - ←rootになります。
パスワード:
[root@Tiger ~]# usermod -U miyazaki ←miyazakiユーザーのパスワードロックを解除します。
[root@Tiger ~]# exit ←rootから抜けます。
logout
[pakira@Tiger ~]$ su miyazaki ←miyazakiユーザーにスイッチします。
パスワード: ←miyazakiユーザーのパスワードを入力します。
[miyazaki@Tiger pakira]$ ←ロックが解除されているため、スイッチできます。
■passwdコマンドでパスワードロックを解除する
[miyazaki@Tiger pakira]$ su - ←rootになります。
パスワード:
[root@Tiger ~]# passwd -u miyazaki ←miyazakiユーザーのパスワードロックを解除します。
ユーザー miyazaki 用のパスワードをロック解除。
passwd: 成功
[root@Tiger ~]# exit ←rootから抜けます。
logout
[miyazaki@Tiger pakira]$ su miyazaki ←miyazakiユーザーにスイッチします。
パスワード: ←miyazakiユーザーのパスワードを入力します。
[miyazaki@Tiger pakira]$ ←ロックが解除されているため、スイッチできます。
Linuxユーザーのパスワードをロックする
あるユーザーがしばらくLinuxシステムを利用しない場合、システムを利用できないよう
ユーザーパスワードをロックするが理想的です。
パスワードをロックするには、usermodコマンドにオプション「-L」を付けてユーザー名を指定するか、
passwdコマンドに「-l」オプションを付けて、ユーザー名を指定して実行します。
■usermodコマンドでパスワードをロックする
[pakira@Tiger ~]$ su - ←rootになります。
パスワード:
[root@Tiger ~]# usermod -L miyazaki ←miyazakiユーザーのパスワードをロックします。
[root@Tiger ~]# exit ←rootから抜けます。
logout
[pakira@Tiger ~]$ su miyazaki ←miyazakiユーザーにスイッチします。
パスワード: ←miyazakiユーザーのパスワードを入力します。
su: パスワードが違います ←ロックされているため、スイッチできません。
■passwdコマンドでパスワードをロックする
[miyazaki@Tiger pakira]$ su - ←rootになります。
パスワード:
[root@Tiger ~]# passwd -l miyazaki ←miyazakiユーザーのパスワードをロックします。
ユーザー miyazaki 用のパスワードをロック。
passwd: 成功
[root@Tiger ~]# exit ←rootから抜けます。
logout
[miyazaki@Tiger pakira]$ su miyazaki ←miyazakiユーザーにスイッチします。
パスワード: ←miyazakiユーザーのパスワードを入力します。
su: パスワードが違います ←ロックされているため、スイッチできません。
特定のローダブルモジュールを表示する
ある特定のローダブルモジュールを表示したい場合には、
「modprobe -l」を実行しますが、さらに引数として、モジュール名を指定します。
[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# modprobe -l *cpufreq*
kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko
kernel/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.ko
kernel/drivers/cpufreq/cpufreq_stats.ko
kernel/drivers/cpufreq/cpufreq_powersave.ko
kernel/drivers/cpufreq/cpufreq_ondemand.ko
kernel/drivers/cpufreq/cpufreq_conservative.ko
また、下記のようにglepコマンドをパイプでつなげて実行しても同じ結果が得られます。
[root@Tiger ~]# modprobe -l | grep cpufreq
kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko
kernel/arch/x86/kernel/cpu/cpufreq/mperf.ko
kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko
kernel/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.ko
kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko
kernel/drivers/cpufreq/cpufreq_stats.ko
kernel/drivers/cpufreq/cpufreq_powersave.ko
kernel/drivers/cpufreq/cpufreq_ondemand.ko
kernel/drivers/cpufreq/cpufreq_conservative.ko
ローダブルモジュールを表示する
システムに組み込まれていないが、ロード可能なモジュール(ローダブルモジュール)を
表示するには、modprobeコマンドにオプション「-l」を付けて実行します。
このコマンドを実行すると、多くのモジュールが表示されるので、パイプなどを使用して
moreやlessコマンドと併用すると良いです。
[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# modprobe -l
kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko
kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko
kernel/arch/x86/kernel/cpu/cpufreq/mperf.ko
kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko
kernel/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.ko
kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko
kernel/arch/x86/kernel/test_nx.ko
kernel/arch/x86/kernel/microcode.ko
kernel/arch/x86/crypto/aes-i586.ko
kernel/arch/x86/crypto/twofish-i586.ko
kernel/arch/x86/crypto/salsa20-i586.ko
kernel/arch/x86/crypto/crc32c-intel.ko
kernel/kernel/trace/ring_buffer_benchmark.ko
kernel/fs/nfs_common/nfs_acl.ko
kernel/fs/nls/nls_cp737.ko
kernel/fs/nls/nls_cp775.ko
kernel/fs/nls/nls_cp850.ko
省略
kernel/net/9p/9pnet.ko
kernel/net/9p/9pnet_virtio.ko
kernel/net/9p/9pnet_rdma.ko
kernel/net/wimax/wimax.ko
kernel/lib/crc-ccitt.ko
kernel/lib/crc-t10dif.ko
kernel/lib/crc-itu-t.ko
kernel/lib/crc7.ko
kernel/lib/libcrc32c.ko
kernel/lib/zlib_deflate/zlib_deflate.ko
kernel/lib/reed_solomon/reed_solomon.ko
kernel/lib/lzo/lzo_compress.ko
kernel/lib/lzo/lzo_decompress.ko
kernel/lib/raid6/raid6_pq.ko
kernel/lib/ts_kmp.ko
kernel/lib/ts_bm.ko
kernel/lib/ts_fsm.ko
■moreコマンドとのパイプ併用
[root@Tiger ~]# modprobe -l | more
kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko
kernel/arch/x86/kernel/cpu/cpufreq/powernow-k8.ko
kernel/arch/x86/kernel/cpu/cpufreq/mperf.ko
kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko
kernel/arch/x86/kernel/cpu/cpufreq/pcc-cpufreq.ko
kernel/arch/x86/kernel/cpu/cpufreq/p4-clockmod.ko
kernel/arch/x86/kernel/test_nx.ko
kernel/arch/x86/kernel/microcode.ko
kernel/arch/x86/crypto/aes-i586.ko
kernel/arch/x86/crypto/twofish-i586.ko
kernel/arch/x86/crypto/salsa20-i586.ko
kernel/arch/x86/crypto/crc32c-intel.ko
kernel/kernel/trace/ring_buffer_benchmark.ko
kernel/fs/nfs_common/nfs_acl.ko
kernel/fs/nls/nls_cp737.ko
kernel/fs/nls/nls_cp775.ko
kernel/fs/nls/nls_cp850.ko
kernel/fs/nls/nls_cp852.ko
kernel/fs/nls/nls_cp855.ko
kernel/fs/nls/nls_cp857.ko
kernel/fs/nls/nls_cp860.ko
kernel/fs/nls/nls_cp861.ko
kernel/fs/nls/nls_cp862.ko
kernel/fs/nls/nls_cp863.ko
kernel/fs/nls/nls_cp864.ko
kernel/fs/nls/nls_cp865.ko
kernel/fs/nls/nls_cp866.ko
kernel/fs/nls/nls_cp869.ko
kernel/fs/nls/nls_cp874.ko
kernel/fs/nls/nls_cp932.ko
kernel/fs/nls/nls_euc-jp.ko
kernel/fs/nls/nls_cp936.ko
kernel/fs/nls/nls_cp949.ko
kernel/fs/nls/nls_cp950.ko
kernel/fs/nls/nls_cp1250.ko
kernel/fs/nls/nls_cp1251.ko
kernel/fs/nls/nls_iso8859-1.ko
kernel/fs/nls/nls_iso8859-2.ko
kernel/fs/nls/nls_iso8859-3.ko
--続ける--
カーネルモジュールの詳細情報を表示する
カーネルにロードされている各モジュールの詳細情報を表示するには、
modinfoコマンドを使用します。
引数に詳細情報を知りたいモジュールを指定して実行します。
また、オプション「-d」を指定すると、概要だけが表示されます。
■カーネルモジュールの詳細情報を表示する
[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# modinfo snd_pcm
filename: /lib/modules/2.6.32-279.el6.i686/kernel/sound/core/snd-pcm.ko
license: GPL
description: Midlevel PCM code for ALSA.
author: Jaroslav Kysela
srcversion: 9260DA35A52D5BDB19CA5B7
depends: snd,snd-page-alloc,snd-timer
vermagic: 2.6.32-279.el6.i686 SMP mod_unload modversions 686
parm: preallocate_dma:Preallocate DMA memory when the PCM devices are initialized. (int)
parm: maximum_substreams:Maximum substreams with preallocated DMA memory. (int)
■カーネルモジュールの概要を表示する
[root@Tiger ~]# modinfo -d snd_pcm
Midlevel PCM code for ALSA.
ロードされているカーネルモジュールを表示する
Linuxは、カーネルの肥大化を防ぐために、動作に最低限必要なプログラム以外は、
カーネルに含めず、環境に応じて追加や切り離しができるようになっています。
このように追加や切り離しができるものを「モジュール」と良い、代表的なものに
SCSIアダプタや、PCカード、デバイスドライバなどがあります。
このようなモジュールが現在組み込まれているかを表示するコマンドが「lsmod」コマンドになります。
このコマンドを実行するにはroot権限が必要になります。
[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# lsmod
Module Size Used by
iptable_filter 2173 1
ip_tables 9567 1 iptable_filter
ipv6 265153 15
ipt_LOG 4861 8
ppdev 7361 0
parport_pc 19342 0
parport 30853 2 ppdev,parport_pc
snd_ens1371 16915 0
snd_rawmidi 18283 1 snd_ens1371
snd_ac97_codec 95768 1 snd_ens1371
ac97_bus 968 1 snd_ac97_codec
snd_seq 45509 0
snd_seq_device 5220 2 snd_rawmidi,snd_seq
snd_pcm 67313 2 snd_ens1371,snd_ac97_codec
snd_timer 17758 2 snd_seq,snd_pcm
snd 52704 7 snd_ens1371,snd_rawmidi,snd_ac97_codec,snd_seq,snd_seq_device,snd_pcm,snd_timer
soundcore 6486 1 snd
snd_page_alloc 7042 1 snd_pcm
pcnet32 29202 0
mii 4443 1 pcnet32
microcode 12216 0
vmware_balloon 5811 0
i2c_piix4 11156 0
i2c_core 25825 1 i2c_piix4
sg 24612 0
ext4 337374 2
mbcache 5976 1 ext4
jbd2 77304 1 ext4
sr_mod 14245 0
cdrom 34094 1 sr_mod
sd_mod 35435 3
crc_t10dif 1217 1 sd_mod
pata_acpi 2513 0
ata_generic 2805 0
ata_piix 19202 0
mptspi 15015 2
mptscsih 31522 1 mptspi
mptbase 87046 2 mptspi,mptscsih
scsi_transport_spi 20334 1 mptspi
dm_mirror 11678 0
dm_region_hash 9737 1 dm_mirror
dm_log 8546 2 dm_mirror,dm_region_hash
dm_mod 67821 8 dm_mirror,dm_log
dstatコマンドでシステムリソースをモニタリングする(リアルタイム)
vmstat, iostat, ifstatなどのstat系コマンドを
これ1つで表示することができます。
例えば、
CPUやメモリ情報、ディスクI/OやネットワークI/Oを
リアルタイムでモニタリングできます。
表示を停止する場合は、「Ctrl+c」を実行します。
dstatコマンドがインストールされていない場合は、
下記コマンドでインストールしてください。
dstatコマンドのインストール
$ su -
パスワード: ←rootパスワードを入力します。
# yum -y install dstat
dstatコマンドのオプション
| -t | 時間を表示します。 | ||
| -c | CPU使用時間の割合を表示します。 | ||
| 表示項目 | usr | ユーザ空間で使われたCPU使用時間の割合 | |
| sys | システム空間で使われたCPU仕様時間の割合 | ||
| idl | アイドル状態のCPU時間の割合 | ||
| wai | 応答の待ち状態にあったCPU時間の割合 | ||
| hiq | ハードウェア割り込み処理に使われたCPU時間の割合 | ||
| siq | ソフトウェア割り込み処理に使われたCPU時間の割合 | ||
| -m | メモリの状態を表示します。 | ||
| 表示項目 | used | 物理メモリ全体での使用容量 | |
| buff | バッファキャッシュで使っているメモリ使用容量 | ||
| cach | ページキャッシュからバッファキャッシュを引いたメモリ使用容量 | ||
| free | 未使用のメモリ使用容量 | ||
| ?vm | バーチャルメモリの利用状態を表示します。 | ||
| 表示項目 | majpf | 物理メモリ上に該当データがロードされなかった回数 | |
| minpf | 物理メモリに該当データがロードされた回数 | ||
| alloc | 空きメモリを探して割り当てた回数 | ||
| free | メモリを解放した回数 | ||
| -s | スワップの利用状態を表示します。 | ||
| 表示項目 | used | スワップ全体での使用容量 | |
| free | 未使用のスワップ容量 | ||
| -g | ページの入出力数を表示します。 | ||
| 表示項目 | in | ディスクからメモリに読み込んだバイト数 | |
| out | メモリ不足時にディスクに書き出したバイト数 | ||
| -d | ディスクの状態を表示します。 | ||
| 表示項目 | read | ディスクの読み込みバイト数 | |
| writ | ディスクの書き込みバイト数 | ||
| -r | ディスクへの読み書きリクエスト数(IOPS)を表示します。 | ||
| 表示項目 | read | ディスクの読み込みリクエスト数 | |
| writ | ディスクの書き込みリクエスト数 | ||
| -i | 割り込み処理の状態を表示します。 | ||
| 表示項目 | interrupts | 実行待ちのプロセス数 | |
| -l | ロードアベレージの状態を表示します。 | ||
| 表示項目 | 1m | 1分平均でのCPU時間の利用割合 | |
| 5m | 5分平均でのCPU時間の利用割合 | ||
| 15m | 15分平均でのCPU時間の利用割合 | ||
| -p | プロセスの状態を表示します。 | ||
| 表示項目 | run | 実行中プロセス数 | |
| blk | ブロック中のプロセス数 | ||
| new | 新しく実行されたプロセス数 | ||
| -y | システム状態を表示します。 | ||
| 表示項目 | int | 割り込み回数 | |
| csw | コンテキストスイッチの回数 | ||
| ?lock | ファイルロックの状態を表示します。 | ||
| 表示項目 | pos | posixロック数 | |
| lck | flockロック数 | ||
| rea | 読み込みロック数 | ||
| wri | 書き込みロック数 | ||
| -n | ネットワーク状態を表示します。 | ||
| recv | ネットワーク全体の受信データ量 | ||
| send | ネットワーク全体の送信データ量 | ||
| ?ipc | プロセス間通信の状態を表示します。 | ||
| msg | メッセージキュー | ||
| sem | セマフォ | ||
| shm | 共有メモリセグメント | ||
| ?unix | UNIXドメインソケットの状態を表示します。 | ||
| 表示項目 | dgm | Datagram通信の件数 | |
| str | Stream通信の件数 | ||
| lis | listenな通信の件数 | ||
| act | activeな通信の件数 | ||
| -tcp | TCP通信のバイト数を表示します。 | ||
| 表示項目 | lis | 待ちうけ状態の数 | |
| act | ACTIVE状態の数 | ||
| syn | SYN状態の数 | ||
| tim | TIME_WAIT状態の数 | ||
| clo | CLOSE状態の数 | ||
| ?udp | UDP通信のバイト数を表示します。 | ||
| 表示項目 | lis | 待ちうけ状態の数 | |
| act | ACTIVE状態の数 | ||
| --float | 小数点も含めて表示します。 | ||
| --noheaders | ヘッダ表示を一回だけにします。 | ||
Linuxの時刻同期を確認するコマンド|chronyとntpのステータス確認
「chrony と ntp、どっちを使えばいいの?」
Linuxサーバーの時刻同期(NTP)は、システムの安定運用に欠かせない重要な要素です。
この記事では、Linuxで時刻同期のステータスを確認するコマンドを解説します。現代のLinux(RHEL 7/8/9、AlmaLinuxなど)で標準の
chrony と、古いシステムで使われる ntp の両方に対応した確認手順をまとめました。1. 【現代の標準】chronyの同期状態を確認する
CentOS 7やRHEL 7以降、Ubuntu 20.04以降など、近年のLinuxディストリビューションでは chrony(クロニー) が標準のNTPクライアントとして採用されています。まずchronydの起動状態を確認する
chronyc コマンドを実行する前に、まず chrony のサービス(デーモン)が動いているかを確認しましょう。# systemctl status chronyd * chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled) Active: active (running) since Mon 2026-02-24 10:00:00 JST; 3 days ago
Active: active (running) であれば正常です。停止している場合は以下のコマンドで起動してください。# systemctl start chronyd
pidofコマンドでプロセス番号を表示する
プロセスを操作する場合、プロセスを特定するためにプロセス番号使用する必要があります。
一般的にpsコマンドで調べることが多いのですが、表示される情報が多いため、表示情報を
絞り込む条件を行う必要があったりしますので、何かと面倒な場合があります。
そのような場合は、pidofコマンドを利用します。
[root@Tiger ~]# pidof init ←「init」のプロセス番号を表示します。
1 ←「init」のプロセス番号は必ず「1」なので1と表示されます。
[root@Tiger ~]# pidof httpd ←「httpd」のプロセス番号を表示します。
1227 1226 1225 1224 1223 1141
pidofコマンドは/sbin配下に格納されていますが、ディストリビューションによっては
パスが取っていないことがありますので、その場合はフルパス「/sbin/pidof」で指定してください。
[root@Tiger ~]# /sbin/pidof postmaster
1276 1275 1274 1273 1189
システムの稼働時間と負荷状況を確認する
CPUの負荷状況を確認するコマンドにuptimeコマンドがあります。
また、wコマンドのヘッダー情報でもuptimeコマンドを実行した時と同じ情報が表示されます。
[root@Tiger ~]# uptime
15:33:00 up 50 min, 1 user, load average: 0.00, 0.00, 0.00
[root@Tiger ~]# w
15:33:03 up 50 min, 1 user, load average: 0.08, 0.02, 0.01 ←uptimeコマンドを実行した時と同じ情報
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
pakira pts/0 192.168.0.162 14:44 0.00s 0.16s 0.13s sshd: pakira [priv]
左から
15:33:03 : コマンドを実行した時刻
up 50 min : システム起動後の稼働時間
1 user : ログインユーザー数
load average: 0.08, 0.02, 0.01 : アクティブプロセスの平均数を意味し、直前1分、直前5分、直前15分
この中でCPU負荷情報として最も重要なのはload average(ロードアベレージ)になります。
これは一定時間におけるアクティブプロセスの平均数で、この値が高いということは
CPUの負荷が高いという事になります。
LinuxのOS種類とバージョンを確認する
担当者の引継ぎのような場面が必ず訪れます。
そのような時、引き継いだ人間は仕様を理解するために、
仕様書や構築手順書などのドキュメントに目を通します。
しかし、長い間運用されてきたシステムでは、
ドキュメントのメンテナンスがされていない、
または、一部が紛失しているケースがあります。
そんな時は、実際に稼動しているサーバーの
状態を確認するしかありません。
今回紹介するLinuxのOS種類とバージョンを確認する方法も、
サーバーの状態を確認するのに役立ちます。
Perlモジュールを一覧表示する
LinuxにインストールされているPerlモジュールをサーバー上で確認するには、
findコマンドを利用します。
--------------------------------------------
$ find `perl -e 'print "@INC"'` -name '*.pm' -print
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Bundle/DBD/mysql.pm
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/Compress/Raw/Zlib.pm
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBD/mysql.pm
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/DBD/mysql/GetInfo.pm
--------------------------------------------
また、findコマンドの次に指定しているperl -e 'print "@INC"'は、検索対象ディレクトリを
指定しており、このまま実行すると、Perlモジュールがインストールされている
ディレクトリ一覧が表示できます。
--------------------------------------------
$ perl -e 'print "@INC"
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi
/usr/lib/perl5/site_perl /usr/lib/perl5/5.8.8
/usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi
--------------------------------------------
perl -e 'print "@INC"だけでPerlモジュールがインストールされている
ディレクトリを指定して検索することができます。
Linuxのシステムクロック、ハードウェアクロック
コンピュータやサーバーに内蔵された時計は、電源がオフの状態でも
常に動作しています。これをハードウェアクロックと呼びます。
また、ハードウェアクロックとは別にLinuxカーネル内に存在する
システムクロックというものも存在ます。
システムクロックは、Linux起動時にハードウェアクロックを参照し、
設定を行いますが、その後は別々に動作します。
そのため起動してから時間の経過とともにハードウェアクロックと
システムクロックに差が生じてしまいます。
そこで重宝するのが、ネットワーク経由でクロックを同期する
NTP(Network Time Protocol)を使った時刻合わせです。
NTPはネットワーク経由でインターネット上にあるタイムサーバー
(NTPサーバー)から正確な時刻を取得します。
Linuxでは、ntpdateコマンドを使用してNTPサーバーから
正確な時刻を取得できます。
下記の例では「clock.nc.fukuoka-u.ac.jp」から
現在の時刻を取得しています。
# ntpdate -s clock.nc.fukuoka-u.ac.jp
■他のNTPサーバー
・東京大学 eric.nc.u-tokyo.ac.jp
・東京理科大学 ntp.sut.ac.jp
・東北大学 ntp1.tohoku.ac.jp
・広島大学 ns.hiroshima-u.ac.jp
・大阪府立大学 eagle.center.osakafu-u.ac.jp
ただし、ntpdateコマンドで同期できるのはシステムクロックになります。
ハードウェアクロックも同期させるには、clockコマンドにオプション
「-w」を付けて実行します。
# clock -w
また、hwclockでもシステムクロックの時刻をハードウェアクロックに
書き込み同期させることができます。その場合もオプション「-w」を
付けて実行します。
# hwclock -w
Linuxシステムで正確な時刻設定を行う場合には、cronを使用して
一定時間毎に時刻合わせをさせるのが良い方法です。
例えば、↓のように毎日0時にシステムクロックを同期し、
0時1分にハードウェアクロックを同期する設定を行います。
0 0 * * * /usr/sbin/ntpdate -s clock.nc.fukuoka-u.ac.jp > /dev/null 2>& 1
1 0 * * * /sbin/clock -w
上記の設定をcronに行う事で毎日決まった時間に正確な時刻を
同期することができます。
これら時刻合わせ処理の流れをまとめると下記の様になります。
1.ntpdateコマンドでNTPサーバーから正確な時刻を取得し、システムクロックと同期
2.clockまたは、hwclockコマンドでシステムクロックとハードウェアクロックを同期
時刻管理はLinuxシステムを管理する上でとても重要なものになります。
ログ管理で言えば、いつどんな処理を行ったか、または、エラーや障害は
いつ発生したのかなど、サーバーの状態を時系列で追う必要がある場合に
重要になります。
なので、常に正確な時刻を刻むようこれらの内容をマスターし、
Linuxに設定するようにしてください。
Linuxログの調査をする
Linuxログを調べることで、システムの利用状況やソフトウェアの動作に
異常がないかを確認する事が出来ます。
また、問題が起こりそうな場合、その兆候を発見することもあります。
Linuxのログファイルで主になるのが「/var/log/messages」になります。
↓はmessagesファイルに記述されている内容を切り出したものになります。
Jun 29 17:38:11 Tiger shutdown[30243]: shutting down for system halt
ログの内容としては、
日時 ・・・・・・・・ Jun 29 17:38:11
出力元ホスト名 ・・・ Tiger
メッセージ出力元 ・・ shutdown
メッセージ ・・・・・ shutting down for system halt
になります。
このログファイルをリアルタイムで監視したい場合には、
tailコマンドにオプション「-f」を付けて実行すると
非常に便利です。
ログファイルが更新されると、更新された時点で
内容がリアルタイムに表示されます。
[root@Tiger log]# tail -f /var/log/messages
このリアルタイム監視を中止したい場合には、
キーボードの「Ctrl」+「c」キーを入力します。
また、ログファイルから特定のメッセージのみを調査したい場合には
grepコマンドが便利です。
下記の例はshutdownを行った時のログのみを表示させています。
[root@Tiger log]# grep shutdown /var/log/messages
Jun 28 23:36:33 Tiger shutdown[3341]: shutting down for system halt
Jun 29 03:10:39 Tiger shutdown[10217]: shutting down for system reboot
Jun 29 03:29:37 Tiger shutdown[3142]: shutting down for system halt
Jun 29 16:00:55 Tiger shutdown[2492]: shutting down for system reboot
Jun 29 16:08:08 Tiger shutdown[2615]: shutting down for system halt
/var/log/ディレクトリにはLinuxのログファイルが多く保存されますが、
「/var/log/secure」ファイルには認証などのセキュリティに関するログが
保存されます。
例えば、
下記はSSHでの接続に失敗した際のログになります。
[root@Tiger log]# tail /var/log/secure
Jul 15 15:00:53 Tiger sshd[10051]: Failed password for pakira from
192.168.1.97 port 51449 ssh2
また、ユーザー毎に最近ログインしたかどうかを確認するコマンドに
lastlogコマンドがあります。
このコマンドはrootしか実行できませんが、どのユーザーが
いつログインしたかを一覧で確認することができますので
非常に便利です。
[root@Tiger log]# lastlog
ユーザ名 ポート 場所 最近のログイン
root tty1 水 6月 30 14:06:21 +0900 2010
bin **一度もログインはありません**
daemon **一度もログインはありません**
adm **一度もログインはありません**
lp **一度もログインはありません**
(中略)
pakira pts/0 192.168.1.97 木 7月 15 13:35:23 +0900 2010
postgres **一度もログインはありません**
mysql **一度もログインはありません**
[root@Tiger log]#
システム終了を中止する
システム終了を実行してもhalt処理が始まる前であれば
終了を中止する事が出来ます。
中止するには、コンソールであれば「Enter」キーを入力して
プロンプトを表示してからshutdownコマンドに「-c」オプションを
つけて実行するか、「Cntl」+「c」キーを入力します。
[root@Tiger ~]# shutdown -h +3 ←システム停止処理を実行します。
Broadcast message from root (pts/0) (Sat Jun 12 20:49:38 2010):
The system is going DOWN for system halt in 3 minutes!
(「Cntl」+「c」キーを入力)
Shutdown cancelled.
または、
[root@Tiger ~]# shutdown -c
■ 関連記事
システムを指定時間に終了する
システムをすぐに終了する
システムを停止する
システムをすぐに再起動する
システムの再起動を高速に行う
指定時間後にシステムを再起動する
shutdownコマンドの詳細はこちら
rebootコマンドの詳細はこちら
haltコマンドの詳細はこちら
syncコマンドの詳細はこちら
システム終了時に接続ユーザにメッセージを送る
システム終了時には「The system is going down for system halt NOW!」という
メッセージが表示されますが、これとは別にオリジナルのメッセージを表示することが
できます。
オリジナルの終了メッセージを表示するには、shutdownコマンドに
「-h」オプションを付け、スペースで区切ってメッセージを入力します。
[root@Tiger ~]# shutdown -h +3 Goodbye! ←メッセージ「Goodbye!」を付けてシステム終了します。
Broadcast message from root (pts/0) (Sat Jun 12 20:42:39 2010):
Goodbye! ←メッセージが表示されます。
The system is going DOWN for system halt in 3 minutes!
■ 関連記事
システムを指定時間に終了する
システムをすぐに終了する
システムを停止する
システムをすぐに再起動する
システムの再起動を高速に行う
指定時間後にシステムを再起動する
shutdownコマンドの詳細はこちら
rebootコマンドの詳細はこちら
haltコマンドの詳細はこちら
syncコマンドの詳細はこちら
システムを指定時間後に終了する
システムを指定時間に終了するでは終了時間を時刻で指定しましたが、
何分後に終了するのかというのを設定して終了する事も出来ます。
実行するには、shutdownコマンドに「-h」オプションを付けて、
引数としていつ終了するのかを分で指定します。
▼ 3分後に終了する
[root@Tiger ~]# shutdown -h +3 ←3分後に終了します。
Broadcast message from root (pts/0) (Sat Jun 12 20:35:48 2010):
The system is going DOWN for system halt in 3 minutes!
Broadcast message from root (pts/0) (Sat Jun 12 20:36:48 2010):
The system is going DOWN for system halt in 2 minutes! ←1分後ごとにカウントダウンします。
▼ 15分後に終了する
[root@Tiger ~]# shutdown -h +15
■ 関連記事
システムを指定時間に終了する
システムをすぐに終了する
システムを停止する
システムをすぐに再起動する
システムの再起動を高速に行う
指定時間後にシステムを再起動する
shutdownコマンドの詳細はこちら
rebootコマンドの詳細はこちら
haltコマンドの詳細はこちら
システムを指定時間に終了する
コマンド実行後にすぐシステムを終了するのではなく、時間を指定して
その時間になったらシステムを終了することも出来ます。
時間を指定してシステムを終了するには、shutdownコマンドに「-h」オプションを
付け、さらに引数として「hh:mm(時:分)」形式の24時間表記で指定を行います。
shutdownコマンドを実行するにはroot権限が必要になります。
<b>▼午後5:30に終了するb>
[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# shutdown -h 17:30 ←17:30を指定して午後5時30にシステムが終了するようにしています。
Broadcast message from root (pts/0) (Thu Jun 10 17:20:10 2010):
The system is going DOWN for system halt in 10 minutes!
Broadcast message from root (pts/0) (Thu Jun 10 17:29:10 2010):
The system is going DOWN for system halt in 9 minutes! ←1分ごとにカウントダウンされます。
(省略)
The system is going DOWN for system halt in 1 minutes! ←1分ごとにカウントダウンされます。
<b>▼午前8:30に終了する場合b>
[root@Tiger ~]# shutdown -h 08:30
■ 関連記事
システムをすぐに再起動する
システムの再起動を高速に行う
指定時間後にシステムを再起動する
shutdownコマンドの詳細はこちら
rebootコマンドの詳細はこちら
suコマンドの詳細はこちら
haltコマンドの詳細はこちら
システムをすぐに終了する
システムを終了させるにはいくつかのコマンドがあります。
有名なものではshutdownコマンド、haltコマンドなどになり、
それぞれオプションを付けて実行することでシステムを
すぐに終了する事が出来ます。
■ shutdownコマンド
shutdownコマンドにオプション「-h」を付け、引数にnowを指定します。
[root@Tiger ~]# shutdown -h now
■haltコマンド
haltコマンドにオプション「-p」を付けて実行します。
[root@Tiger ~]# halt -p
■paweroffコマンド
[root@Tiger ~]# poweroff
poweroffでもシステムを終了する事ができますが、ディストリビューションによって
下記のように動作が異なります。
■poweroffの各ディストリビューションの動作
RedHat Linux系:一般ユーザアカウント実行可
Vine Linux:rootパスワードを入力して停止プロセスを実行
Turbolinux:rootパスワードを入力して停止プロセスを実行
Debian GNU/Linux:一般ユーザでの実行不可
■ 関連記事
システムをすぐに再起動する
システムの再起動を高速に行う
指定時間後にシステムを再起動する
shutdownコマンドの詳細はこちら
rebootコマンドの詳細はこちら
haltコマンドの詳細はこちら
システムを停止する
システムを停止するにはいくつか方法がありますが、haltコマンドを実行すると
接続しているユーザすべてにシステム停止メッセージを送り、ランレベルが
「0」に移行し停止プロセスを開始します。
通常はrootユーザになって実行しますが、haltコマンドは一般ユーザでも
実行可能です。但し、一般ユーザで実行する場合、ディストリビューションにより
動作が下記のように異なります。
一般ユーザでhaltコマンドを実行した場合の各ディストリビューションの挙動
RedHat系:一般ユーザで実行可能。ただし、リモートホストからコマンドを実行した場合は無視される
Vine Linux:rootユーザのパスワードを求め、正しい場合停止プロセスを実行
Turbolinux:rootユーザのパスワードを求め、正しい場合停止プロセスを実行
Debian GNU/Linux:一般ユーザでの実行不可
Plamo Linux:一般ユーザでの実行不可
[root@Tiger ~]# halt ←システムを停止します。
Broadcast message from root (pts/0) (Thu Jun 10 17:05:51 2010):
The system is going down for system halt NOW!
■関連記事
システムをすぐに再起動する
システムの再起動を高速に行う
指定時間後にシステムを再起動する
shutdownコマンドの詳細はこちら
rebootコマンドの詳細はこちら
haltコマンドの詳細はこちら
指定時間後にシステムを再起動する
システムの再起動を行う場合の多くはすぐに再起動を行うことが多いと思いますが、
まれに何らかの処理が終了するのを待って実行する場合もあります。
こうした場合、再起動の実行を予約することができます。
これを実行するにはshutdownコマンドに「-r」オプションを付けて、何分後に
再起動するのか分で時間指定します。
[pakira@Tiger ~]$ su - ←rootになります。
パスワード: ←パスワードを入力します。
[root@Tiger ~]# shutdown -r +3 ←3分後に再起動するよう指定します。
Broadcast message from root (pts/0) (Thu Jun 10 14:18:20 2010):
The system is going DOWN for reboot in 3 minutes!
Broadcast message from root (pts/0) (Thu Jun 10 14:19:20 2010):
The system is going DOWN for reboot in 2 minutes! ←1分ごとにカウントダウンされます。
Broadcast message from root (pts/0) (Thu Jun 10 14:20:20 2010):
The system is going DOWN for reboot in 1 minute! ←1分ごとにカウントダウンされます。
Broadcast message from root (pts/0) (Thu Jun 10 14:21:20 2010):
The system is going down for reboot NOW!
■関連記事
システムをすぐに再起動する
システムの再起動を高速に行う
shutdownコマンドの詳細はこちら
rebootコマンドの詳細はこちら
システムの再起動を高速に行う
Linuxが起動する時には「fsck」というファイルシステムのチェック処理が
実行がされます。再起動時もこの処理が行われるため、その分起動時間が
長くなります。
そのfsck処理を省略して再起動することで短時間に再起動を行うことができます。
短時間に再起動を行うにはshutdownコマンドに「-f」オプションを付けて
実行します。
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード: ←パスワードを入力します。
[root@Tiger ~]# shutdown -rf now ←shutdownコマンドを実行します。
Broadcast message from root (pts/0) (Thu Jun 10 14:13:33 2010):
The system is going down for reboot NOW!
■関連記事
システムをすぐに再起動する
指定時間後にシステムを再起動する
shutdownコマンドの詳細はこちら
rebootコマンドの詳細はこちら
haltコマンドの詳細はこちら
サービスの起動、停止状況を初期設定(デフォルト)に戻す
chkconfigコマンドでサービスの起動、停止の設定を行った後に
初期設定に戻すには引数にサービス名とresetオプションを指定します。
ちなみに実行ユーザはrootで行う必要があります。
[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# chkconfig --list ntpd ←ntpdの起動状況を確認します。
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:on
[root@Tiger ~]# chkconfig ntpd reset ←ntpdの起動状況を初期設定に戻します。
[root@Tiger ~]# chkconfig --list ntpd ←再度ntpdの起動状況を確認します。
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off ←ntpdの起動状況が初期設定に戻ります。
■ 関連記事
ランレベルごとのサービス起動と停止状況を表示する
不要サービスを停止するには
システム起動時に特定のサービスを起動する
chkconfigコマンドの詳細はこちら
suコマンドの詳細はこちら
システム起動時に特定のサービスを起動する
停止状況の中で停止(off)となっているサービスを起動するには
chkconfigコマンドに引数としてサービス名を指定し、onを指定して
実行します。
このように指定することで、次回起動時から自動的にそのサービスが
起動するようになります。また、ランレベルをオプションとして指定することで
指定したランレベルで起動、停止の指定を行うことができます。
ちなみに、chkconfigコマンドはroot権限で実行する必要があります。
[pakira@Tiger ~]$ su -
パスワード:
[root@Tiger ~]# chkconfig --list ntpd ←ntpdの起動状況を表示します。
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@Tiger ~]# chkconfig ntpd on ←ntpdのサービスを起動します。
[root@Tiger ~]# chkconfig --list ntpd ←ランレベル2345においてonになります。
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@Tiger ~]# chkconfig --level 6 ntpd on ←ランレベル6を指定して起動します。
[root@Tiger ~]# chkconfig --list ntpd ←ntpdの起動状況を再度表示します。
ntpd 0:off 1:off 2:on 3:on 4:on 5:on 6:on ←ランレベル6がonになります。
関連記事
ランレベルごとのサービス起動と停止状況を表示する
不要サービスを停止するには
サービスの起動、停止状況を初期設定(デフォルト)に戻す
chkconfigコマンドの詳細はこちら
suコマンドの詳細はこちら
ランレベルごとのサービス起動と停止状況を表示する
Linuxがシステム起動時に起動するサービスを一覧表示するには、
chkconfigコマンドに「--list」をオプションを付けて実行します。
また、引数に特定のサービスを指定するとで、そのサービスだけの状況を
表示することができます。
chkconfigコマンドを実行するにはroot権限が必要になります。
[pakira@Tiger ~]$ su - ←root権限になります。
パスワード: ←rootパスワードを入力します。(パスワードは表示されません)
[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
atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
auditd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
avahi-daemon 0:off 1:off 2:off 3:off 4:off 5:off 6:off
(省略)
xinetd ベースのサービス:
chargen-dgram: off
chargen-stream: off
cvs: off
daytime-dgram: off
daytime-stream: off
discard-dgram: off
discard-stream: off
echo-dgram: off
echo-stream: off
eklogin: off
ekrb5-telnet: off
gssftp: off
klogin: off
krb5-telnet: off
kshell: off
rmcp: off
rsync: off
tcpmux-server: off
time-dgram: off
time-stream: off
■関連記事
不要サービスを停止するには
システム起動時に特定のサービスを起動する
サービスの起動、停止状況を初期設定(デフォルト)に戻す
chkconfigコマンドの詳細はこちら
suコマンドの詳細はこちら
killallコマンドで使用できるkillシグナルを表示する
killallコマンドもkillコマンド同様にプロセスの制御ができますが、
シグナル名はkillコマンドと異なります。
killallコマンドで使用できるシグナル名を確認するには、オプション「-l」を
指定してkillallコマンドを実行します。
また、killallコマンドはディストリビューションに収録されている
バージョンが異なり、シグナル名は同じでも機能が異なる場合があるので
使用する場合には、このコマンドで使用できるシグナルを確認する必要が
あります。
[root@Tiger ~]# killall -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED
■ 関連記事
pstree コマンドの詳細ついてはこちら
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
killコマンドで使用できるkillシグナルを表示する
killコマンドはプロセスを終了するだけではなく、様々な制御をする事が出来ます。
この制御にしようされるのがシグナルと呼ばれるものなのですが、シグナルには
番号と名前、略称が用意されており、そのどれを使っても制御する事が出来ます。
このようなkillコマンドで使用できるシグナルを確認するには、オプション「-l」を
指定してkillコマンドを実行します。
[root@Tiger ~]# kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
[root@Tiger ~]#
■よく使用されるkillシグナル
・シグナル番号:1 シグナル名:SIGHUP 略称:HUP
ハングアップ(再起動):制御端末がハングアップしたときと
同様の信号で、設定ファイルの更新後に使用される
・シグナル番号:2 シグナル名:SIGINT 略称:INT
割り込み:「Ctrl」+「c」キーなどが押されたときと同様の信号
・シグナル番号:9 シグナル名:SIGKILL 略称:KILL
強制終了
・シグナル番号:15 シグナル名:SIGTERM 略称:TERM
終了(デフォルト):引数なしで実行したのと同様
・シグナル番号:17 シグナル名:SIGSTOP 略称:STOP
中断
・シグナル番号:19 シグナル名:SIGCONT 略称:CONT
再開
■ 関連記事
pstree コマンドの詳細ついてはこちら
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
プロセスをハングアップさせる
ハングアップシグナルは、ターミナルエミュレーターが終了する時に
送られる信号で、デーモンがこの信号を受け取ると、プログラムを
再起動します。
起動時に設定ファイルを読み出すプログラムの場合には
再度設定ファイルを読み出すので、設定ファイルを更新した
後にこのハングアップを利用することで新設定でデーモンを
起動することができます。
[root@Tiger ~]# ps ax ←プロセスを表示します。
2054 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2055 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2056 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2057 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2081 ? Ss 0:00 sshd: pakira [priv]
2083 ? S 0:00 sshd: pakira@pts/0
2084 pts/0 Ss 0:00 -bash
2112 pts/0 S 0:00 su -
2113 pts/0 S 0:00 -bash
2154 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2160 pts/0 R+ 0:00 ps ax
[root@Tiger ~]# kill -HUP 2053 ←「PID2053」のapache2を再起動します。
root@Tiger ~]# ps ax
2054 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2055 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2056 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2057 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2081 ? Ss 0:00 sshd: pakira [priv]
2083 ? S 0:00 sshd: pakira@pts/0
2084 pts/0 Ss 0:00 -bash
2112 pts/0 S 0:00 su -
2113 pts/0 S 0:00 -bash
2154 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL ←apache2が再起動して、PIDが変更されます。
2160 pts/0 R+ 0:00 ps ax
■よく使用されるkillシグナル
・シグナル番号:1 シグナル名:SIGHUP 略称:HUP
ハングアップ(再起動):制御端末がハングアップしたときと
同様の信号で、設定ファイルの更新後に使用される
・シグナル番号:2 シグナル名:SIGINT 略称:INT
割り込み:「Ctrl」+「c」キーなどが押されたときと同様の信号
・シグナル番号:9 シグナル名:SIGKILL 略称:KILL
強制終了
・シグナル番号:15 シグナル名:SIGTERM 略称:TERM
終了(デフォルト):引数なしで実行したのと同様
・シグナル番号:17 シグナル名:SIGSTOP 略称:STOP
中断
・シグナル番号:19 シグナル名:SIGCONT 略称:CONT
再開
■ 関連記事
pstree コマンドの詳細ついてはこちら
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
特定コマンドのプロセスをすべて終了する
同じコマンドを使用して複数の処理を行い、それらすべてを終了させたい場合は
killallコマンドを使用します。
[root@Tiger system]# ps -acx ←プロセスを表示します。
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 init
2 ? S< 0:00 migration/0
3 ? SN 0:00 ksoftirqd/0
4 ? S< 0:00 watchdog/0
(省略)
1818 ? S 0:00 postmaster
1840 ? Ss 0:00 atd
1847 ? S 0:00 postmaster
1848 ? S 0:00 postmaster
1849 ? S 0:00 postmaster
1979 ? Ss 0:00 httpd
1980 ? S 0:00 rotatelogs
1981 ? S 0:00 rotatelogs
1982 ? S 0:00 rotatelogs
1983 ? S 0:00 rotatelogs
1984 ? S 0:00 rotatelogs
[root@Tiger system]# killall postmaster ←postmasterを終了します。
[root@Tiger system]# ps -acx ←プロセスを表示します。
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 init
2 ? S< 0:00 migration/0
3 ? SN 0:00 ksoftirqd/0
4 ? S< 0:00 watchdog/0
(省略)
←postmasterが終了しています。
1979 ? Ss 0:00 httpd
1980 ? S 0:00 rotatelogs
1981 ? S 0:00 rotatelogs
1982 ? S 0:00 rotatelogs
1983 ? S 0:00 rotatelogs
1984 ? S 0:00 rotatelogs
■ 関連記事
pstree コマンドの詳細ついてはこちら
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
プロセスを強制終了する
通常のkillコマンドでプロセスを終了出来ない場合、強制終了させる方法があります。
killコマンドにはシグナルというオプションがあり、これによりプロセスをコントロールでき、
シグナル番号「9」が「SIGKILL」として割り当てられており、このシグナル番号、または
シグナルをオプションとして指定し、引数としてPID(プロセスID)を指定して実行する
ことで強制終了することができます。
[root@Tiger ~]# ps -a ←プロセスをすべて表示する
PID TTY TIME CMD
10086 pts/0 00:00:00 su
10087 pts/0 00:00:00 bash
10279 pts/1 00:00:00 su
10280 pts/1 00:00:00 bash
10315 pts/1 00:00:00 top
10316 pts/0 00:00:00 ps
[root@Tiger ~]# kill -9 10315 ←シグナル番号をオプションとして強制終了します。
■ 他の記述方法
[root@Tiger ~]# kill -SIGKILL 10315
[root@Tiger ~]# kill -kill 10315
■よく使用されるkillシグナル
・シグナル番号:1 シグナル名:SIGHUP 略称:HUP
ハングアップ(再起動):制御端末がハングアップしたときと
同様の信号で、設定ファイルの更新後に使用される
・シグナル番号:2 シグナル名:SIGINT 略称:INT
割り込み:「Ctrl」+「c」キーなどが押されたときと同様の信号
・シグナル番号:9 シグナル名:SIGKILL 略称:KILL
強制終了
・シグナル番号:15 シグナル名:SIGTERM 略称:TERM
終了(デフォルト):引数なしで実行したのと同様
・シグナル番号:17 シグナル名:SIGSTOP 略称:STOP
中断
・シグナル番号:19 シグナル名:SIGCONT 略称:CONT
再開
■ 関連記事
pstree コマンドの詳細ついてはこちら
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
実行中のプロセスを終了する
実行中のプロセスを終了するには、killコマンドを使用します。
引数としてPID(プロセスID)を指定する必要があり、killコマンドを
実行するまえにpsコマンドを使用して終了させるプロセスのPIDを確認します。
[root@Tiger ~]# ps -a ←すべてのプロセスを表示します。
PID TTY TIME CMD
10086 pts/0 00:00:00 su
10087 pts/0 00:00:00 bash
10148 pts/1 00:00:00 su
10149 pts/1 00:00:00 bash
10188 pts/0 00:00:00 ps
[root@Tiger ~]# kill 10148 ←killコマンドでPID10148「su」を終了します。
[root@Tiger ~]# ps 10148 ←PID10148「su」の状態を表示します。
PID TTY STAT TIME COMMAND
←PID10148「su」が停止したため表示されません。
■ 関連記事
pstree コマンドの詳細ついてはこちら
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
実行中のプロセスを強調表示してグラフィカルに表示する
psコマンドでは、基本的に起動しているプロセスをすべて表示するため、
停止中のプロセスも表示されてしまいます。
そうした場合、現在どのプロセスが実行中で、どのプロセスが停止中なのか
見分けがつきません。
そのような場合、pstreeに「-h」オプションを付けて実行することで
実行中のプロセスが強調されて表示されます。
また、「-h」オプションはグラフィカル表示の「-G」オプションとの併用もできます。
[pakira@Tiger ~]$ pstree -Gh
■ 関連記事
pstree コマンドの詳細ついてはこちら
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
プロセスツリーをグラフィカルに表示する
pstreeコマンドは文字による表示だけではなく、グラフィカルに表示することもできます。
プロセスツリーをグラフィカル表示するにはpstreeコマンドにオプション「-G」を付けて
実行します。
■ 関連記事
pstree コマンドの詳細ついてはこちら
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
プロセスをツリー状に表示する
一般的にコマンドを実行すると、プログラムは処理を分岐(folk)して実行します。
このような時プロセスがどのように分岐して実行されているかを知るには
ツリー状に表示させると容易に把握できます。
プロセスをツリー状に表示するにはpstreeコマンドを使用します。
[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
特定のプロセスの状態のみを表示する
psコマンドを通常すべてのプロセスを表示しますが、
特定のプロセスを表示させることもできます。
その場合、psコマンドにオプション「-C」を付けて実行します。
また、PID(プロセスID)が分かっている場合、引数にPIDを指定することで
特定のプロセスの状態だけを表示する事が出来ます。
[root@Tiger ~]# ps -lC crond ←「crond」プロセスだけを表示する
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
5 S 0 1770 1 0 78 0 - 1323 - ? 00:00:00 crond
※Linuxは大文字と小文字を別文字として扱いますので注意してください。
[root@Tiger ~]# ps 2063 ←「PID」で特定のプロセスを表示する
PID TTY STAT TIME COMMAND
2063 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
■ 関連記事
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
実行中のプロセスのみ表示する
psコマンドは基本的にプロセスが完了していないすべてのものを表示するため、
停止状態のプロセスも表示されます。
実行されているプロセスのみを表示するにはpsコマンドにオプション「-r」を
付けて実行します。
[root@Tiger ~]# ps -axr
PID TTY STAT TIME COMMAND
2379 pts/1 D+ 0:00 /bin/tar vfcz /var/www/backup/www_bak/www_back_20100602.tar.gz
2381 pts/0 R+ 0:00 ps -axr
■ 表示される情報
PID:プロセスごとに自動的に割り当てられる番号
TTY:プロセスを実行している制御端末
STAT:状態
・第1フィールド
R:実行可能
T:停止中かトレース中
D:休眠中で割り込み不可
S:休眠中
Z:ゾンビ(削除されていないが停止中)
・第2フィールド
W:スワップアウト(常駐ページなし)
・第3フィールド
N:正のナイス値
TIME:CPU消費時間
COMMAND:実行コマンド
■ 関連記事
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
プロセスの親子関係を含めて表示する
プロセスの親子関係を表示させるには、psコマンドに
オプション「-f」を付けて実行します。
親子関係にあるプロセスは、階層表示されます。
[root@Tiger ~]# ps -axf
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 init [3]
2 ? S< 0:00 [migration/0]
3 ? SN 0:00 [ksoftirqd/0]
4 ? S< 0:00 [watchdog/0]
5 ? S< 0:00 [events/0]
6 ? S< 0:00 [khelper]
7 ? S< 0:00 [kthread]
10 ? S< 0:00 \_ [kblockd/0]
11 ? S< 0:00 \_ [kacpid]
68 ? S< 0:00 \_ [cqueue/0]
71 ? S< 0:00 \_ [khubd]
73 ? S< 0:00 \_ [kseriod]
136 ? S 0:00 \_ [pdflush]
137 ? S 0:00 \_ [pdflush]
138 ? S< 0:00 \_ [kswapd0]
139 ? S< 0:00 \_ [aio/0]
297 ? S< 0:00 \_ [kpsmoused]
321 ? S< 0:00 \_ [ata/0]
322 ? S< 0:00 \_ [ata_aux]
327 ? S< 0:00 \_ [kstriped]
336 ? S< 0:00 \_ [ksnapd]
347 ? S< 0:00 \_ [kjournald]
369 ? S< 0:00 \_ [kauditd]
1001 ? S< 0:00 \_ [kgameportd]
1131 ? S< 0:00 \_ [kmpathd/0]
1132 ? S< 0:00 \_ [kmpath_handlerd]
1154 ? S< 0:00 \_ [kjournald]
1648 ? Ss 0:00 /usr/sbin/sshd
2074 ? Ss 0:00 \_ sshd: pakira [priv]
2076 ? R 0:00 \_ sshd: pakira@pts/0
2077 pts/0 Ss 0:00 \_ -bash
2105 pts/0 S 0:00 \_ su -
2106 pts/0 S 0:00 \_ -bash
2149 pts/0 R+ 0:00 \_ ps -axf
1663 ? Ss 0:00 xinetd -stayalive -pidfile /var/run/xinetd.pid
(省略)
2065 ? S 0:00 \_ /usr/local/apache2/bin/httpd -k start -DSSL
2002 ? S 0:00 /usr/sbin/smartd -q never
2005 tty1 Ss+ 0:00 /sbin/mingetty tty1
2006 tty2 Ss+ 0:00 /sbin/mingetty tty2
2007 tty3 Ss+ 0:00 /sbin/mingetty tty3
2008 tty4 Ss+ 0:00 /sbin/mingetty tty4
2009 tty5 Ss+ 0:00 /sbin/mingetty tty5
2030 tty6 Ss+ 0:00 /sbin/mingetty tty6
※デーモンプロセス(制御端末を持たないプロセス)も表示させるため、
オプション「-x」を付けて実行しています。
デーモンプロセスの表示についてはこちらを確認してください。
■ 表示される情報
PID:プロセスごとに自動的に割り当てられる番号
TTY:プロセスを実行している制御端末
STAT:状態
・第1フィールド
R:実行可能
T:停止中かトレース中
D:休眠中で割り込み不可
S:休眠中
Z:ゾンビ(削除されていないが停止中)
・第2フィールド
W:スワップアウト(常駐ページなし)
・第3フィールド
N:正のナイス値
TIME:CPU消費時間
COMMAND:実行コマンド
psコマンドの詳細はこちら
デーモンプロセスも含めて表示する
コンピュータは一般的に何らかの命令を与えないと動作しませんが、
LinuxやUNIXなどの場合、システム維持の為に命令を与えなくても
特別に動作しているプロセスがあります。
これらのプロセスはデーモンと呼ばれ、ユーザからの要求が
あるまで待ち続け、要求があると新たにプロセスを作成し、
処理を実行します。
ここで作成されたプロセスを子プロセスと言い、また予め一定の
日時になった時点で動作するように設定が行われていると、
予約された日時に予約された処理を行います。
これらのデーモンは基本的にユーザの設定に従って
処理が実行されますが、中にはデフォルト(標準設定)に
なっているものも存在ます。
こうしたデーモンは、ユーザがコンソールやターミナルエミュレータといった
制御端末で操作して実行するものではないので、psコマンドを実行しても
制御端末は表示されませんが、オプション「-x」を付けることで
これらのプロセスも表示できるようになります。
[pakira@Tiger ~]$ ps ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:00 init [3]
2 ? S< 0:00 [migration/0]
3 ? SN 0:00 [ksoftirqd/0]
4 ? S< 0:00 [watchdog/0]
5 ? S< 0:00 [events/0]
6 ? S< 0:00 [khelper]
(省略)
1993 ? S 0:00 /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/webst
1994 ? S 0:00 /usr/local/apache2/bin/rotatelogs /usr/local/apache2/logs/192.1
2004 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2005 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2006 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2007 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2008 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
2009 ? S 0:00 postgres: writer process
2010 ? S 0:00 postgres: stats buffer process
2011 ? S 0:00 postgres: stats collector process
2013 ? S 0:00 /usr/sbin/smartd -q never
2016 tty1 Ss+ 0:00 /sbin/mingetty tty1
2017 tty2 Ss+ 0:00 /sbin/mingetty tty2
2018 tty3 Ss+ 0:00 /sbin/mingetty tty3
2019 tty4 Ss+ 0:00 /sbin/mingetty tty4
2020 tty5 Ss+ 0:00 /sbin/mingetty tty5
2021 tty6 Ss+ 0:00 /sbin/mingetty tty6
2098 ? Ss 0:00 sshd: pakira [priv]
2100 ? S 0:00 sshd: pakira@pts/0
2101 pts/0 Ss 0:00 -bash
2129 pts/0 S 0:00 su -
2130 pts/0 S+ 0:00 -bash
2173 ? Ss 0:00 sshd: pakira [priv]
2175 ? S 0:00 sshd: pakira@pts/1
2176 pts/1 Ss 0:00 -bash
2408 ? S 0:00 /usr/local/apache2/bin/httpd -k start -DSSL
8765 pts/1 R+ 0:00 ps ax
TTYの箇所が「?」のプロセスは制御端末を持っていません。
■ 表示される情報
PID:プロセスごとに自動的に割り当てられる番号
TTY:プロセスを実行している制御端末
STAT:状態
・第1フィールド
R:実行可能
T:停止中かトレース中
D:休眠中で割り込み不可
S:休眠中
Z:ゾンビ(削除されていないが停止中)
・第2フィールド
W:スワップアウト(常駐ページなし)
・第3フィールド
N:正のナイス値
TIME:CPU消費時間
COMMAND:実行コマンド
■ 関連記事
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
すべてのプロセスを表示する
すべてのプロセスを表示するには「-a」オプションをつけてpsコマンドを実行します。
自分自身が実行したプロセスを確認する場合には、オプション「-a」に
引数なしで確認できますが、他のユーザがどのプロセスを
実行しているのかを確認するには、オプション「-u」も付けて実行します。
[root@Tiger ~]# ps -a
PID TTY TIME CMD
2129 pts/0 00:00:00 su
2130 pts/0 00:00:00 bash
2419 pts/0 00:00:00 ps
[root@Tiger ~]# ps -au
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2016 0.0 0.1 1660 424 tty1 Ss+ 12:42 0:00 /sbin/mingetty tty1
root 2017 0.0 0.1 1660 416 tty2 Ss+ 12:42 0:00 /sbin/mingetty tty2
root 2018 0.0 0.1 1660 424 tty3 Ss+ 12:42 0:00 /sbin/mingetty tty3
root 2019 0.0 0.1 1660 420 tty4 Ss+ 12:42 0:00 /sbin/mingetty tty4
root 2020 0.0 0.1 1660 420 tty5 Ss+ 12:42 0:00 /sbin/mingetty tty5
root 2021 0.0 0.1 1660 424 tty6 Ss+ 12:42 0:00 /sbin/mingetty tty6
pakira 2101 0.0 0.5 5556 1412 pts/0 Ss 12:47 0:00 -bash
root 2129 0.0 0.5 5948 1352 pts/0 S 12:47 0:00 su -
root 2130 0.0 0.5 5688 1440 pts/0 S 12:47 0:00 -bash
pakira 2176 0.0 0.5 5556 1416 pts/1 Ss+ 12:50 0:00 -bash
root 2420 0.0 0.3 5128 880 pts/0 R+ 13:29 0:00 ps -au
■ 表示される情報
USER:実行ユーザ名
PID:プロセスごとに自動的に割り当てられる番号
%CPU:CPU使用率
%MEM:実メモリ使用率
VSZ:データセグメントとスタックセグメントの和(単位:KB)
STAT:状態
・第1フィールド
R:実行可能
T:停止中かトレース中
D:休眠中で割り込み不可
S:休眠中
Z:ゾンビ(削除されていないが停止中)
・第2フィールド
W:スワップアウト(常駐ページなし)
・第3フィールド
N:正のナイス値
START:開始時刻
TIME:CPU消費時間
COMMAND:実行コマンド
■ 関連記事
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスにユーザ名を含めて表示するには、
psコマンドにオプション「-u」を付けて実行します。
[pakira@Tiger ~]$ ps -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
pakira 2101 0.0 0.5 5556 1412 pts/0 Ss 12:47 0:00 -bash
pakira 2176 0.5 0.5 5556 1416 pts/1 Ss 12:50 0:00 -bash
pakira 2204 0.0 0.3 5128 884 pts/1 R+ 12:50 0:00 ps -u
[root@Tiger ~]# ps -u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2016 0.0 0.1 1660 424 tty1 Ss+ 12:42 0:00 /sbin/mingetty tty1
root 2017 0.0 0.1 1660 416 tty2 Ss+ 12:42 0:00 /sbin/mingetty tty2
root 2018 0.0 0.1 1660 424 tty3 Ss+ 12:42 0:00 /sbin/mingetty tty3
root 2019 0.0 0.1 1660 420 tty4 Ss+ 12:42 0:00 /sbin/mingetty tty4
root 2020 0.0 0.1 1660 420 tty5 Ss+ 12:42 0:00 /sbin/mingetty tty5
root 2021 0.0 0.1 1660 424 tty6 Ss+ 12:42 0:00 /sbin/mingetty tty6
root 2129 0.0 0.5 5948 1352 pts/0 S 12:47 0:00 su -
root 2130 0.0 0.5 5688 1440 pts/0 S 12:47 0:00 -bash
root 2213 0.0 0.3 5128 880 pts/0 R+ 12:51 0:00 ps u
■ 表示される情報
USER:実行ユーザ名
PID:プロセスごとに自動的に割り当てられる番号
%CPU:CPU使用率
%MEM:実メモリ使用率
VSZ:データセグメントとスタックセグメントの和(単位:KB)
STAT:状態
・第1フィールド
R:実行可能
T:停止中かトレース中
D:休眠中で割り込み不可
S:休眠中
Z:ゾンビ(削除されていないが停止中)
・第2フィールド
W:スワップアウト(常駐ページなし)
・第3フィールド
N:正のナイス値
START:開始時刻
TIME:CPU消費時間
COMMAND:実行コマンド
■ 関連記事
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
プロセスの状態を詳細に表示する
プロセスの状態を詳細表示させるにはpsコマンドに
オプション「-l」を付けて実行します。
[pakira@Tiger ~]$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 500 3127 3126 0 75 0 - 1370 wait pts/1 00:00:00 bash
0 R 500 3217 3127 0 77 0 - 1289 - pts/1 00:00:00 ps
■ 表示される情報
S:状態
・第1フィールド
R:実行可能
T:停止中かトレース中
D:休眠中で割り込み不可
S:休眠中
Z:ゾンビ(削除されていないが停止中)
・第2フィールド
W:スワップアウト(常駐ページなし)
・第3フィールド
N:正のナイス値
UID:実行ユーザのユーザ番号
PID:プロセスごとに自動的に割り当てられる番号
PPID:親プロセスのプロセスID
PRI:プロセスの優先度
NI:プロセスのナイス値
SZ:仮想メモリイメージのサイズ
RSS:使用中の物理メモリ量
WCHAN:プロセス休眠時のカーネル関数
PAGEIN:主要なページフォルト数
TRS:常駐テキスト量
TTY:プロセスを実行している制御端末
TIME:CPU消費時間
CMD:実行コマンド
SWAP:スワップ・デバイスの量
SHARE:使用中の共有メモリ量
■ 関連記事
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
プロセスの状態を表示する
プロセスを表示するには、psコマンドを使用します。
psコマンドを実行すると、/proc以下の情報を基にプロセスの情報を表示します。
psコマンドをオプションなしで実行した場合、コマンドを実行した
ユーザのプロセス状態が表示されます。
[pakira@Tiger ~]$ whoami ←ユーザ名を表示します。
pakira
[pakira@Tiger ~]$ ps ←pakiraユーザの実行中のプロセスを表示します。
PID TTY TIME CMD
3127 pts/1 00:00:00 bash
3173 pts/1 00:00:00 ps
[pakira@Tiger ~]$ su - ←rootになります。
パスワード : ←root用パスワードを入力します。(パスワードは表示されません)
[root@Tiger ~]# ps ←rootの実行中プロセスを表示します。
PID TTY TIME CMD
3174 pts/1 00:00:00 su
3175 pts/1 00:00:00 bash
3199 pts/1 00:00:00 ps
[root@Tiger ~]#
■ 表示される情報
PID:プロセスごとに自動的に割り当てられる番号
TTY:プロセスを実行している制御端末
TIME:CPU消費時間
CMD:実行コマンド
■ 関連記事
psコマンドの詳細はこちら
killコマンドの詳細はこちら
killallコマンドの詳細はこちら
すべてのプロセスを表示する
デーモンプロセスも含めて表示する
プロセスの状態を詳細に表示する
プロセスの状態を表示する
プロセスの親子関係を含めて表示する
プロセスをツリー状に表示する
プロセスをハングアップさせる
プロセスを強制終了する
プロセスをハングアップさせる
プロセスツリーをグラフィカルに表示する
ユーザ名を含めて実行プロセスを表示する
実行中のプロセスのみ表示する
実行中のプロセスを終了する
特定のプロセスの状態のみを表示する
特定コマンドのプロセスをすべて終了する
一定時間ごとに仮想メモリの統計情報を更新して表示する
システムの全体的な稼働状況を継続的に表示させたい場合には、
vmstatコマンドに引数として秒数を指定します。
指定した秒数ごとにシステムの統計情報が表示されます。
表示を中止する場合には、「Ctrl」+「c」キーを入力します。
[pakira@Tiger ~]$ vmstat 5 ←5秒ごとに表示する
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 650812 24972 286384 0 0 596 37 752 87 2 3 88 7 0
0 0 0 650812 24972 286412 0 0 0 0 698 22 0 0 100 0 0
0 0 0 650812 24980 286412 0 0 0 6 704 25 0 0 100 0 0
0 0 0 650812 24980 286412 0 0 0 0 701 22 0 0 100 0 0
0 0 0 650812 24980 286412 0 0 0 0 685 23 0 0 100 0 0
0 0 0 650812 24988 286412 0 0 0 2 700 24 0 0 100 0 0
0 0 0 650812 24988 286412 0 0 0 0 704 22 0 0 100 0 0
0 0 0 650812 24988 286412 0 0 0 0 699 23 0 0 100 0 0
0 0 0 650812 24988 286412 0 0 0 7 699 24 0 0 100 0 0
(「Ctrl」+「c」キーを入力して停止する)
[pakira@Tiger ~]$
■ 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:仮想マシンから盗まれた時間
一定時間ごとにメモリ使用状況を更新して表示する
メモリを大量に消費するプロセスを実行した場合など、メモリの使用状況を
継続的にモニターしなければならいない場合、一定時間ごとにメモリの使用状況を
更新して表示することができます。
freeコマンドにオプション「-s」を付けて引数に更新時間を指定して実行します。
なお、表示を停止する場合には、「Ctrl」+「c」キーを入力して停止します。
[root@Tiger ~]# free -s5
total used free shared buffers cached
Mem: 1035140 385080 650060 0 24856 286260
-/+ buffers/cache: 73964 961176
Swap: 2097144 0 2097144
↓5秒経過
total used free shared buffers cached
Mem: 1035140 385080 650060 0 24856 286268
-/+ buffers/cache: 73956 961184
Swap: 2097144 0 2097144
↓5秒経過
total used free shared buffers cached
Mem: 1035140 385080 650060 0 24864 286260
-/+ buffers/cache: 73956 961184
Swap: 2097144 0 2097144
(「Ctrl」+「c」キーを入力して停止する)
[root@Tiger ~]#
メモリの使用状況を表示する
メモリの使用状況を確認するには、freeコマンドを使用します。
オプションなし、または、-kオプションを付けて実行した場合には、
キロバイト単位での表示になり、-dオプションを付けて実行した場合には
バイト単位、-mオプションを付けて実行した場合にはメガバイト単位で
表示されます。
[pakira@Tiger ~]$ free
total used free shared buffers cached
Mem: 1035140 544736 490404 0 47868 401036
-/+ buffers/cache: 95832 939308
Swap: 2097144 0 2097144
■ freeコマンドの表示項目
total:全メモリ容量
used:使用中のメモリ容量
free:空きメモリ容量
shared:共有メモリ容量
buffers:カーネルが使用するディスクバッファ容量
cached:キャッシュメモリ容量
メモリの情報を表示する
メモリに関する情報を取得するには、/proc/meminfoファイルを参照します。
このファイルはtopコマンド、freeコマンド、vmstatコマンドで表示される
メモリ情報として使用されます。
[pakira@Tiger ~]$ cat /proc/meminfo
MemTotal: 1035140 kB
MemFree: 648896 kB
Buffers: 26076 kB
Cached: 286904 kB
SwapCached: 0 kB
Active: 88932 kB
Inactive: 274256 kB
HighTotal: 131008 kB
HighFree: 256 kB
LowTotal: 904132 kB
LowFree: 648640 kB
SwapTotal: 2097144 kB
SwapFree: 2097144 kB
Dirty: 12 kB
Writeback: 0 kB
AnonPages: 50212 kB
Mapped: 19624 kB
Slab: 13892 kB
PageTables: 1644 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 2614712 kB
Committed_AS: 144988 kB
VmallocTotal: 114680 kB
VmallocUsed: 4980 kB
VmallocChunk: 109548 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 4096 kB
catコマンドの詳細はこちら
topコマンドの詳細はこちら
freeコマンドの詳細はこちら
vmstatコマンドの詳細はこちら
更新間隔を指定してCPUの負荷を表示する
topコマンドを実行すると、自動的に5秒ごとに情報が更新されますが、
自分で更新間隔を指定することも可能です。
更新間隔を自分で指定する場合は、topコマンドを実行する際、
オプションとして、「-d」を指定し、その後ろに更新間隔の秒数を
指定します。
■1秒間隔に更新
[pakira@Tiger ~]$ top -d1
■10秒間隔に更新
[pakira@Tiger ~]$ top -d10
CPU負荷を表示する(実行プロセスを表示する)
自分が実行したプロセスの処理が遅い場合、システムがどんな他のプロセスによって
負荷が掛かっているのかを調べたい場合にはtopコマンドを使用して、CPUの負荷情報を
取得します。
[pakira@Tiger ~]$ top
top - 13:34:36 up 8 min, 1 user, load average: 0.01, 0.21, 0.14
Tasks: 83 total, 1 running, 82 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.9%us, 3.3%sy, 0.0%ni, 86.7%id, 7.7%wa, 0.0%hi, 0.4%si, 0.0%st
Mem: 1035140k total, 385192k used, 649948k free, 25008k buffers
Swap: 2097144k total, 0k used, 2097144k free, 286872k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 18 0 2072 624 532 S 0.0 0.1 0:00.98 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 events/0
6 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
7 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
10 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kblockd/0
11 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kacpid
175 root 17 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0
178 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khubd
180 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kseriod
243 root 22 0 0 0 0 S 0.0 0.0 0:00.00 pdflush
244 root 15 0 0 0 0 S 0.0 0.0 0:00.00 pdflush
245 root 17 -5 0 0 0 S 0.0 0.0 0:00.00 kswapd0
246 root 17 -5 0 0 0 S 0.0 0.0 0:00.00 aio/0
464 root 17 -5 0 0 0 S 0.0 0.0 0:00.00 kpsmoused
493 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 mpt_poll_0
494 root 19 -5 0 0 0 S 0.0 0.0 0:00.00 scsi_eh_0
497 root 19 -5 0 0 0 S 0.0 0.0 0:00.00 ata/0
498 root 19 -5 0 0 0 S 0.0 0.0 0:00.00 ata_aux
503 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kstriped
512 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 ksnapd
523 root 17 -5 0 0 0 S 0.0 0.0 0:00.17 kjournald
549 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kauditd
582 root 19 -4 2472 936 388 S 0.0 0.1 0:00.69 udevd
1323 root 18 -5 0 0 0 S 0.0 0.0 0:00.00 kgameportd
1998 root 20 -5 0 0 0 S 0.0 0.0 0:00.00 kmpathd/0
これらの情報は初期設定で5秒ごとに自動更新されますが、
「スペースキー」を押すことですぐに更新することができます。
表示を中止する場合は「Ctrl」+「c」キーを入力します。
■ topコマンドで表示される情報
------------------------------------
PID プロセス番号
------------------------------------
USER プロセス実行ユーザ
------------------------------------
PR プロセスの優先順位
------------------------------------
NI プロセスのナイス値(実行優先度)
------------------------------------
VIRT スワップアウトしたメモリ使用量を加えたメモリ量
------------------------------------
RES プロセスの物理メモリ使用量の総数(単位は「キロバイト」)
------------------------------------
SHR プロセスの共有メモリ使用量
------------------------------------
S プロセスのステータス
S 停止状態
D 継続的停止状態
R 稼動状態
Z ゾンビ状態
T 停止またはトレース状態
< ナイス値が−で実行状態
LIB ライブラリページのサイズ
LC 最後に利用されたCPU
N ナイス値が+で実行状態
W スワップアウト状態
------------------------------------
%CPU CPU占有率
------------------------------------
%MEM メモリ占有率
------------------------------------
TIME+ プロセス開始からの経過時間(単位は「秒」)
------------------------------------
COMMAND 実行コマンド名
------------------------------------
CPUの情報を表示する
ハードウェアに搭載されているCPU情報を表示する場合、
「/proc/cpuinfo」ファイルを参照します。
これらの情報はtopコマンドなどのCPU負荷を知るための
情報として使用されます。
[pakira@Tiger ~]$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
stepping : 10
cpu MHz : 3003.000
cache size : 6144 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss nx constant_tsc up pni
bogomips : 6006.00
上記ではcatコマンドを使用して情報を参照しましたが、
他のmoreやlessコマンドでも参照できます。
[pakira@Tiger ~]$ more /proc/cpuinfo
[pakira@Tiger ~]$ less /proc/cpuinfo
catコマンドの詳細はこちら
moreコマンドの詳細はこちら
lessコマンドの詳細はこちら
topコマンドの詳細はこちら
プロンプトの表示を変更するには
ユーザがLinuxにログインすると、シェルは「$」や「#」などの
プロンプトを表示して、ユーザーからの指示を待ちます。
ログインして↓のように表示されるのがプロンプトです。
[pakira@Tiger ~]$
プロンプトはシェルによって表示が若干異なりますが、bashのプロンプト表示は、
「$」が一般ユーザー、「#」がスーパーユーザ(root)として表示します。
また、「$」や「#」以外にもホスト名やユーザ名、カレントディレクトリなども表示でき、
これらの設定はPS1という環境変数によって設定さています。
この環境変数PS1の値を変更すれば、オリジナルのプロンプトを
表示させることができ、その設定にはexportコマンドを使用します。
設定値には、以下の様な特殊な文字が設定出来ます。
\d : 日付
\h : ホスト名(ドメイン名なし)
\H : ホスト名(ドメイン名あり)
\s : シェルの名前
\t : 時間(24時間制 HH:MM:SS形式)
\T : 時間(12時間制 HH:MM:SS形式)
\@ : 時間(12時間制 HH:MM AM/PM形式)
\u : ユーザ名
\w : カレントディレクトリ
\W : カレントディレクトリのベース名
\! : コマンドの履歴番号を表示
\# : コマンドのコマンド番号
\$ : rootなら#、それ以外のユーザなら$を表示
\\ : バックスラッシュ
※カレントディレクトリとは、現在作業中のディレクトリを指します。
カレント(current)とは「現在の」という意味です。
※「\」は使っているコンピュータによって「\」(バックスラッシュ)で
表示されるものがあります。それは表示に使うフォントで割り当てられている
文字が違うだけでデータ的には同じになります。
Linuxでキーボードから¥記号を入力するとバックスラッシュになる
※Linuxは英字の大文字、小文字を区別します。
つまり、hとHは別文字として扱われるので注意してください。
▼ 現在の環境変数PS1の値を表示する
----------------------------------------------------------------------
[pakira@Tiger ~]$ echo "$PS1"
[\u@\h \W]\$
↑ユーザ名、ホスト名(ドメイン名なし)、
カレントディレクトリのベース名が設定されています。
----------------------------------------------------------------------
▼ シェルプロンプトの表示形式を変更する
----------------------------------------------------------------------
[pakira@Tiger ~]$ export PS1="[\u@\t \w]\$ " ←最後は半角スペースを入れる
[pakira@03:48:13 ~]$
↑ユーザ名、時間(24時間制 HH:MM:SS形式)、
カレントディレクトリのベース名が設定されました。
----------------------------------------------------------------------
ただし、これらの設定はログインし直すと元に戻ってしまうので、
設定を再ログインしても反映させるには、ユーザのホームディレクトリにある
「.bashrc」ファイルに設定を記述する必要があります。
▼ 再ログインしてもシェルプロンプトの表示形式を保持する
----------------------------------------------------------------------
[pakira@03:50:26 ~]$ pwd
/home/pakira ←ユーザのホームディレクトリであることを確認する
[pakira@03:50:26 ~]$ ls -la ←「.」で始まる隠しファイルを表示するには
オプション「a」を付けてlsコマンドを実行する
合計 68
drwx------ 3 pakira pakira 4096 4月 29 03:50 .
drwxr-xr-x 4 root root 4096 1月 28 21:23 ..
-rw------- 1 pakira pakira 67 4月 26 17:10 .bash_history
-rw-r--r-- 1 pakira pakira 33 1月 8 11:43 .bash_logout
-rw-r--r-- 1 pakira pakira 176 1月 8 11:43 .bash_profile
-rw-r--r-- 1 pakira pakira 124 1月 8 11:43 .bashrc ←編集するファイル
drwxr-xr-x 4 pakira pakira 4096 1月 8 11:43 .mozilla
-rw------- 1 pakira pakira 629 4月 29 03:50 .viminfo
-rw-r--r-- 1 pakira pakira 658 1月 8 11:43 .zshrc
[pakira@03:53:51 ~]$ vi .bashrc ←エディタで編集します。
export PS1="[\u@\t \w]\$ " ←「.bashrc」ファイルに追記する
編集を保存すると、再ログインしてもシェルプロンプトの表示形式は
そのままに反映されます。
一時的にスワップ領域を増やすには
Linuxのハードディスクは通常パーティションという区画に分割して利用します。
Linuxをインストールする場合、最低下記の2つのパーティションが必要になります。
・ルートパーティション
・スワップ領域
実際にはパーティションはもっと多くの種類に分割されるのですが、
今回は上記にあるスワップ領域の操作についてご紹介します。
スワップ領域とは
スワップ領域とは、物理メモリが不足した場合にディスクの一部を
一時的にメモリとして使用できるようにする機能です。
通常割り当てるスワップ領域のサイズの目安は、搭載されている
物理メモリの1〜2倍になります。
(物理メモリを1G搭載してる場合は1G〜2Gが目安になります。)
ですが、スワップ領域のサイズは必ず物理メモリ以上に必要というわけではありません。
スワップ領域が必要となるのは、先にも述べたように物理メモリが不足した場合ですので、
十分な物理メモリを搭載していればスワップ領域を使用しないようにすることも可能です。
不要サービスを停止するには
不要サービスを停止するには
実はLinuxは、インストール直後には使用しない
不要なサービス(プログラム)が多く起動しています。
それらの使わないサービスは起動しているだけで
サーバーのリソースを無駄に消費しますし、なにより
起動しているだけで、セキュリティ対策上好ましくありません。
サービスを停止するコマンドにはserviceとchkconfigコマンドが
ありますが、serviceコマンドはサーバーを再起動した際、
設定した内容が取り消されて、停止したサービスが起動して
しまいます。
そこで今回は、サーバーを再起動してもサービスが
停止したままになるchkconfigコマンドでサービスを停止する
方法をご紹介します。
文法
chkconfig (サービス名) off
システムをすぐに再起動する
rebootはすぐにシステムを再起動するためのコマンドです。
通常システムの停止にはshutdownコマンドが使用されますが、
rebootはこのshutdownコマンドの短縮形といえます。
shutdownコマンドでシステムの再起動を行う場合には、
オプション「r」を引数としてつける必要がありますが、rebootは引数が必要ありません。
また、rebootと同様にすぐにシステムを停止するコマンドにhaltあります。
