2012年 7月 の記事

CentOS で 指定したプロセスの PID を表示する方法

CentOS で 指定したプロセスの PID を表示する方法は以下の通り。

(例) sshdのIDを表示する場合

# pgrep sshd
1348
3217

または

# pidof sshd
3217 1348

CentOS でファイル内容のパターンマッチングを行い、ファイル名を表示する方法

CentOS でファイル内容のパターンマッチングを行い、ファイル名を表示する方法は以下の通り。

(例) 文字列”error”を含むファイルを/var/log/から検索する場合

# find /var/log/ -type f -exec grep error /dev/null {} \;

または

# grep -Hr error /var/log/

rpmパッケージをインストールした日時を確認する方法

rpmパッケージをインストールした日時を確認する方法は以下の通り。

# rpm -qa --last

CentOS で圧縮したテキストファイルの内容を確認する方法

CentOS で圧縮したテキストファイルの内容を確認する方法は以下の通り。

# zcat <ファイル名>
# zgrep <ファイル名>
# zmore <ファイル名>
# zless <ファイル名>

(使用例)

# file file.txt.gz
file.txt.gz: gzip compressed data, was "file.txt", from Unix
# zcat file.txt.gz
aaa
bbb
ccc
# zgrep aaa file.txt.gz
aaa
# zgrep -H aaa file.txt.gz
file.txt.gz:aaa
# zmore file.txt.gz
------> file.txt.gz <------
aaa
bbb
ccc
#  zless file.txt.gz
aaa
bbb
ccc
file.txt.gz (END)

### 参考 ###

# cat file.txt.gz
ヨPfile.txtKLL腴JJ祀NN・悊
# grep aaa file.txt.gz
# more file.txt.gz

ヨP
# less file.txt.gz
aaa
bbb
ccc
file.txt.gz (END)

lessコマンドでは圧縮したテキストファイルを閲覧できた。

pppoe-serverでLAN型払い出しサービスを模擬するスクリプト

pppoe-serverでLAN型払い出しサービスを模擬するスクリプト

1. /etc/ppp/route.list を作成

# REMOTE_IP  PREFIX
172.17.1.254 24
172.17.2.254 24
172.17.3.254 24

2. /etc/ppp/ip-up.local を作成

#!/bin/sh

PPP_IF=$1
REMOTE_ADDR=$5
ROUTE_LIST=/etc/ppp/route.list
LOG_FILE=/var/log/pppoe_route.log
LANG=C
CUR_MONTH=$( date +%b )
CUR_DATE=$( date +%d )
CUR_TIME=$( date +%H:%M:%S )
NOW="${CUR_MONTH} ${CUR_DATE} ${CUR_TIME}"

if [ ! -f "${ROUTE_LIST}" ];then
   echo "${NOW} No such file: ${ROUTE_LIST}" >> ${LOG_FILE}
   exit 0
fi

while read list
do
   echo ${list} | grep ^[1-9] > /dev/null
   if [ $? -eq 0 ];then
      GET_ADDR=$( echo ${list} | awk '{ print $1 }' )
      if [ "${REMOTE_ADDR}" = "${GET_ADDR}" ];then
         PREFIX=$( echo ${list} | awk '{ print $2 }' )
         if [ "${PREFIX}" -lt 32 ];then
            NETWORK=$( ipcalc ${GET_ADDR}/${PREFIX} -n | awk -F'=' '{ print $2}' )
            echo "${NOW} ADD ${NETWORK}/${PREFIX} gw ${PPP_IF}" >> ${LOG_FILE}
            route add -net ${NETWORK}/${PREFIX} dev ${PPP_IF} > /dev/null
         fi
      fi
   fi
done<${ROUTE_LIST}

3. /etc/ppp/ip-down.local を作成

#!/bin/sh

PPP_IF=$1
REMOTE_ADDR=$5
ROUTE_LIST=/etc/ppp/route.list
LOG_FILE=/var/log/pppoe_route.log
LANG=C
CUR_MONTH=$( date +%b )
CUR_DATE=$( date +%d )
CUR_TIME=$( date +%H:%M:%S )
NOW="${CUR_MONTH} ${CUR_DATE} ${CUR_TIME}"

if [ ! -f "${ROUTE_LIST}" ];then
   echo "${NOW} No such file: ${ROUTE_LIST}" >> ${LOG_FILE}
   exit 0
fi

