経験ゼロからプロのSEを目指しているさまを書きなぐり★
[1]
[2]
おひさしぶりです。
1年ぶりの更新です。
ついにSEになって3年目に突入いたしました。
んで最近はサーバ構築ばっかやっております。。
明日からSolarisをインストールします。
さてさて。
最近Poundについて調査しました。
プロキシーサーバと考えて良いんでしょうか。。。
よくわからずやっておりますが。
アクセス元からはPoundのサーバへアクセスすると
設定された別サーバへ飛ばしてくれるのですが、
アクセス元 → Pound → コンテンツサーバ
こんな感じ?
でもコンテンツサーバ側でアクセスログを見ると
すべてPoundからのアクセスしか表示されず、
アクセス制御したくてもPoundのサーバからのアクセスを許可してしまえばどっからでもアクセスできてしまうよ?
どーしよう!
てことになり、
調べてみたら
HTTP:X-Forwarded-Forでアクセス元のIPがとれるらしい。
なのでRewrite設定で
RewriteCond %{HTTP:X-Forwarded-For} !^192\.168\.
とか書いて、アクセス元のIPが192.168.~じゃなかったら別のエラーページにでも飛ばせばいいんじゃないっすか?
って結論に達しました。
でもコンテンツサーバのログみてもPoundサーバのIPしか表示されないからhttpd.confのLogFormat変更し、
%{X-Forwarded-For}i
で表示するようにしちゃいなYO☆
うーん。
つっこみどころ満載かもしれない。。。
私はこのように設定しました。
うううううーん。
久々のブログ。。。
何書いてよいか全くわからぬぅー。。
1年ぶりの更新です。
ついにSEになって3年目に突入いたしました。
んで最近はサーバ構築ばっかやっております。。
明日からSolarisをインストールします。
さてさて。
最近Poundについて調査しました。
プロキシーサーバと考えて良いんでしょうか。。。
よくわからずやっておりますが。
アクセス元からはPoundのサーバへアクセスすると
設定された別サーバへ飛ばしてくれるのですが、
アクセス元 → Pound → コンテンツサーバ
こんな感じ?
でもコンテンツサーバ側でアクセスログを見ると
すべてPoundからのアクセスしか表示されず、
アクセス制御したくてもPoundのサーバからのアクセスを許可してしまえばどっからでもアクセスできてしまうよ?
どーしよう!
てことになり、
調べてみたら
HTTP:X-Forwarded-Forでアクセス元のIPがとれるらしい。
なのでRewrite設定で
RewriteCond %{HTTP:X-Forwarded-For} !^192\.168\.
とか書いて、アクセス元のIPが192.168.~じゃなかったら別のエラーページにでも飛ばせばいいんじゃないっすか?
って結論に達しました。
でもコンテンツサーバのログみてもPoundサーバのIPしか表示されないからhttpd.confのLogFormat変更し、
%{X-Forwarded-For}i
で表示するようにしちゃいなYO☆
うーん。
つっこみどころ満載かもしれない。。。
私はこのように設定しました。
うううううーん。
久々のブログ。。。
何書いてよいか全くわからぬぅー。。
PR
Net::POP3モジュールを使用して
別サーバのメールを取得してみる。
まぁ定番のCPANからいただきましょう。
#!/bin/perl
use Net::POP3;
$pop = Net::POP3->new('ホスト名'); # 接続
if (! $pop) {
die "接続失敗: $!";
}
$check = $pop->login('ユーザ名', 'パスワード'); # ログイン
if ($check == undef) {
die "認証失敗: ";
}
$ref = $pop->list(); # メール一覧のハッシュのリファレンスを得る
foreach $msg (keys %$ref) { # msgはメッセージ番号(?)
$lines = $pop->get($msg) # メール本文取得
foreach $mail (@$lines) {
print @$mail;
}
}
$pop->quit(); # ログアウト
こんな感じらしいです。
ループのまわし方によってヘッダチェックなどもできます。
ちなみに2回目のforeachは必要ないみたいです。。。
(じゃあ直せよ)
久々の調査。
しかもプログラミング付き。
たのしかったっす。
ちなみに読んだらそのメール消去。
みたいなのもあります。
が、今回は省略。
◆参考サイト◆
http://perldoc.jp/docs/modules/libnet-1.12/Net/POP3.pod
http://www.ksknet.net/cat28/netpop3.html
http://x68000.q-e-d.net/~68user/net/module-pop3.html
ありがとうございますっ。
別サーバのメールを取得してみる。
まぁ定番のCPANからいただきましょう。
#!/bin/perl
use Net::POP3;
$pop = Net::POP3->new('ホスト名'); # 接続
if (! $pop) {
die "接続失敗: $!";
}
$check = $pop->login('ユーザ名', 'パスワード'); # ログイン
if ($check == undef) {
die "認証失敗: ";
}
$ref = $pop->list(); # メール一覧のハッシュのリファレンスを得る
foreach $msg (keys %$ref) { # msgはメッセージ番号(?)
$lines = $pop->get($msg) # メール本文取得
foreach $mail (@$lines) {
print @$mail;
}
}
$pop->quit(); # ログアウト
こんな感じらしいです。
ループのまわし方によってヘッダチェックなどもできます。
ちなみに2回目のforeachは必要ないみたいです。。。
(じゃあ直せよ)
久々の調査。
しかもプログラミング付き。
たのしかったっす。
ちなみに読んだらそのメール消去。
みたいなのもあります。
が、今回は省略。
◆参考サイト◆
http://perldoc.jp/docs/modules/libnet-1.12/Net/POP3.pod
http://www.ksknet.net/cat28/netpop3.html
http://x68000.q-e-d.net/~68user/net/module-pop3.html
ありがとうございますっ。
データベースのロック方法を探しています。
つーかBerkeley DBの。
「データベース ロック」
って検索すると
「ロックマン攻略データベース」が
めっちゃでてくる。
いやーわかるけどさ。。。
ロックマンに用はないんですよ。
つーかBerkeley DBの。
「データベース ロック」
って検索すると
「ロックマン攻略データベース」が
めっちゃでてくる。
いやーわかるけどさ。。。
ロックマンに用はないんですよ。
今研修の一環で、
データベースについて調べてるんだけど、
なんか全然情報がないの。
いやあることはあるんですよ。。。
でも自分が一番望んでいるのではなくてね。
その名もBerkeley DBっちゅーやつなんですが。
これってC言語やPerlから参照するみたいなんだけど、
LDAPの時みたいに
コマンドライン上からも検索とかできるのかな~。
マジわからん。。。
本探しても洋書しかなくてさ。。。
載ってる本はあるんだろうけど、
これオンリーってのは難しいんかな。。。
図書館でも行って調べてこようかな。。。
暇がない(泣)
データベースについて調べてるんだけど、
なんか全然情報がないの。
いやあることはあるんですよ。。。
でも自分が一番望んでいるのではなくてね。
その名もBerkeley DBっちゅーやつなんですが。
これってC言語やPerlから参照するみたいなんだけど、
LDAPの時みたいに
コマンドライン上からも検索とかできるのかな~。
マジわからん。。。
本探しても洋書しかなくてさ。。。
載ってる本はあるんだろうけど、
これオンリーってのは難しいんかな。。。
図書館でも行って調べてこようかな。。。
暇がない(泣)
ログローテート。
各種ログファイルは放置しておくと時間とともに肥大化する。
この問題を解決するのがログローテーションである。
ログローテーションは、例えばlogというログファイルの名前をlog1 log2 log3・・・
というように定期的に回してバックアップする。
ローテーション数を3にしたのであれば定期的にlog3のログはlog2に上書きされ、
log2のログはlog1に上書きされ、log1のログはlogに上書きされます。
そして新たな空のログファイルlogが生成される。
一週間間隔でローテーションするのであれば
ログファイルは1週間ログデータが記録されるごとに空になり、
3週間分のログファイルがバックアップされていることになる。
説明長いよ!!
とりあえずログファイルのバックアップをとって、
ログファイルを空にしますってことね。
☆設定ファイルのデフォルト
/etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly ←毎週ログローテーションする。
# keep 4 weeks worth of backlogs
rotate 4 ←4回ローテーションする。この場合は4週間分のログがバックアップされる。
# create new (empty) log files after rotating old ones
create ←ローテーションしたときに新たな空のログファイルを生成する。
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d ←/etc/logrotate.d以下の設定ファイルを読み込む。
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp { ←/var/log/wtmpファイルのローテーション設定である。
monthly
create 0664 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
☆ログファイルの設定ファイルの書き方(日本語おかしい・・・?)
/etc/logrotate.dディレクトリ内
ログファイル名 [ ログファイル名 ・・・]{
設定値
・・・
}
設定値には以下のようなものがある。
--------------------------------------------------------------------------
daily・・・・・毎日ログローテーションする。
monthly・・・毎月ログローテーションする。
weekly・・・・毎週ログローテーションする。
rotate 回数・・指定した回数だけローテーションする。
--------------------------------------------------------------------------
これ以上挙げるときりがない。。。
通常ログファイルが存在しない時はエラーが出力されるが、
"missingok"を指定することでエラー出力はなくなる。
あとは
# /etc/cron.daily/logrotate
実行。
エラーがでなければオッケ。
もしapacheのログを設定したならば、
apacheのリロードをすること。
でないとログファイル見てくれないらしいよ。
ちゃんちゃん☆
各種ログファイルは放置しておくと時間とともに肥大化する。
この問題を解決するのがログローテーションである。
ログローテーションは、例えばlogというログファイルの名前をlog1 log2 log3・・・
というように定期的に回してバックアップする。
ローテーション数を3にしたのであれば定期的にlog3のログはlog2に上書きされ、
log2のログはlog1に上書きされ、log1のログはlogに上書きされます。
そして新たな空のログファイルlogが生成される。
一週間間隔でローテーションするのであれば
ログファイルは1週間ログデータが記録されるごとに空になり、
3週間分のログファイルがバックアップされていることになる。
説明長いよ!!
とりあえずログファイルのバックアップをとって、
ログファイルを空にしますってことね。
☆設定ファイルのデフォルト
/etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly ←毎週ログローテーションする。
# keep 4 weeks worth of backlogs
rotate 4 ←4回ローテーションする。この場合は4週間分のログがバックアップされる。
# create new (empty) log files after rotating old ones
create ←ローテーションしたときに新たな空のログファイルを生成する。
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d ←/etc/logrotate.d以下の設定ファイルを読み込む。
# no packages own wtmp -- we'll rotate them here
/var/log/wtmp { ←/var/log/wtmpファイルのローテーション設定である。
monthly
create 0664 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
☆ログファイルの設定ファイルの書き方(日本語おかしい・・・?)
/etc/logrotate.dディレクトリ内
ログファイル名 [ ログファイル名 ・・・]{
設定値
・・・
}
設定値には以下のようなものがある。
--------------------------------------------------------------------------
daily・・・・・毎日ログローテーションする。
monthly・・・毎月ログローテーションする。
weekly・・・・毎週ログローテーションする。
rotate 回数・・指定した回数だけローテーションする。
--------------------------------------------------------------------------
これ以上挙げるときりがない。。。
通常ログファイルが存在しない時はエラーが出力されるが、
"missingok"を指定することでエラー出力はなくなる。
あとは
# /etc/cron.daily/logrotate
実行。
エラーがでなければオッケ。
もしapacheのログを設定したならば、
apacheのリロードをすること。
でないとログファイル見てくれないらしいよ。
ちゃんちゃん☆