Linux

デーモンの管理 (CentOSの場合)

起動時にデーモンを自動起動させるには

例えば、mysqlの場合

# root
chkconfig mysqld on

chkconfig の設定状況は chkconfig --list で確認できる。

手動でデーモンを起動させるには

例えば、mysqlの場合

# root
service mysqld start

手動で作った起動スクリプトを chkconfig に管理させるには

/etc/init.d/mydaemon というのがあるとすると

# root
chkconfig --add mydaemon

Linuxのディストリビューションの確認方法

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04 LTS
Release:        12.04
Codename:       precise

このコマンドはパッケージのインストールが必要。

Ubuntuの場合

sudo apt-get install lsb-release

/etc/ に入っているファイルで確認するには

RedHat, CentOS などの場合

$ cat /etc/redhat-release
CentOS release 5.2 (Final)

Debian, Ubuntu などの場合

$ cat /etc/debian_version
wheezy/sid

スクリプトで自動判定するには

# ファイルの有無で調べる
if [ -e /etc/redhat-release ] ; then
    echo Redhat
elif [ -e /etc/debian_version ] ; then
    echo Debian
fi

# パッケージ管理ツールのコマンドで調べる
if [ -x /usr/bin/yum ] ; then
    echo Redhat
elif [ -x /usr/bin/apt-get ] ; then
    echo Debian
fi

adduseruseradd

-> adduser コマンド

sudoの設定方法

visudo というコマンドをroot権限で実行すると、設定ファイルがviなどで開ける。設定ファイルは /etc/sudoers だが、これを直接開いて編集すると、万が一書き方が間違っていたりしてsudoできなくなってしまうと大変。それを防ぐために visudo というコマンドは、設定ファイルをエディタで編集した後に構文チェックをして問題ない場合に限りそれを適用する仕組みになっている。

CentOS

sudoを使うには、最初にroot権限で visudo を実行して設定変更が必要。以下のような行があるので、この行のコメントを解除して有効にする。

# %wheel ALL=(ALL) ALL

次に vi /etc/group を編集してwheelグループにsudo可能にしたいユーザを追加する。これで設定完了だが、設定変更前からwheelに追加したそのユーザでログインしたままの場合は、ログインしなおさないと変更が反映されないもよう。

(CentOS6.4で確認)

なぜwheelという名前のグループなのか?

なぜsudoする権限のあるグループが「wheel」という名前なのか
http://codaholic.org/?p=1757

諸説あるようですが個人的に納得したのが big wheel から由来している説です。big wheel というのは「大物」とか「実力者」とかそういった意味のある言葉のようです

Ubuntu

OSセットアップ時に作成したユーザはデフォルトでsudoという名前のグループに入っていて、そのグループに入っているユーザには任意のコマンドをsudoで実行できるようになっている。

特定のコマンドをパスワードなしでsudoできるようにするには、

%sudo ALL=(ALL) NOPASSWD: /etc/init.d/apache2

などと書く。この例ではApacheの起動・終了・リロードなどがsudoグループであればパスワードなしで実行できる。パスワードなしということは、スクリプトの中にこのコマンドを書いて自動実行させることもできる。

(Ubuntu12.04で確認)

ハードウェアスペックの情報を確認するには

LinuxマシンのコンソールからメモリやCPUのコア数などを調べる方法。仮想環境で動いていれば、その環境に割当てられているハードウェアを確認できる。

CPU・コア数

cat /proc/cpuinfo

これはLinuxの場合で、Macはこの方法では見ることができず、以下のようにする。

system_profiler SPHardwareDataType

コア数を数値で取得する例

cat /proc/cpuinfo | grep '^processor' | wc -l

ディスク容量

df

LinuxでもMacでも、このコマンドでマウントしているファイルシステムの一覧とそれぞれの容量や使用状況を確認することができる。 (Ubuntu Server 13.10, Mac OSX 10.9.1で確認)

メモリ

free -h

Linuxでメモリの容量や使用状況を確認することができる。 (Ubuntu Server 13.10で確認)

runlevel

現在のLinuxのランレベルを調べるコマンド。

$ runlevel
N 2

1つ前のランレベルと現在のランレベルが表示される。1つ前のランレベルがない場合は N と表示される。

手元のUbuntu Server 13.04では2、CentOS 6.4では3であった。

RHEL 7からはランレベルの概念がなくなるらしい。
http://www.hitachi-solutions.co.jp/redhat/sp/column/vol01/

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。