環境構築でよく使う Linux コマンドなど

最近、環境構築する機会があったので、よく使う Linux コマンドなどをメモる。完全に個人のメモレベルなので、いろいろ間違っている可能性あり。
尚、OS は不幸にも CentOS 5.4 ...。

アーカイブ

.tar.gz 形式のアーカイブファイルを扱う場合は tar コマンドを使う。

# tar xzvf /path/to/foobar.tar.gz // 展開する
# tar czvf /path/to/foobar.tar.gz /foo/bar // 作成する
# tar czvf /path/to/foobar.tar.gz /foo/bar -X .ignore
(.ignore に記載したパターンに一致するファイルはアーカイブに含まれない)

ポート/プロセスを調べる

あるポートがどのプログラムに使われているか調べる場合は netstat コマンドを使う。
(Java のソフトウェアを使っていると java.net.BindException: Address already in use というエラーにしばしば遭遇することがある)

# netstat -nlp
  • n : 名前解決せず、IPアドレスで表示する
  • l : LISTEN しているポートを表示する
  • p : プロセスID(PID)とプログラム名を表示する

実行中のプロセスを調べる場合は ps コマンドを使う。

# ps auxf
  • a : 自分以外のセッションのプロセスを表示する
  • u : ユーザを表示する
  • x : すべてのプロセスを表示する
  • f : プロセスの親子関係を表示する

ネットワーク関連

DHCPの環境でIPアドレスを再取得する場合は dhclient コマンドを使う。

# dhclient -r // IPアドレス解放
# dhclient // IPアドレス取得

ネットワークを再起動する場合は /etc/init.d/network を使う。

# /etc/init.d/network restart
# service network restart // 本来の使い方はたぶんこっち

SSL 関連

httpdSSL を使う場合は以下の手順で証明書を作成する。(オレオレ証明書)
OpenSSL と mod_ssl をインストールしていない場合はインストールする。

# yum install openssl
# yum install mod_ssl

証明書を作成する。

# cd /etc/httpd/conf
# openssl genrsa -aes128 1024 > server.key
// パスフレーズを入力する

# openssl req -new -key server.key > server.csr
// Common Name にはサーバのホスト/IPアドレスを設定する (他はブランクでも問題なし)

# openssl x509 -in server.csr -days 365 -req -signkey server.key > server.crt
// 365日間有効な証明書

SSL の設定

# vi /etc/httpd/conf.d/ssl.conf

  // 以下を変更する
  SSLCertificateFile /etc/httpd/conf/server.crt
  SSLCertificateKeyFile /etc/httpd/conf/server.key

# /etc/init.d/httpd restart // 再起動

(番外) CentALT から Apache HTTP Server インストールする

古い CentOS だと、新しいバージョンの httpdyum でインストールできない場合がある模様。この場合は CentALT リポジトリからインストールする。

// EPEL
# wget http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
# rpm -ivh epel-release-5-4.noarch.rpm
// CentALT
# wget http://mirror.sysadminguide.net/centalt/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm
# rpm -ivh centalt-release-5-3.noarch.rpm

# vi /etc/yum.repos.d/centalt.repo

  // baseurl と enabled を変更
  baseurl=http://mirror.sysadminguide.net/centalt/repository/centos/5/$basearch/
  enabled=0

# yum list --enablerepo=CentALT httpd | grep CentALT // インストールするバージョンを確認する
# yum install --enablerepo=CentALT httpd

(番外) 旧バージョンの Jenkins をインストールする

不幸にも Java 6 で Jenkins を稼働させる必要がある場合は 1.607 をインストールする。
(1.608 以降は Java 7 以上が必須)

// Jenkins インストールで Error performing checksum になるのでこのパッケージをインストール
# yum -y --enablerepo=epel install python-hashlib


# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# wget http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
# rpm --import jenkins-ci.org.key

# yum --showduplicates list jenkins // インストールするバージョンを確認する
# yum install jenkins-1.607-1.1