[Linux]loggerコマンドでsyslogへの書込み方法

loggerコマンドで、任意のメッセージをsyslog(/var/log/messages)へ書込むことができます。他とば、lsコマンドやdfコマンドの結果を書込む場合は、以下の通り実行することで、実行結果が複数行のログとしてsyslogへ書込めます。

# df -m | logger

た だ、上記の通り実行すると、‘logger: ********************’とメッセージが出力され、味気ないものになってしまします。loggerコマンドのオプションで、以下の様に 指定したほうが後でシステムログを参照した時に、幾分わかりやすいと思います。

# df -m | logger -t dfm -i

‘dfm[4332]: ********************’とメッセージが出力されるので、dfmというキーワードからどういった意図で出力されたメッセージかが想像できます。

また、シェルスクリプト内でloggerコマンドを使う場合、以下の通り、環境変数にオプションを含んで設定していたほうが便利です。

# LOGGER=’/usr/bin/logger -t abc.sh -i’
# df -m | $LOGGER
# $LOGGER “********************”

また、利用場面は少ないと思いますが、コマンドラインで使用する場合は、aliasコマンドで、オプションを含めた設定をしておくほうが便利です。

# alias logger=’/usr/bin/logger -t cmdline -i’
# logger “********************”
# logger -s “********************”

[Linux]ipcsコマンドでメッセージキューの確認

ipcsコマンドで、メッセージキューの状態を確認することができます。 # ipcs -q キー msqid 所有者 権限 使用バイト数 メッセージ 0x99999999 0 root 666 0 0 0x99999999 9999999 root 666 7 1

ipcsコマンドで、メッセージキューの状態を確認することができます。

# ipcs -q

キー       msqid      所有者     権限       使用バイト数 メッセージ
0x99999999 0          root       666        0            0
0x99999999 9999999    root       666        7            1

[Linux]: PATH(パス)の確認と設定方法

■パス(PATH)はとは? 簡単に(楽に)コマンドを実行するために、 パスの設定をする事を『 パスを通す 』と言います。 たとえば /usr/local/pgsql/bin/psql というコマンドを psql とだけ入力して実行させるとします。 この場合 psql というコマンドがある場所が /u…

■パス(PATH)はとは? 簡単に(楽に)コマンドを実行するために、
パスの設定をする事を『 パスを通す 』と言います。
たとえば /usr/local/pgsql/bin/psql というコマンドを psql とだけ入力して実行させるとします。

この場合 psql というコマンドがある場所が /usr/local/pgsql/bin です。
つまり、/usr/local/pgsql/bin にパスを通す(環境変数 PATH で指定)事で、
【 psql 】と入力するだけで、実行することが出来るようになります。

■パスを確認するには?
コマンド【 echo $PATH 】(もしくは、env | grep PATH)でどこにパス(PATH)が通っているか確認できます。

$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/vine/bin:/home/zem/bin

パスは『 : 』(コロン)で区切られています。

 ■パスの優先度は?
パスの優先度は左の方が『 優先 』されます。
コマンド『 echo $PATH 』あるいは『 env | grep PATH 』で出てきた左が優先されます。
たとえば、/usr/local/bin/perl と /usr/bin/perl があるとします。
環境変数 PATH で /usr/local/bin の方が優先されると、
実際に実行されるコマンドは /usr/local/bin/perl となります。

■パスの設定方法 環境変数 $PATH を書き換えます。
たとえば /usr/local/pgsql/bin へパスを通したい場合

$ PATH=$PATH:/usr/local/pgsql/bin $ export PATH

このように入力します。
『 $PATH 』とは “現時点で環境変数 PATH に設定されているパス名”です。
これまで “/usr/local/bin” にパスが通っている場合は、”/usr/local/bin” に加えて
“/usr/local/bin/pgsql”がパスに加えられます。
複数のパスを加えるためには : で区切って指定します。
/usr/local/mysql/bin も一緒に指定する場合は次のようになります。

$ PATH=$PATH:/usr/local/pgsql/bin:/usr/local/mysql/bin $
export PATH

 ちなみに、コマンド『 export PATH 』は必須。
環境変数 PATH をエクスポート(出力)=環境変数を設定するという意味があります。
コマンドは『 export PATH=$PATH:/foo 』のように1行に纏めてもかまいません。

■ログインする度に自動で設定するには?
毎回ログインする度にパスの指定をするのは面倒なものです。
その場合、ホームディレクトリ配下にある .bash_profile を編集します。
.bash_profile の中に PATH=$PATH:~ と export の記述をするだけで、
毎回ログインするたびに自動で環境変数が設定されます。
環境変数の設定をサーバ内の全ユーザに対して指定したい場合は
/etc/profile ファイルを開き、末尾に PATH=$PATH:~ と export を追加する方法が確実でしょう。

各ユーザの .bash_profile の中には、ログイン後に /etc/profile
ファイルを読み込むような記述があるからです。

[Apache][.htaccess]mod_rewrite で特定の IP に対してアクセス制限する方法

mod_rewrite を使って特定の IP のみアクセスさせる、もしくはアクセスさせないようにするには以下のようにする。

アクセスを拒否

RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.1$ [OR]
RewriteCond %{REMOTE_ADDR} ^192\.168\.0\.2$
RewriteCond %{REQUEST_URI} !^error\.html
RewriteRule .* error.html

アクセスを許可

RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.1$
RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.2$
RewriteCond %{REQUEST_URI} !^error\.html
RewriteRule .* error.html