2008-01-01から1年間の記事一覧

いらないデーモンの一括削除(改)

Perl のワンライナーで、-a オプション(AWK風に使える)を使って以前書いた、「 いらないデーモンの一括削除 - Sleepless geek in Seattle」 を改良した。いらないデーモンを指定して削除するのではなく、必要なデーモンを指定してそれ以外を削除するように…

Web::Scraper を使ってテレビ番組表を毎日メールする

コマネチ大学数学科のような深夜番組を予約録画していると時々時間がずれていて非常に悲しいことになる。 かといって毎日番組表をチェックするのもめんどくさい。 そこで、Web::Scraper のお試しも兼ねて、番組表を見やすく加工して自分宛にメールするように…

CPAN の設定変更方法

CPANの起動 # perl -MCPAN -e shell モジュール ダウンロード用のFTP/HTTP サイトの追加 http://www.cpan.org/SITES.html から調子の良さそうなサイトを選んで、 cpan> o conf urllist push ftp://example.com/pub/CPAN cpan> o conf commitとやります。 モ…

画像を埋め込んだHTMLメールの出し方

MIME::Lite を使えば簡単に画像埋め込みのHTMLメールが出せる。 use strict; use warnings; use MIME::Lite; my $img = "foo.gif"; my $msg = MIME::Lite->new( From =>'yoshifumi1975@example.com', To =>'yoshifumi1975@example.com', Subject =>"HTML mai…

Redhat系とDebian系の Apacheの設定方法のメモ

Ubuntu というかDebian系では、Apacheモジュールの設定方法がRedhat系と若干ことなるのでメモ。 Debian系 /etc/apache2/mods-available 利用可能な(有効になっていない)モジュールの設定ファイルが入っている /etc/apache2/mods-enabled 有効化されたモジ…

Thunderbird でカレンダーが使えない

Ubuntu8.04 LTSにて、Thunderbird を使おうと思ったがカレンダーが使えない。 調べてみると libstdc++5 が必要とのこと。 参照: Lightning not working with Thunderbird in Ubuntu 8.04 • mozillaZine Forumslibstdc++5 のインストール $ sudo apt-get inst…

qpsmtpd のプラグイン connection_shaper を作った

mod_perlのメールサーバー版とも言える qpsmtpd 用のAnti Spamのプラグインを作りました。 SMTP接続の頻度をカウントして、指定した以上の接続を試みる相手はスパマーとみなして一定時間接続を拒否します。メールサーバーを複数台運用している場合でも大丈夫…

memcached のまとめ

memcached のまとめ。バージョン 1.2.4 設定 コマンド <key> <flags> <exptime> <bytes> [noreply]\r\n cas <key> <flags> <exptime> <bytes> <cas unqiue> [noreply]\r\nexptime は秒。0にすると無期限になる。 コマンド 説明 set データを保存 add まだデータが無い場合のみ保存 replace 既にデータがある場合のみ保存 append 既</cas></bytes></exptime></flags></key></bytes></exptime></flags></key>…

php のセッションにmemcached を使う

CentOSの場合 install rpmforgeのレポジトリが入っていない人は以下の手順で追加 # wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm # rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpm# yum install li…

PDO で1MB以上のカラムを取得できない場合

PHP

PDOでMySQLのLONGBLOBカラムの値を取得しようとしたら、綺麗に1MBのところで切れる。いろいろ検索すると、http://bugs.php.net/bug.php?id=36345&edit=1 や、http://bugs.php.net/bug.php?id=38015 が見つかった。 PDO::MYSQL_ATTR_MAX_BUFFER_SIZE がデフ…

example.com とか予約済みドメイン

DNS

メーリングリスト等でメールアドレスのサンプルで使うドメインは、 example.com と相場は決まっているけど、 http://www.example.com/ を見ると以下のように書いてある。 You have reached this web page by typing "example.com", "example.net", or "examp…

蒟蒻ゼリー事件で思ったこと

マンナンライフ社は(かわいそうだけど)叩かれてOK。でも製造停止するっていうのは企業が取るべき対応方法として違うんじゃないかと思う。 理想は、 (法律的には過失が無くても)事故が起きた製造元の企業が叩かれる ↓ (企業が保身や社会的な責任も含め)…

MySQL のGDBによるデバッグ環境構築メモ

MySQL5.1からは、自作のストレージエンジンや自作の関数用のAPIが公開されている。 自作のストレージエンジンは気軽には作れないと思うが、自作の関数については検討の価値ありだと思う。 その際に役立つかもしれないデバッグ環境の構築メモ。その前に、ここ…

MySQL のソースビルド

最近 が評判が良いので読んでいる。そこにMySQLのソースレポジトリへのアクセス方法が書かれている。 とりあえず、レポジトリをローカルに作ってテストしてみたのでそのときのメモ。 環境設定 Understanding MySQL Internals によると、以下の手順でローカル…

Linuxのiscsiadm コマンドとMicrosoftのiscsicli.exe コマンドの対応表

iSCSI イニシエータのコマンドをまとめてみた。Windows版もなかなか充実している。 操作 Linux Windows ディスカバリ iscsiadm -m discovery -t sendtargets -p IPアドレス iscsicli.exe AddTargetPortal - IPアドレス ポート番号 ターゲット一覧 iscsiadm -…

Microsoft のiSCSI Initiatorのコマンドライン・インタフェース iscsicli.exe の使い方

ディスカバリ対象を追加 > iscsicli AddTargetPortal IPアドレス ポート > iscsicli AddTargetPortal 10.0.7.201 3260 ターゲット一覧 > iscsicli ListTargets T ログイン > iscsicli LoginTarget iqn.2008-09.com.example:dev.vg00.lv00 T * * * * * * * * …

Vimの基本設定のまとめ

Vim

Global設定ファイル Linux /usr/share/vim/vimrc Windows c:\Program Files\vim\vimrc :echo $VIMで確認できる。 Personal設定ファイル Linux /home/yoshifumi1975/.vimrc Windows c:\documents and settings\yoshifumi1975\_vimrc :echo $HOMEで確認できる…

iSCSI SAN サーバーの構築メモ

EMC、NetAppなど、iSCSIのSANがいい感じ、でも高い。それならオープンソースで、ということでiSCSI Enterprise Target を入れてみた。OSはCentOS5.2 インストール http://iscsitarget.sourceforge.net/ から、最新版のソースをダウンロード。RPMの作成はその…

シェルは使わせずに scp/sftp のみ公開したい場合

うちのサーバー(CentOS5)はわけあってWEBサーバーが立てられないが、ファイルをダウンロードさせてあげる必要があり、scpだけを許可する方法を探したらrssh (restricted secure shell) というのがあったので使ってみた。 install rpmforgeのレポジトリが入っ…

EeePC 2G Surf (Asus eee PC の北米仕様バージョン)の日本語化

http://www.potech.jp/pote/archives/2007/10/30-024620.php と http://hamada.typepad.jp/blog/2008/03/eee-pc-69f7.html を参考にしたら簡単に日本語化できたのでその時のメモ。 1. Ctrl + Alt + T でターミナル起動 2. sudo su - 3. vi /etc/apt/sources.…

Perl でsetuid されたCGIの実行

CentOS5.1で、setuidされたPerlのCGIを実行したところ、見慣れないエラーが出て失敗する。 Can’t do setuid (cannot exec sperl)ググったところ、どうやら、CentOSに付属されているperlでは、setuidされたCGIは実行できず、別途、setuid用のperlをインストー…

mod_phpが使用する php.ini のパスを設定する方法

PHP

httpd.conf の中で以下のように設定できる。グローバルに設定されるので、VirtualHost等では使えない。 PHPIniDir /usr/local/etc/php.ini

CentOS5.1 上のPHPでCGIを書く

PHP

phpコマンドには、CLIバージョンとCGIバージョンが存在していることを発見した。 何てわかりにくい言語なんだろう、phpは。 ということで、CentOS5.1にデフォルトでついてくるphpでCGIを書く場合にはまった点をメモ。/etc/php.ini を以下のように変更する。 …

何もしないOutputfilterのサンプル

http://asp.mi.hama-med.ac.jp/web/ のソースをほとんどそのままコピー。これを元に改造していく。いつものように、 # apxs -g -n myoutputfilter mod_myoutputfilter.conf LoadModule myoutputfilter_module modules/mod_myoutputfilter.so SetOutputFilter…

GDBのまとめ

かなり自分用 起動・終了など コマンド 備考 起動 gdb プログラムファイル coreファイル付きで 起動 gdb プログラムファイル core 実行中のプロセスをデバッグする gdb プログラムファイル プロセスID 実行中のプロセスをデバッグする attach プロセスID 実…

POSTされたデータをパースするApacheモジュール

CentOS5.1 上の Apache2.2のサンプル。libapreq2 を使用。 libapreq2 のインストールには、あらかじめEPELレポジトリの追加が必要。 # rpm -ivh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-1.noarch.rpm # yum install libapreq2-de…

キーボードから文字列([a..zA..Z0..9])を入力し、これらの文字列を昇順・降順にソートする

有名な 「15 Exercises for Learning a new Programming Language」でPythonの練習。3問目。 #!/usr/bin/env python2.5 import sys import re #1行読み込む line = sys.stdin.readline() #正規表現での文字列置き換え line = re.sub("[^0-9A-z]", '', line)…

フィボナッチ数列、二種類の変数の値を入れ替える、数字の中から最大値・最小値を探す

有名な 「15 Exercises for Learning a new Programming Language」でPythonの練習。2問目。 フィボナッチ数列 #!/usr/bin/env python2.5 import sys import string def fib(n): if n==0: return 0 if n==1: return 1 return fib(n-2) + fib(n-1) for i in …

無限ループ内に1,2,3,...を出力させ、このループを特定のキー入力で止める。

有名な 「15 Exercises for Learning a new Programming Language」でPythonの練習。1問目。 fork を使ったバージョン #!/usr/bin/env python2.5 import os import sys import signal import time pid = os.fork() if pid == 0: i = 1 while True: print i …

内部リダイレクトするApacheモジュール

CentOS5.1 上の Apache2.2のサンプル。 #include "httpd.h" #include "http_config.h" #include "http_protocol.h" #include "ap_config.h" static int myinternalredirect_handler(request_rec *r) { ap_internal_redirect("/hello", r); return OK; } stat…