2008年3月18日火曜日

MySQLで小数点を扱う

小数点といえばfloatかdoubleというイメージがあったんですが、MySQLのマニュアルによると

DECIMAL 型は、SQL-92 標準で使用可能なデータ型と同じデータ型として実装されます。これらのデータ型は、金額データに関する値など、正確な精度で保存することが重要となる値に対して使用されます。


とありました。
ちょうどお金関係の小数点を扱っていたので、急いでfloatからdecimalに変更することにしました。
ちなみに以下のような感じで桁数を指定できます。

decimal(6,2)

上のケースだと「1234.56」みたいな、全体で6桁、小数点以下が2桁という指定になります。

2008年3月13日木曜日

phpでスクレイピイング

スクレイピングとは、HTMLから必要なデータを抜き出す処理のことを言うそうです。
この単語事態を知らなかったんですが、ググるといっぱいでてきます。
使えそうなライブラリがいっぱいあるので、今後ウェブの部分的なデータが必要になったら使ってみようと思います
http://dxd8.com/archives/85/

LogWatchのメールがすごいことに・・・

自宅でたてているサーバーから「LogWatch for localhost.localdomain」というメールが毎日届きます。サーバーへのアクセスを毎日まとめて送ってくれるものなんですが、このメールの容量が、なんと5万7千行、3MBになってました。。。

内容を見てみると、SSHDへの攻撃が99%を占めていました。発信元IPは韓国。

rootとかpgsql、adam、andrew、michaelなど、存在しそうなアカウント名で手当たり次第アタックをかけられてました。

うちはiptablesでアクセス制限してるので攻撃はすべてはじくんですが、SSHDへのアタックにはhosts.denyを使うのが有効らしいので、さっそく導入。

まずhosts.allowで許可するIPを指定
sshd: 192.168.1. : allow
sshd: 123.456.789.012 : allow


そしてhosts.denyで全部拒否
sshd: ALL

そして翌日、LogWatchからのメールは6KBになりました。。

参考
http://fg-180.katamayu.net/archives/2005/11/05/104105

RSSフィードが簡単に吐き出せる「FeedWriter.php」

http://phpspot.org/blog/archives/2008/03/phpatomrss12fee.html
これはいい。今までsmartyでテンプレ作ってRSS吐いてましたが、今度からこれ使います。

2008年3月10日月曜日

ntpdの設定(サーバー時刻を自動で同期)

自宅サーバーの時刻が1分ほど遅れていた。
調べてみると、ntpdの設定をするのを忘れていた。
というわけで、早速設定。このページを参考にしました。
http://memorva.jp/memo/linux/date_ntp.php

vi /etc/ntp.conf
------------------------------------------------------------------------------------------------
server 130.69.251.23 # ntp.nc.u-tokyo.ac.jp
server 133.31.180.6 # ntp.sut.ac.jp (tusntp.tus.ac.jp)
server 130.34.11.117 # ntp1.tohoku.ac.jp (zao.net.tohoku.ac.jp)
server 130.34.48.32 # ntp2.tohoku.ac.jp (izumi.gw.tohoku.ac.jp)
------------------------------------------------------------------------------------------------

2008年3月4日火曜日

2008年3月3日月曜日

サーバーのUSBメモリを自動マウントにする

うちの自宅サーバーにはUSBメモリが2本刺さっていて、バックアップ用に使ってます。OSはCentOS4です。

サーバーなので滅多に再起動しないんですが、最近カーネルパニックで落ちたりしており、その都度USBメモリをマウントするのが面倒に感じていました。
そんなわけで自動マウントにすることにしました。

さっそく/etc/fstabをのぞいてみると、すでに記述がありました。


/dev/sdc1 /media/usbdisk ext2 pamconsole,noatime,sync,exec,noauto,managed 0 0
/dev/sdb1 /media/usbdisk1 vfat pamconsole,noatime,sync,exec,noauto,managed 0 0


最近のディストリビューションだと、USBメモリを刺した時点で既にfstabにこれらの記述をしてくれるみたいです。便利だ。

調べてみたところ、noautoが自動マウント拒否の指定のようなので、ここを削除して再起動。すると無事マウントされてました。これでよし、と。