while read list
do
   echo ${list} | grep ^[1-9] > /dev/null
   if [ $? -eq 0 ];then
      GET_ADDR=$( echo ${list} | awk '{ print $1 }' )
      if [ "${REMOTE_ADDR}" = "${GET_ADDR}" ];then
         PREFIX=$( echo ${list} | awk '{ print $2 }' )
         if [ "${PREFIX}" -lt 32 ];then
            NETWORK=$( ipcalc ${GET_ADDR}/${PREFIX} -n | awk -F'=' '{ print $2}' )
            echo "${NOW} DELETE ${NETWORK}/${PREFIX} gw ${PPP_IF}" >> ${LOG_FILE}
            route del -net ${NETWORK}/${PREFIX} dev ${PPP_IF} > /dev/null
         fi
      fi
   fi
done<${ROUTE_LIST}

4. ip-up.local と ip-down.local に実行権を与える

# chmod +x /etc/ppp/ip-up.local
# chmod +x /etc/ppp/ip-down.local

端末型払い出しのルーティングテーブル

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.0      0.0.0.0         255.255.255.0   U     0      0        0 ppp0

LAN型払い出しのルーティングテーブル

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.17.1.0      0.0.0.0         255.255.255.0   U     0      0        0 ppp0
172.17.1.254    0.0.0.0         255.255.255.255 UH    0      0        0 ppp0

CentOS 6 に pppoe-server をインストールする方法

CentOS 6 に pppoe-server をインストールする方法は以下の通り。

1. ファイアウォールの無効化

# chkconfig iptables off
# chkconfig ip6tables off

2. /etc/selinux/config の編集(SELinuxの無効化)

SELINUX=disabled

3. /etc/sysctl.conf の編集(ルーティングの有効化)

net.ipv4.ip_forward = 1

4. 再起動

# sync;sync;sync
# reboot

5. パッケージのインストール

# yum -y install ppp rp-pppoe

6. /etc/ppp/pppoe-server-options の編集

require-pap
require-chap
#login
lcp-echo-interval 10
lcp-echo-failure 2

7. /etc/ppp/chap-secrets の編集(chap認証の設定)

papを使う場合は/etc/ppp/pap-secretsを編集する

# Secrets for authentication using CHAP
# client  server  secret  IP addresses
pc1       *       pass1   172.16.1.254
pc2       *       pass2   172.16.2.254
pc3       *       pass3   172.16.3.254
lan1      *       pass1   172.17.1.254
lan2      *       pass2   172.17.2.254
lan3      *       pass3   172.17.3.254

8. /etc/init.d/pppoe-server の編集(起動スクリプトの修正)

pppoe-server起動時に、ローカル側のIPアドレスを指定
(例)eth0で起動し、IPアドレスを172.16.0.1に指定する場合

. /etc/rc.d/init.d/functions
RETVAL=0
prog=pppoe-server
options='-I eth0 -L 172.16.0.1'

pppoe-server起動時に、eth0の設定を消去

start() {
        check
        echo -n $"Starting $prog: "
        /sbin/ifconfig eth0 0.0.0.0 up
        daemon /sbin/$prog ${options}
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
        return $RETVAL
}

pppoe-server停止時に、eth0の設定を復元

stop() {
       check
        echo -n $"Stopping $prog: "
        killproc /sbin/$prog
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog && /sbin/ifup eth0
        return $RETVAL
}

9. pppoe-serverの起動

# /etc/init.d/pppoe-server start

10. pppoe-serverの停止

# /etc/init.d/pppoe-server stop

11. pppoe-serverの状態確認

# /etc/init.d/pppoe-server status

PPPoEクライアントにユーザーIDとパスワードを設定すれば、接続できる。
(例) ユーザーID: pc1 パスワード: pass1

環境:
CentOS 6.3 (x86_64)
ppp-2.4.5-5.el6.x86_64
rp-pppoe-3.10-8.el6.x86_64

### 参考 ###

起動スクリプトを使用しないでpppoe-serverを起動

# ifconfig eth0 0.0.0.0 up
# pppoe-server -I eth0 -L 172.16.0.1

起動スクリプトを使用しないでpppoe-serverを停止

# kill -15 `pidof pppoe-server`
# ifup eth0

起動スクリプトを使用しないでpppoe-serverのPIDを確認

# pidof pppoe-server

Solaris 10 で ipfilter を使用する方法

Solaris 10 で ipfilter を使用する方法は以下の通り。

1. ipf.confにフィルターを記述

# vi /etc/ipf/ipf.conf

2. ipfilterの有効化

# svcadm enable ipfilter

### 参考 ###

フィルターの有効化

# ipf -E

フィルターの無効化

# ipf -D

フィルターの初期化(IN/OUT)

# ipf -Fa

フィルターの初期化(INのみ)

