スポンサードリンク

miyazakitom TwitterTwitterやってます
はてなブックマークに追加はてなブックマークに追加 このエントリーを含むはてなブックマーク
Yahoo!ブックマークに登録 Yahoo!ブックマークでこのサイトを登録している人数 人が登録
この記事をクリップ!
atom:
RSS:

■CentOS6.3サーバー構築マニュアルを無料プレゼント

  CenOS6.3のサーバー構築手順、VMware Player4の
  ダウンロードとインストール手順をまとめたマニュアルを
  無料でプレゼントしています。


  詳しくは↓のページで説明しています。今すぐクリックしてダウンロードしてください。
  CentOS6.3サーバー構築マニュアルを期間限定プレゼント

プロが現場で構築するLinuxサーバー技術が習得できる講座とセミナー

   → 【Linux講座】プロが使うLinuxサーバー構築講座

   → 【Linuxセミナー】リナックスマスター2日間集中セミナー【CentOS版】

Linux最強Tips集 > システム管理

システム管理


スポンサードリンク

システムをすぐに再起動する

rebootはすぐにシステムを再起動するためのコマンドです。通常システムの停止にはshutdownコマンドが使用されますが、rebootはこのshutdownコマンドの短縮形といえます。

shutdownコマンドでシステムの再起動を行う場合には、オプション「r」を引数としてつける必要がありますが、rebootは引数が必要ありません。

また、rebootと同様にすぐにシステムを停止するコマンドにhaltあります。

不要サービスを停止するには

不要サービスを停止するには

実はLinuxは、インストール直後には使用しない
不要なサービス(プログラム)が多く起動しています。

それらの使わないサービスは起動しているだけで
サーバーのリソースを無駄に消費しますし、なにより
起動しているだけで、セキュリティ対策上好ましくありません。

サービスを停止するコマンドにはserviceとchkconfigコマンドが
ありますが、serviceコマンドはサーバーを再起動した際、
設定した内容が取り消されて、停止したサービスが起動して
しまいます。

そこで今回は、サーバーを再起動してもサービスが
停止したままになるchkconfigコマンドでサービスを停止する
方法をご紹介します。


文法

chkconfig (サービス名) off

ターミナルエミュレータのデバイス名を確認する

プロセス状況を表示した際、コマンドを実行したが、どのターミナルエミュレータ(仮想端末)なのかを
把握する場合、デバイス名で識別できます。

ターミナルエミュレータのデバイス名を確認するには、ttyコマンドを実行します。

DMAチャンネルの情報を確認する

DMAコントローラーに対して、転送を要求する為に使用されるDMAチャンネルの情報は、
/proc/dmaファイルを参照することで確認できます。

※DMA(Direct Memory Access)とは
 マザーボードに搭載された各種機器がCPUを介さずにデータ転送が行える方式の一つ。

I/Oアドレス情報を確認する

/proc/ioportsファイルを参照すれば、入出力デバイスに予約された
CPUのメインマップのアドレス情報を表示できます。

moreコマンドやlessコマンドを使用して参照すると確認しやすいです。

PCIデバイスの情報を表示する

PCIデバイスの情報を確認するにはlspciコマンドを使用します。
このlspciコマンドはオプションとして「-v」を付けて実行すると、更に詳細な情報を
表示することができます。
このコマンドを実行するには、スーパーユーザー(root)権限が必要です。

接続デバイスのIRQを表示する

/proc/interruptsファイルは、IRQ(InterruptReQuest:割り込み要求)情報を
表示出来ます。機器の増設をする前準備として、現在のサーバーの情報収集を
する場合に重宝します。

IRQは、0〜15の16種類用意されており、/proc/interruptsファイルには
使用されているものに関する情報を記録されています。

SCSIホストアダプタの状況を確認する

SCSIカードを装着しているシステムでSCSIカードのメーカーや
機種名、型番、接続状況を知るには、「/proc/scsi/scsi」ファイルの
情報を表示することでSCSIカードの状態を確認することができます。

稼働中のコンピュータのケースを開けて確認するのは危険なので、
この方法で確認するのが便利でスマートです。

ユーザーの接続履歴を調べる

サーバー管理者はユーザーのログイン履歴にも日頃から
注意深く監視しておく必要があります。

ログイン履歴は/var/run/utmpや/var/log/wtmpファイルに
記録されていますが、これらのファイルはバイナリファイルなので、
catコマンドなどで内容を見ることができません。

しかし、lastコマンドを使用すれば、ユーザーの接続履歴を
目に見える形で調べることができます。

プロンプトの表示を変更するには

