2010年3月29日月曜日

いろんなもののバージョン確認

CentOS:
# cat /etc/redhat-release

CentOS: パッケージでの確認
# rpm -qa | grep centos-release
centos-release-5-4.el5.centos.1
centos-release-notes-5.4-4

CentOS: カーネルの確認
# uname --kernel-release
2.6.9-023stab046.2-smp

Apache:
# httpd -V <-- data-blogger-escaped--v="" data-blogger-escaped-br="">

PHP:
# php -v

MySQL:
# mysql --version


2009年9月1日火曜日

不正アクセスの回数を調べる

不正アクセスが多いんでアクセス元IPを調べることにした
調べる元となるログは

/var/log/secure  ←■ このファイル

んで
キーとなるのはログの "Invalid user"
これを数えて判断することにした

"Invalid user"になった回数およびアクセス元は

# grep "Invalid user" secure | awk '{print $10}' | sort | uniq -c

で調べられ

39089 118.46.***.***  ←■ 39000回もアクセスするなんて糞だね
328 119.82.***.***
179 122.155.***.***
131 203.116.***.***

のように表示される

ちなみにこのコマンドの意味は secureログに出力された "Invalid user" の行を見つけ
10番目のワード(ここにIPアドレスがある)を取得し、ソート、んで重複した行を削除しカウントするという意味になる。
("Invalid user"が含まれる行抜粋)
Aug 30 05:10:55 hostname sshd[32379]: Invalid user test from 219.140.***.***

単語順番
Aug1ワード目
302ワード目
05:10:553ワード目
hostname4ワード目
sshd[32379]:5ワード目
Invalid6ワード目 (こいつと)
user7ワード目 (こいつをセットで検索)
test8ワード目 (これが不正アクセスを試みたユーザー名)
from9ワード目
118.46.***.***10ワード目 (これを基にカウント)

2009年8月4日火曜日

C言語ライクなPHP

何度も言っておりますがおいらの本職は C言語なプログラマー
それを踏まえ C言語から見たPHPの違いを書いてみたいと思います
(あくまでもメモなんで順番は気にせずにー)

■ 変数

-【連想配列 】-
 配列の添え字に文字列を使ったものをこう呼ぶらしい。C言語だと添え字は数字もしくは enumとかだけどPHPでは文字列も使えるのか。
これってどうなんでしょ、普通に使うのかな ??

■ 制御文

-【 foreach 】-

 これはC言語にはないですね。動きとしては for文と似たようなもので違いは連想配列でも有効みたい。ループを抜ける条件は配列の最後までいったときなのかな??

to be continue ...

2009年8月2日日曜日

PHPでのデバッグ出力

インストールに関する記事も書いてないのにすでにデバッグ出力
ま、覚えるにゃーいぢくるのが一番てことで変数とかをひたすらダンプしよう

1. ) 変数の値を調べる

var_dump()
print_r() <--- data-blogger-escaped-span="">

とか使えばよいらしいが
debuglib.php
なるグラフィカルなものもあるらしい

でも C言語なプログラマーとしては値がみれりゃ十分っすよ

ディレクトリだけを表示する

ディレクトリだけ表示したいときDOSだと

dir *.

でOKだがLinuxではそうはゆかない
これをするには

$ ls -al | grep ^d

とする。これは「ls」コマンドで表示したもの(行)が 'd'で始まっているものだけ表示させる。つまりパーミッションを表示させ( "ls -l" )一番左にディレクトリを表す 'd'が付くものだけを表示という意味らしい

なんかめんどいなぁー

【 dig 】 ネームサーバーに問い合わせする

※) CentOSで digコマンドを使用するには「bind-utils」パッケージが必要

1. ) 問い合わせ(まんまですが・・・)

$ dig "ドメイン名"


【 netstat 】 開いているポートの確認

1. ) 開いているポートを確認する

$ netstat -a

Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:http *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN

などと表示される。

[State]に表示されるのはこんな感じ
状態説明
ESTABLISHEDコネクションが確立されている状態
TIME_WAIT接続終了待ちの状態
CLOSED使用されていないポート
LISTEN接続待ちの状態
CLOSINGソケットは切断されているがデータは残っている状態


2. ) 接続数とかと数えたい

$ netstat -a | grep "キーワード" | wc -l

"キーワード"には TIME_WAITでも httpでも適当なもの使ってみればよい