# ipf -Fi

フィルターの初期化(OUTのみ)

# ipf -Fo

フィルターの読み込み

# ipf -f /etc/ipf/ipf.conf

フィルターの確認

# ipstat -io

フィルターログの確認

# ipmon

### サンプルフィルター ###

loすべて許可

pass in quick on lo0 all
pass out quick on lo0 all

hme0上でICMP許可

pass in quick on hme0 proto icmp all keep state
pass out quick on hme0 proto icmp all keep state

hme0上でTCP許可

pass in quick on hme0 proto tcp from any to any keep state
pass out quick on hme0 proto tcp from any to any keep state

hme0上でUDP許可

pass in quick on hme0 proto udp from any to any keep state
pass out quick on hme0 proto udp from any to any keep state

hme0上でその他の通信をすべて遮断

block in log on hme0 all
block out log on hme0 all

環境:
Solaris 10 u10 (sparc)

Solaris 10 に Dovecot 2.1 をインストールする方法

Solaris 10 に Dovecot 2.1 をインストールする方法は以下の通り。

1. 環境変数PATHに以下を追加( /etc/profile )

/usr/local/bin
/usr/local/sbin

【設定例】

PATH=/usr/sbin:/usr/bin:/usr/ccs/bin:/usr/sfw/bin:/usr/local/bin:/usr/local/sbin
export PATH

2. 環境変数MANPATHに以下を追加( /etc/profile )

/usr/local/share/man

【設定例】

MANPATH=/usr/share/man:/usr/sfw/man:/usr/openwin/share/man:/usr/local/man:/usr/local/share/man
export MANPATH

3. su実行時のSUPATHを設定( /etc/default/su )

【設定例】

SUPATH=/usr/sbin:/usr/bin:/usr/ccs/bin:/usr/sfw/bin:/usr/local/bin:/usr/local/sbin

4 . Dovecot用ユーザを作成

# groupadd -g 97 dovecot
# groupadd -g 497 dovenull
# useradd -u 97 -s /bin/false -d /dev/null -g dovecot dovecot
# useradd -u 498 -s /bin/false -d /dev/null -g dovenull dovenull

5. 一般ユーザーでログインし、作業ディレクトリを作成

$ mkdir dovecot
$ cd dovecot

6. Dovecotのダウンロード、インストール

$ wget http://dovecot.org/releases/2.1/dovecot-2.1.7.tar.gz
$ gunzip -c dovecot-2.1.7.tar.gz | tar xvf -
$ cd dovecot-2.1.7
$ ./configure
$ make
$ su
# make install
# cp doc/example-config/dovecot.conf /usr/local/etc/dovecot/
# cp -r doc/example-config/conf.d /usr/local/etc/dovecot/

7. Dovecotの設定(次のファイルを編集)

/usr/local/etc/dovecot/dovecot.conf
/usr/local/etc/dovecot/conf.d/*.conf

8. IPCパラメータの変更

# ulimit -n 1024
# echo "set rlim_fd_cur = 1024" >> /etc/system

9. Dovecotの起動

# dovecot

### 参考 ###

Dovecotの停止

# dovecot stop

Dovecotの設定を確認

# doveconf

環境:
Solaris 10 u10 (sparc)
Dovecot-2.1.7

Solaris 10 で推奨パッチをあてる方法

Solaris 10 で推奨パッチをあてる方法は以下の通り。

1. 推奨パッチをダウンロード

ファイル名:
10_Recommended.zip (sparc)
10_x86_Recommended.zip (x86)

2. 推奨パッチをインストール

# unzip -q 10_Recommended.zip
# init S
# cd 10_Recommended
# ./installcluster --<PASSCODE>

PASSCODEは次のファイルの中に書いてある

10_Recommended.README
10_Recommended.html
10_x86_Recommended.README
10_x86_Recommended.html

3. 再起動

# sync;sync;sync
# shutdown -y -g0 -i6

環境:
Solaris 10 u10

RedHat Enterprise Linux 4 で RHN へ再登録する方法

RedHat Enterprise Linux 4 で RHN へ再登録する方法は以下の通り。

1. systemidファイルをリネーム

# cd /etc/sysconfig/rhn
# mv systemid systemid.org

2. RHNへ登録

# up2date --register

環境:
RedHat Enterprise Linux ES 4 (update7)

TOP

INFORMATION

当サイトは備忘録であり、その内容を保証するものではありません。 当サイトまたはリンク先によるいかなるトラブルや損害に関しても、一切の責任を負いかねます。 当サイトの内容を無断で転用したり、転載する等の行為はおやめください。