ユーザがLinuxにログインすると、シェルは「$」や「#」などの
プロンプトを表示して、ユーザーからの指示を待ちます。

ログインして↓のように表示されるのがプロンプトです。

[pakira@Tiger ~]$

一時的にスワップ領域を増やすには

Linuxのハードディスクは通常パーティションという区画に分割して利用します。
Linuxをインストールする場合、最低下記の2つのパーティションが必要になります。

ルートパーティション
スワップ領域

実際にはパーティションはもっと多くの種類に分割されるのですが、
今回は上記にあるスワップ領域の操作についてご紹介します。


スワップ領域とは

スワップ領域とは、物理メモリが不足した場合にディスクの一部を
一時的にメモリとして使用できるようにする機能です。
通常割り当てるスワップ領域のサイズの目安は、搭載されている
物理メモリの1〜2倍になります。
(物理メモリを1G搭載してる場合は1G〜2Gが目安になります。)

ですが、スワップ領域のサイズは必ず物理メモリ以上に必要というわけではありません。
スワップ領域が必要となるのは、先にも述べたように物理メモリが不足した場合ですので、
十分な物理メモリを搭載していればスワップ領域を使用しないようにすることも可能です。

CPUの情報を表示する

ハードウェアに搭載されているCPU情報を表示する場合、
「/proc/cpuinfo」ファイルを参照します。
これらの情報はtopコマンドなどのCPU負荷を知るための
情報として使用されます。

CPU負荷を表示する(実行プロセスを表示する)

自分が実行したプロセスの処理が遅い場合、システムがどんな他のプロセスによって
負荷が掛かっているのかを調べたい場合にはtopコマンドを使用して、CPUの負荷情報を
取得します。

更新間隔を指定してCPUの負荷を表示する

topコマンドを実行すると、自動的に5秒ごとに情報が更新されますが、
自分で更新間隔を指定することも可能です。

更新間隔を自分で指定する場合は、topコマンドを実行する際、
オプションとして、「-d」を指定し、その後ろに更新間隔の秒数を
指定します。

メモリの情報を表示する

メモリに関する情報を取得するには、/proc/meminfoファイルを参照します。
このファイルはtopコマンド、freeコマンド、vmstatコマンドで表示される
メモリ情報として使用されます。

メモリの使用状況を表示する

メモリの使用状況を確認するには、freeコマンドを使用します。
オプションなし、または、-kオプションを付けて実行した場合には、
キロバイト単位での表示になり、-dオプションを付けて実行した場合には
バイト単位、-mオプションを付けて実行した場合にはメガバイト単位で
表示されます。

一定時間ごとにメモリ使用状況を更新して表示する

メモリを大量に消費するプロセスを実行した場合など、メモリの使用状況を
継続的にモニターしなければならいない場合、一定時間ごとにメモリの使用状況を
更新して表示することができます。

freeコマンドにオプション「-s」を付けて引数に更新時間を指定して実行します。
なお、表示を停止する場合には、「Ctrl」+「c」キーを入力して停止します。

一定時間ごとに仮想メモリの統計情報を更新して表示する

システムの全体的な稼働状況を継続的に表示させたい場合には、
vmstatコマンドに引数として秒数を指定します。

プロセスの状態を表示する

プロセスを表示するには、psコマンドを使用します。
psコマンドを実行すると、/proc以下の情報を基にプロセスの情報を表示します。

psコマンドをオプションなしで実行した場合、コマンドを実行した
ユーザのプロセス状態が表示されます。

プロセスの状態を詳細に表示する

プロセスの状態を詳細表示させるには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

ユーザ名を含めて実行プロセスを表示する

実行中のプロセスにユーザ名を含めて表示するには、
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

すべてのプロセスを表示する

すべてのプロセスを表示するには「-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

デーモンプロセスも含めて表示する

コンピュータは一般的に何らかの命令を与えないと動作しませんが、
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コマンドに
オプション「-f」を付けて実行します。

親子関係にあるプロセスは、階層表示されます。

特定のプロセスの状態のみを表示する

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

実行中のプロセスのみ表示する

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

プロセスをツリー状に表示する

一般的にコマンドを実行すると、プログラムは処理を分岐(folk)して実行します。
このような時プロセスがどのように分岐して実行されているかを知るには
ツリー状に表示させると容易に把握できます。

プロセスをツリー状に表示するにはpstreeコマンドを使用します。

プロセスツリーをグラフィカルに表示する

pstreeコマンドは文字による表示だけではなく、グラフィカルに表示することもできます。
プロセスツリーをグラフィカル表示するにはpstreeコマンドにオプション「-G」を付けて
実行します。

