サーバー管理コマンド

UNIX系どっぷり生活ですが(仕事でLinux、自宅でBSD)運用上よく使う管理コマンドをメモ。

# top

起動しているプロセスの一覧とCPU、メモリーの使用率を表示。
サーバーが重いなと感じたらまずこれを使いましょう。

# ps

起動しているプロセスの一覧、-xでシステムプロセス、-auで全てのユーザーのプロセスを表示。
全プロセスを確認するときはps -auxと入力。ここではサービス等が正常な状態で起動しているかどうか等をチェックする。

# df

パーティションの使用率を表示。 -hオプションでK(キロ)・M(メガ)・G(ギガ)等単位をつけて表示してくれるので便利です。

# du

ディレクトリの使用量を表示。du -sk * とするとカレント直下のディレクトリの使用量を表示。

# netstat
TCP/IPでサービスを行っているサーバーなら必須のコマンド。-nでポート番号を数値に変換。基本はnetstat -lnで使用しています。

# ipcs
共有メモリ内の使用状況を表示。サービスをkillコマンドで強制終了させた場合にゴミが残っていることがあるのでそのときはipcrmで駆除。

Perlをソースからインストール

まず、ココを読まれた方にお伝えしたいことがあります。
Perlはソースからインストールするメリットがわかりません。
特にカスタマイズするものではないので特にソースコンパイルに興味が無ければパッケージからインストールしてください。

今回のサーバー構築はスペック的にも厳しいものがあるので、使わないサービスは一切入れないこととパッケージインストールはせず意地ででソースコンパイルという名目もあるので、Perlもソースからコンパイルします。

Perlはhttp://www.perl.com/CPAN/src/より入手。実はWindowsからpscpを使って転送しました。

コンフィグ
./Configure

コンパイル
make

インストール
make install

これだけだと超カンタンに見えますが、実はコンフィグが対話式で沢山の質問に対してyesかnoで答えなければいけません。あまりに面倒なのでデフォルトでいいやと[Enter]連打したら…。

> cd /usr/local/bin
> ls
a2p5.9.2 h2ph5.9.2 perldoc5.9.2 pod2text5.9.2 s2p5.9.2
c2ph5.9.2 h2xs5.9.2 perlivp5.9.2 pod2usage5.9.2 splain5.9.2
corelist5.9.2 instmodsh5.9.2 piconv5.9.2 podchecker5.9.2 xsubpp5.9.2
cpan5.9.2 libnetcfg5.9.2 pl2pm5.9.2 podselect5.9.2
dprofpp5.9.2 perl5.9.2 pod2html5.9.2 prove5.9.2
enc2xs5.9.2 perlbug5.9.2 pod2latex5.9.2 psed5.9.2
find2perl5.9.2 perlcc5.9.2 pod2man5.9.2 pstruct5.9.2

ちょっとまて─────!
こんなんじゃ使いにくいだろボケ───!

という事でやり直しです。 orz…

PAM: authentication error

リモートでSSHログインが出来ないから、BSDマシンがDHCPだとダメなのか?hosts.allowに書いてないとダメなのかとやってみましたが、実はローカルでやってもダメだった。そこで出たエラーが

PAM: authentication error

何ですかねこれ?

ググッてみたらこの文章。
Note: The configuration defaults for sshd(8) have been changed. SSH
protocol version 1 is no longer enabled by default. In addition,
password authentication over SSH is disabled by default if PAM is
enabled.

翻訳したらこうなる。
注意: sshd(8)のための構成デフォルトを変えました。 セキュアシェル (SSH)

プロトコルバージョン1はデフォルトでもう可能にされません。 さらに、PAMが
有効にされるなら、SSHの上のパスワード認証はデフォルトで無効にされます。

何ー!?仕様変更でパス認証が無効になっているのか?

/etc/ssh/ssh_config内において
PasswordAuthentication yes
を有効にした時点でサーバー自身からsshログインは可能になった。
さらに、/etc/ssh/sshd_configも同様に設定すると、リモートからログインが出来たーー!!