[pakira@Tiger ~]$ pstree -G

実行中のプロセスを強調表示してグラフィカルに表示する

psコマンドでは、基本的に起動しているプロセスをすべて表示するため、
停止中のプロセスも表示されてしまいます。
そうした場合、現在どのプロセスが実行中で、どのプロセスが停止中なのか
見分けがつきません。

そのような場合、pstreeに「-h」オプションを付けて実行することで
実行中のプロセスが強調されて表示されます。

[pakira@Tiger ~]$ pstree -h

実行中のプロセスを終了する

実行中のプロセスを終了するには、killコマンドを使用します。
引数としてPID(プロセスID)を指定する必要があり、killコマンドを
実行するまえにpsコマンドを使用して終了させるプロセスのPIDを確認します。

プロセスを強制終了する

通常の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 ←シグナル番号をオプションとして強制終了します。

特定コマンドのプロセスをすべて終了する

同じコマンドを使用して複数の処理を行い、それらすべてを終了させたい場合は
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 ~]# 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

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 ~]#

killallコマンドで使用できるkillシグナルを表示する

killallコマンドもkillコマンド同様にプロセスの制御ができますが、
シグナル名はkillコマンドと異なります。
killallコマンドで使用できるシグナル名を確認するには、オプション「-l」を
指定してkillallコマンドを実行します。

また、killallコマンドはディストリビューションに収録されている
バージョンが異なり、シグナル名は同じでも機能が異なる場合があるので
使用する場合には、このコマンドで使用できるシグナルを確認する必要が
あります。

ランレベルを表示する

UNIXやLinuxのシステムにはいくつかの動作モードがあり、
これを「ランレベル(RunLevel)」と呼びます。
現在システムで有効になっているランレベルを確認するには
runlevelコマンドを引数なしで実行します。

ちなみにランレベルは/etc/inittabに記述されており、
runlevelコマンドを実行する場合にはrootでなければなりません。

[root@Tiger ~]# runlevel ←ランレベルを表示します。
N 3  ←現在のランレベルは「3」です。

行頭の「N」は現在のランレベルにするまえのランレベルが表示されます。

ランレベルを切り替える

ランレベルは必要に応じて切り替えることが出来ます。
ランレベルを切り替えるには、telinitコマンドかinitコマンドを使用します。
telinitコマンドに設定したいランレベルを引数として指定して実行します。

また、telinitコマンドの実行にはroot権限が必要になり、設定後は
再起動して設定を有効にする必要があります。

ランレベルごとのサービス起動と停止状況を表示する

Linuxがシステム起動時に起動するサービスを一覧表示するには、
chkconfigコマンドに「--list」をオプションを付けて実行します。
また、引数に特定のサービスを指定するとで、そのサービスだけの状況を
表示することができます。

chkconfigコマンドを実行するにはroot権限が必要になります。

Linuxの種類とバージョンを確認する

Linuxサーバーを運用していると、担当者の引継ぎのような場面が必ず訪れます。
そのような時、引き継いだ人間は仕様を理解するために、仕様書や構築手順書などの
ドキュメントに目を通します。

しかし、長い間運用されてきたシステムでは、ドキュメントのメンテがされていない、
または一部が紛失しているケースがあります。

そんな時は実際に稼動しているサーバーで状態を確認するしかありません。

このLinuxの種類とバージョンを確認する方法も、サーバーの状態を
確認するのに役立つものになります。

Perlモジュールを一覧表示する

すでにインストールされている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
--------------------------------------------


■CentOS6.3サーバー構築マニュアルを無料プレゼント

  CenOS6.3のサーバー構築手順、VMware Player4の
  ダウンロードとインストール手順をまとめたマニュアルを
  無料でプレゼントしています。


  詳しくは↓のページで説明しています。今すぐクリックしてダウンロードしてください。
  CentOS6.3サーバー構築マニュアルを期間限定プレゼント


スポンサードリンク

Linux最強Tips集:当サイトについて

  • Linux最強Tips集は個人で運営しているサイトです。
  • ご意見、ご質問はメールでお願いいたします。

CentOS6.3サーバー構築

サイト内検索



基本コマンドTips

Linux起動Tips

ユーザー管理Tips

ディレクトリ・ファイル操作Tips

ディスク操作Tips

テキスト処理Tips

システム管理Tips

RPM Tips

ネットワークTips

セキュリティTips

サーバー管理Tips

Linux用語

相互リンク募集

facebook公式ページ

copyright(c) 2007-2012 Linux最強Tips集 All Rights Reserved.
ファンデーション
<>