(2005-07の一覧)
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
2005-07-31 Sun (他の年の同じ日: 2006)
おうちサーバ、その他のインストールメモ
2005-07-31-4 / カテゴリ: [linux][debian] / [permlink]
courier-imap (私的imapサーバ)あたりをインストール。
fetchmail (ISP他のメール取り込み)
apache-ssl (戯術者の日記更新ラッパ)
smbfs (LinkStationのmount)
rcconf (atdとlpdを止めた)
emacs なんかが最初から入ってたのは意外。
反面、modconf が入ってないのは不便だ^^;
HDD 救出作戦
2005-07-31-3 / カテゴリ: [linux][debian] / [permlink]
本体はサーバとして仮稼動させたので、旧ディスクは別マシン(Fedora Core1)につないでサルベージすることに。
あ、そーいや、元々DVDドライブがつながってた箇所だから、その辺の残骸かな? ということで、grub の boot オプションを見ると、
とりあえず、無効にして reboot する。
と、よかった。見えた。
つか、奇跡的(?)に、「IOエラーが出て読み出せない特定の4ファイル」が全部読めたので、ソッコーで救出しておく。よかったー
hda: hda1 hda2 hda3 hdb: hdb1 hdb2 hdb3 hdb4 < hdb5 > hdc:end_request: I/O error, dev 16:00 (hdc), sector 0 end_request: I/O error, dev 16:00 (hdc), sector 2 end_request: I/O error, dev 16:00 (hdc), sector 4 end_request: I/O error, dev 16:00 (hdc), sector 6 : unable to read partition tableぜんぜんダメじゃん。
# fdisk -l /dev/hdcまったく反応なし…T"T
# e2fsck -c -f /dev/hdc1 e2fsck 1.34 (25-Jul-2003) e2fsck: No such device or address while trying to open /dev/hdc1 Possibly non-existent or swap device?orz
あ、そーいや、元々DVDドライブがつながってた箇所だから、その辺の残骸かな? ということで、grub の boot オプションを見ると、
hdc=idc-scsiってある。
とりあえず、無効にして reboot する。
と、よかった。見えた。
# fdisk -l /dev/hdc : : Device Boot Start End Blocks Id System /dev/hdc1 * 1 9840 79039768+ 83 Linux /dev/hdc2 9841 9964 996030 82 Linux swapんで、/etc だけはすでにコピってたので、ほかのめぼしいもの(~ 以下とか)をコピーする。
つか、奇跡的(?)に、「IOエラーが出て読み出せない特定の4ファイル」が全部読めたので、ソッコーで救出しておく。よかったー
bind9 インストール
2005-07-31-2 / カテゴリ: [linux][bind][debian] / [permlink]
メインコンテンツで(略)
/etc/bind/named.conf.options に
こんだけで、一応のおうちLANから外の名前解決を代行。
# aptitude install bind9めんどいので、とりあえずゾーンの設定は省略。
/etc/bind/named.conf.options に
forwarders { dion の dns サーバのアドレス; }; allow-query { 127.0.0.1; 192.168.1.0/24; } allow-transfer { 127.0.0.1; 192.168.1.0/24; };を追加。
こんだけで、一応のおうちLANから外の名前解決を代行。
dhcpd インストール
2005-07-31-1 / カテゴリ: [linux][debian] / [permlink]
メインコンテンツでメモってなかったので、こちらで。
で
で、syslog 見ると
dhcp サーバをあげたいのは eth0 じゃなくて eth1 (192.168.1.0/24) の方なんだけど… man dhcpd.conf みても、インタフェース関連の設定わからず。
で、/etc/init.d/dhcp を見ると
しょうがないので、
# aptitude install dhcpd設定は前のやつを流用。
で
# /etc/init.d/dhcp start Starting DHCP server: dhcpd failed to start - check syslog for diagnostics.エラー・・・
で、syslog 見ると
dhcpd: No subnet declaration for eth0 (192.168.0.11). dhcpd: Please write a subnet declaration in your dhcpd.conf file for the dhcpd: network segment to which interface eth0 is attached. dhcpd: exiting.だってさ。
dhcp サーバをあげたいのは eth0 じゃなくて eth1 (192.168.1.0/24) の方なんだけど… man dhcpd.conf みても、インタフェース関連の設定わからず。
で、/etc/init.d/dhcp を見ると
# Defaults INTERFACES="eth0"なんてのがあるんで、eth1 に変更…したが、エラー変わらず。
しょうがないので、
subnet 192.168.0.0 netmask 255.255.255.0 { }を dhcpd.conf に追加。一応起動した…^^;
Referrer (Inside):
[2006-07-02-5]
2005-07-29 Fri (他の年の同じ日: 2004)
packageのサブルーチンを呼び出すときの引数
2005-07-29-3 / カテゴリ: [programming][perl] / [permlink]
Pkg::method($arg1, $arg2);とすれば、sub method での $_[0] は $arg1, $_[1] は $arg2
Pkg->methoc($arg1, $arg2);とすれば、sub method での $_[0] は "Pkg", $_[1] は $arg1, $_[2] は $arg2 になる。
OOP 形式のコードじゃない場合は、前者で実行するか EXPORT しておくのが無難
半角カタカナのコード
2005-07-29-2 / カテゴリ: [unix] / [permlink]
sjis ... 0xA6 - 0xDF (ヲァィゥェォャュョッ‐アイ…ワン゛゜)
euc ... sjis のコードの前に 0x8E
euc の半角カタカナは、sjisの2倍のサイズってことか。
つか、なんで「ヲ」は最初に来てんだろ??
euc ... sjis のコードの前に 0x8E
euc の半角カタカナは、sjisの2倍のサイズってことか。
つか、なんで「ヲ」は最初に来てんだろ??
2005-07-26 Tue (他の年の同じ日: 2006 2007)
knoppixでブートし、fsck 実行
2005-07-26-1 / カテゴリ: [linux][knoppix][debian] / [permlink]
本当は、LILO の再インストールをしようと思ったが、結果的にディスクチェック(しかも失敗)しただけなので、タイトル変更 :p
GUIは必要ないので、コンソールモード(って言い方で良いの?)でブート
というか、ついでなので、ファイルチェックもしとく
というか、
/dev/hdb が、/dev/hda とまったく同じ型のディスク乗せてるから、とりあえずそっちにインストールしなおそうかな… (購入時期は違うぞ)
めっちゃ時間かかる…(80GB 5400rpm のディスクで、1時間で約1/4)
数時間の後に、よーやく "Pass 1: Checking inodes, blocks, and sizes" が終了??
んで
でもって
とにかく..................., 19回このやりとりがでた。
で
で、よーやく
リターンコードは 1 (echo $?) だった
とりあえず、大丈夫かなぁ… と思い、/dev/hda1 を mount し、I/Oエラーの出るファイルの md5sum を取得しようとすると… I/Oエラーでるし orz
やっぱディスク交換だな。
すでに私的imapサーバonlyなマシンだし、週末でいいや…
GUIは必要ないので、コンソールモード(って言い方で良いの?)でブート
boot: knoppix 2
というか、ついでなので、ファイルチェックもしとく
# e2fsck -c -f /dev/hda1
というか、
hda: read_intr: status=0x59 { DriveReady SeekComplete DataRequest Error } hda: read_intr: error=0x40 { UncorrectableError }, LBAsect=30893267, sector=30893204 end_request: I/O error, dev 03:01 (hda), sector 30893204といったメッセージ(30893204のとこは色々)が大量に出てくる…。ググった感じでは、ディスクが逝ってるっぽいかも(T"T)
/dev/hdb が、/dev/hda とまったく同じ型のディスク乗せてるから、とりあえずそっちにインストールしなおそうかな… (購入時期は違うぞ)
めっちゃ時間かかる…(80GB 5400rpm のディスクで、1時間で約1/4)
数時間の後に、よーやく "Pass 1: Checking inodes, blocks, and sizes" が終了??
んで
Duplicate blocks found... invoking duplicate block passes. Pass 1B: Rescan for duplicate/bad blocks Duplicate/bad block(s) in inode 835679: ... ... ... : Pass 1C: Scan directories for inodes with dup blocks. Pass 1D: Reconciling duplicate blocks (There are 3 inodes containing duplicate/bad blocks.) File /home/zaki/xxx/xxx/xxx (inode #835679, mod time ......) has 7 duplicate block(s), shared with 1 file(s): <The bad blocks inode> (inode #1, mod time ......) Clone duplicate/bad blocks<y>?
でもって
Error reading block 2243191 (Attempt to read block from filesystem resulted in short read). Ignore error<y>? Force rewrite<y>?よくわからん。もう、全部 "y" で T"T
とにかく..................., 19回このやりとりがでた。
で
Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Free blocks count wrong for group #0 (7265, counted=7170). Fix<y>?ここでまた、"y" を....... 7回入力 orz
で、よーやく
/dev/hda1: ***** FILE SYSTEM WAS MODIFIED ***** /dev/hda1: 197732/9895936 files (1.1% non-contiguous), 6628454/19759942 blocksで終了。(多分)
リターンコードは 1 (echo $?) だった
fsck の返り値は、以下の状態を表す数の和となる。(man fsck(8) より)
0 - エラーなし
1 - ファイルシステムのエラーが修正された
2 - システムをリブートする必要がある
4 - ファイルシステムのエラーが修正されないまま
残っている
8 - 操作エラー
16 - 利用法・文法のエラー
32 - fsck がユーザ要求によってキャンセルされた
128 - 共有ライブラリのエラー
とりあえず、大丈夫かなぁ… と思い、/dev/hda1 を mount し、I/Oエラーの出るファイルの md5sum を取得しようとすると… I/Oエラーでるし orz
やっぱディスク交換だな。
すでに私的imapサーバonlyなマシンだし、週末でいいや…
2005-07-25 Mon (他の年の同じ日: 2006 2007 2011)
パッケージ情報の取得
2005-07-25-3 / カテゴリ: [unix][Solaris][command] / [permlink]
% pkginfoこれで、パッケージ一覧が表示される。
(バージョン情報等を含む)詳しい情報は
% pkginfo -l
特定パッケージについては
% pkginfo | grep -i ssh application SMCossh openssh % pkginfo -l SMCossh PKGINST: SMCossh NAME: openssh CATEGORY: application ARCH: sparc VERSION: 3.7.1p2 BASEDIR: /usr/local : :こんな感じで。
ブート時にfsckするよう手動設定
2005-07-25-2 / カテゴリ: [linux][debian] / [permlink]
通常、数度のマウントを行うと、自動で fsck が走るように設定されている。
設定は
この Mount count を手動で変更するには
別パーティションでブートしたりできず、Knoppix なんかが無い場合にルートパーティションをチェックする場合はこれで…
設定は
# tune2fs -l /dev/hda1 : : Mount count: 1 Maximum mount count: 27 :の、Maximum mount count の部分。で Mount count がこの数値になると、fsck がかかる。
この Mount count を手動で変更するには
# tune2fs -C 27 /dev/hda1これで、Mount count が 27 になり、reboot してやれば fsck が動作する。
別パーティションでブートしたりできず、Knoppix なんかが無い場合にルートパーティションをチェックする場合はこれで…
2005-07-23 Sat (他の年の同じ日: 2004 2006)
fetchmail と ssh ポートフォワードの併用(さらにapop)
2005-07-23-2 / カテゴリ: [linux][command][ssh][POP3][メール] / [permlink]
.fetchmailrcに
pop.example.org に ssh セッションを張って、ローカルへの 10110 アクセスを pop.example.org の 110 へフォワード。でもって、ローカルの 10110 へ apop で pop3 アクセス。sleep 15 は、retr が完了しきれる時間を考慮すること。
.id_rsa_nonpass はパスフレーズなしの ssh 秘密鍵。管理はしっかり!
set postmaster zaki set no bouncemail set logfile $HOME/log/fetchmail.log defaults flush fetchall no mimedecode no rewrite smtphost localhost poll pop.example.org via localhost port 10110 proto apop username 'username' preconnect "ssh -f -L 10110:pop.example.org:110 -i ~/.ssh/.id_rsa_nonpass zaki@pop.example.org sleep 15" password 'pop-passwd'
pop.example.org に ssh セッションを張って、ローカルへの 10110 アクセスを pop.example.org の 110 へフォワード。でもって、ローカルの 10110 へ apop で pop3 アクセス。sleep 15 は、retr が完了しきれる時間を考慮すること。
.id_rsa_nonpass はパスフレーズなしの ssh 秘密鍵。管理はしっかり!
ssh ポートフォワード
2005-07-23-1 / カテゴリ: [linux][command][ssh] / [permlink]
いつもTTSSHやputtyのポートフォワードばかり使って、/usr/bin/ssh でポートフォワードしたことなかったなぁ。
ちなみに、上の ssh プロセス自体は、example.org への通常の ssh アクセスとさほど変わらず。
ssh -L 10025:remote.example.org:25 user@example.orgこれで、ローカルマシンの10025にアクセスすれば、example.org から見た remote.example.org のポート 25 にアクセスできる。
ちなみに、上の ssh プロセス自体は、example.org への通常の ssh アクセスとさほど変わらず。
2005-07-19 Tue (他の年の同じ日: 2004)
fetchmail 実行時に、Received ヘッダを追記しない
2005-07-19-1 / カテゴリ: [linux][command][メール] / [permlink]
通常、fetchmail でメールを取り込むと、
このとき、
コマンドラインオプションは --invisible かな。
Received: from mail.example.org [192.168.0.1] by localhost with POP3 (fetchmail-6.2.5) for zaki@localhost (single-drop); Fri, 15 Jul 2005 13:30:04 +0900 (JST)みたいな Received ヘッダが追記される。
このとき、
set invisibleを .fetchmailrc に設定しておけば、このヘッダが追記されなくなる。
コマンドラインオプションは --invisible かな。
--invisible オプション (キーワード: set invisible) は fetchmail を見 えman fetchmail より
なくしようとします。通常、fetchmail は他の MTA と同じように振舞います。
つまり、送信の経路が記述されている Received ヘッダをメッセージ全てに 書
き 込 み、転送先の MTA に、fetchmail そのものが実行されているマシンから
メールが来たことを知らせます。 invisible オプションが有効である場合は、
Received ヘッダは付けられず、fetchmail は転送先の MTA をだまして、メー
ルがメールサーバのホストから直接届いたと思わせようとします。
2005-07-18 Mon (他の年の同じ日: 2007)
靴ゲット
2005-07-18-4 / カテゴリ: [diary] / [permlink]
いつもは横浜だけど、珍しく原宿・渋谷に行ってきた。近頃のハヤリって、先が尖った靴なのかな…。私としては、先は丸い方が好きなんだケド :(
というか、久々の快晴で、デパートでも地下街でもない屋外をずっとウロウロしてたから、スッゲーー暑かったよ…
で、靴だけの予定だったけど、結局横浜に戻ってフラフラ。更に川崎に戻ってフラフラ。マルイでまたシャツ購入… ^^;;
んで、日が暮れて(?)友達と川崎の居酒屋で飲み食い。店先のポスターの「例外の多い料理店」が妙に気になったので :)
料理は結構おいしかった。店もオシャレで good. 「はちみつチーズ豆腐 バケット添え」がお気に入り。
というか、久々の快晴で、デパートでも地下街でもない屋外をずっとウロウロしてたから、スッゲーー暑かったよ…
で、靴だけの予定だったけど、結局横浜に戻ってフラフラ。更に川崎に戻ってフラフラ。マルイでまたシャツ購入… ^^;;
んで、日が暮れて(?)友達と川崎の居酒屋で飲み食い。店先のポスターの「例外の多い料理店」が妙に気になったので :)
料理は結構おいしかった。店もオシャレで good. 「はちみつチーズ豆腐 バケット添え」がお気に入り。
Referrer (Inside):
[2006-11-05-1] [2005-12-10-1]
Basic認証/Digest認証の対応状況
2005-07-18-3 / カテゴリ: [HTTP][携帯] / [permlink]
Vodafone
ボーダフォンライブ!ウェブサービスで利用できるHTTPプロトコルについての技術資料 HTTP編 1.4.0 2005-04-01 より、、、って、無断引用禁止って書いてあるんでかいつまんで…
パケット端末以上は、Basic認証/Digest認証 OK (一部の3G端末を除く…らしい)
i-mode
作ろうiモードコンテンツ/Basic認証
au はサイトに情報が見つからない…
にしても、各社とも CHTML,HTML,XHTML,HDML の情報は割とちゃんと載ってる(と思う)けど、喋れる HTTP については、あんまり情報ないな…
ボーダフォンライブ!ウェブサービスで利用できるHTTPプロトコルについての技術資料 HTTP編 1.4.0 2005-04-01 より、、、って、無断引用禁止って書いてあるんでかいつまんで…
パケット端末以上は、Basic認証/Digest認証 OK (一部の3G端末を除く…らしい)
i-mode
作ろうiモードコンテンツ/Basic認証
F501i,N501i,D501i ... 同じBASIC認証の領域内でもページを移動するたびにID、パスワードの確認を行う。いまどきの端末なら対応ということかね。
その他のiモード端末 ... 同じBASIC認証の領域内であれば一度ID,パスワードの確認をすればiモードを終了するまでは確認なしで移動可能。
au はサイトに情報が見つからない…
にしても、各社とも CHTML,HTML,XHTML,HDML の情報は割とちゃんと載ってる(と思う)けど、喋れる HTTP については、あんまり情報ないな…
Basic 認証の実装
2005-07-18-2 / カテゴリ: [HTTP] / [permlink]
メールの認証系を調べたついでに…^^;
HTTP 認証: 基本アクセス認証及びダイジェストアクセス認証(RFC2617 日本語訳)
ユーザ名が zaki, パスワードが passwd だとすると、"zaki:passwd" を base64 エンコードしたものが認証用の…えーと、ダイジェストとは言えないな。認証用の鍵とでもしておくか。
で、サーバに送信するリクエストとして
emFraTpwYXNzd2Q= は
(nkf, 入れてなかった…)
ちなみに、Basic 認証を要求するサーバ・ディレクトリに認証なしでアクセスした際のサーバのレスポンスは
realm は、(Apacheなら).htaccess に設定してある AuthName ディレクティブの文字列。
Digest 認証は、なにやらややこしそうなので、じっくりやるか…
HTTP 認証: 基本アクセス認証及びダイジェストアクセス認証(RFC2617 日本語訳)
ユーザ名が zaki, パスワードが passwd だとすると、"zaki:passwd" を base64 エンコードしたものが認証用の…えーと、ダイジェストとは言えないな。認証用の鍵とでもしておくか。
で、サーバに送信するリクエストとして
Authorization: Basic emFraTpwYXNzd2Q=を送信する。
emFraTpwYXNzd2Q= は
hmiyazaki@MOZZARELLA:~$ printf 'zaki:passwd' | openssl enc -e -base64 emFraTpwYXNzd2Q=あたりで。
(nkf, 入れてなかった…)
ちなみに、Basic 認証を要求するサーバ・ディレクトリに認証なしでアクセスした際のサーバのレスポンスは
HTTP/1.x 401 Authorization Required : : WWW-Authenticate: Basic realm="InputPassword"って感じ。
realm は、(Apacheなら).htaccess に設定してある AuthName ディレクティブの文字列。
Digest 認証は、なにやらややこしそうなので、じっくりやるか…
Referrer (Inside):
[2005-08-09-2]
右クリックメニューでBATファイルの新規作成
2005-07-18-1 / カテゴリ: [win] / [permlink]
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.bat\ShellNew] "NullFile"=""という、なんとか.reg ファイルを作って結合する。
WinXP(pro)では動く。他はわからん…
まぁ、単に「新規MS-DOS バッチ ファイル.bat」という空ファイルを作るだけだから、そんなに大したものではないけど。
2005-07-17 Sun (他の年の同じ日: 2007)
APOP の実装
2005-07-17-5 / カテゴリ: [メール][POP3] / [permlink]
サーバの応答
で、ユーザ名が zaki, パスワードが passwd だとすると、必要なダイジェストは
この場合は
んで、サーバへのリクエストは
Post Office Protocol - Version 3(RFC1939 日本語訳)
hmiyazaki@MOZZARELLA:~$ telnet cheddar 110 Trying 192.168.1.1... Connected to cheddar. Escape character is '^]'. +OK Qpopper (version 4.0.5) at cheddar starting. <23361.1121585637@cheddar>に対して、<23361.1121585637@cheddar> がチャレンジ。
で、ユーザ名が zaki, パスワードが passwd だとすると、必要なダイジェストは
<23361.1121585637@cheddar>passwdの MD5 ハッシュ値となる。
この場合は
hmiyazaki@MOZZARELLA:~$ printf '<23361.1121585637@cheddar>passwd' | md5sum 98296f29bfa38c2a22cf886222956b6f *-みたいな感じで。
んで、サーバへのリクエストは
APOP zaki 98296f29bfa38c2a22cf886222956b6fで認証する。
Post Office Protocol - Version 3(RFC1939 日本語訳)
APOP命令を実装するPOP3サーバーは、その挨拶にタイムスタンプを含む。タイムスタンプの文法は[RFC822]の'msg-id'に相当し、 POP3サーバーが挨拶を発行する度に異ならなければならない(MUST)。例えば、POP3サーバーのインスタンス毎に別々のUNIXプロセスが使用されるUNIX実装において、タイムスタンプの文法は以下のようなもので良い。
<process-ID.clock@hostname>
ここで'process-ID'はプロセスのPIDの10進値であり、clockはシステムクロックの10進値、hostnameはPOP3サーバーを実行中のホストに対応するFQDN(fully-qualified domain-name)である。
POP3クライアントはこのタイムスタンプに注目し、APOP命令を発行する。パラメータ'name'は、USER命令の'name'パラメータと同じ意味を持つ。パラメータ'digest'は、タイムスタンプ(鍵括弧を含む)の直後に共有されている秘密を付加した文字列に、MD5アルゴリズム [RFC1321]を適用して計算される。この共有されている秘密は、POP3クライアントとサーバーのみが知っている文字列である。その秘密の情報は、誰でもその名前のユーザーへのなりすましを許してしまう事になる為、認証されない公開を防ぐように十分な注意が必要である。'digest'パラメータ自身は、小文字のASCII文字を使った16進形式で送信される16オクテットの値である。
SMTP-AUTH の実装
2005-07-17-4 / カテゴリ: [メール][SMTP] / [permlink]
メモ程度で実装じゃないけど^^;
CRAM-MD5 認証については、ぺるりめものダイジェスト2 cram-md5認証 (module)Digest-HMAC_MD5参照。
PLAIN 認証は
符号化の法則は
LOGIN 認証はもっと簡単に(<<はリクエスト、>>はレスポンス)
ちなみに、"VXNlcm5hbWU6" は "Username: " を、"UGFzc3dvcmQ6" は "Password: " をエンコードしているだけ。
CRAM-MD5 認証については、ぺるりめものダイジェスト2 cram-md5認証 (module)Digest-HMAC_MD5参照。
PLAIN 認証は
AUTH PLAIN base64-encoded-username-and-passwdと、AUTH コマンドの引数に、"PLAIN" と base64 で符号化したユーザ名とパスワードを与える。
符号化の法則は
username\0username\0passwordまぁ、こんな感じで。\0 は 0x00 のヌル文字。
% printf 'username\0username\0password' | mmencode
LOGIN 認証はもっと簡単に(<<はリクエスト、>>はレスポンス)
<<AUTH LOGIN >>334 VXNlcm5hbWU6 <<VXNlcm5hbWU6 >>334 UGFzc3dvcmQ6 <<UGFzc3dvcmQ6と、POP3 と似たような感じで、ユーザ名とパスワードを単に base64 エンコードしたデータを渡す。
ちなみに、"VXNlcm5hbWU6" は "Username: " を、"UGFzc3dvcmQ6" は "Password: " をエンコードしているだけ。
Referrer (Inside):
[2006-02-26-1]
HMAC-MD5 ってナニ?
2005-07-17-3 / カテゴリ: [暗号] / [permlink]
ぺるりめものダイジェスト2 cram-md5認証 (module)Digest-HMAC_MD5であまり良くわからず書いていたが、ちょっと確認。
HMAC メッセージ認証のための鍵付ハッシング(RFC2104 日本語訳) かな。
とりあえず…
でもって、
自分の言葉で極簡単にまとめると、
1. パスと 0x36 の XOR にデータをくっつけたものの MD5 ハッシュを取得。
2. パスと 0x5C の XOR に↑をくっつけたものの MD5 ハッシュを取得。
3. ↑が結果
ということか。な?
HMAC メッセージ認証のための鍵付ハッシング(RFC2104 日本語訳) かな。
とりあえず…
以下のように 2 つの異なる固定文字列 ipad と opad を定義する (その 'i' と 'o' は、inner と outer を連想させるように付けてある):は、固定で用意ぽいな。ちなみに 0x36 は "6" で、0x5C は "\" だ。
ipad = バイト値 0x36 を 64 回繰り返した文字列
opad = バイト値 0x5C を 64 回繰り返した文字列
でもって、
データ `text' に対して HMAC を計算するためには、以下のようにする。
H(K XOR opad, H(K XOR ipad, text))
すなわち、
1. B バイトの文字列を作るように K の終わりまでゼロを追加する
2. (例えば、K が 20 バイトの長さで B=64 であるならば、K に 44 個のゼロのバイト値 0x00 が追加される) ステップ (1) で計算された B バイトの文字列と ipad との XOR(ビット毎の排他的論理和)を計算する。
3. ステップ (2) の結果生じた B バイトの文字列に、データ `text' のストリームを追加する。
4. ステップ (3) で生成されたストリームに H を適用する。
5. ステップ (1) で計算された B バイトの文字列と opad との XOR(ビット毎の排他的論理和)を計算する。
6. ステップ (5) の結果生じた B バイトの文字列に、ステップ (4) の H の結果を追加する。
7. ステップ (6) で生成されたストリームに H を適用し、その結果を出力する。
自分の言葉で極簡単にまとめると、
1. パスと 0x36 の XOR にデータをくっつけたものの MD5 ハッシュを取得。
2. パスと 0x5C の XOR に↑をくっつけたものの MD5 ハッシュを取得。
3. ↑が結果
ということか。な?
Vodafone のメールがスカイメールにならない条件
2005-07-17-2 / カテゴリ: [SMTP][メール][携帯] / [permlink]
本文文字数が192文字以内以外に、各ヘッダの文字数にも依存するみたい。件名だけはある程度の長さ以上(忘れた)だとスーパーメールになるのは知ってたけど。
http://developers.vodafone.jp/dp/tech_svc/mail/
http://developers.vodafone.jp/dp/tech_svc/mail/
Vodafone のメールの添付ファイル名の取得方法
2005-07-17-1 / カテゴリ: [SMTP][メール][携帯] / [permlink]
http://developers.vodafone.jp/dp/faq/faq.php#20_11
ところで、Content-Disposition が持つファイル名のパラメタ名は filename だよな^^;
Q11: パソコンから添付ファイル付きのEメールをボーダフォン携帯電話に送信した場合、ボーダフォン携帯電話側で通知できない添付ファイルがあるのですが?あ、そうなんだ…。
A11: ボーダフォンの仕様では、「Content-Typeのnameパラメータ」で添付ファイルを判断しています。「Content-Dispositionのnameパラメータ」では添付ファイルを判断していませんので、ご注意下さい。
ところで、Content-Disposition が持つファイル名のパラメタ名は filename だよな^^;
2005-07-14 Thu (他の年の同じ日: 2004 2007)
find で否定条件
2005-07-14-3 / カテゴリ: [unix][linux][command] / [permlink]
! をつける
$ find . ! -name "foobar"foobar 以外を検索
単純な条件付のファイルリスト取得は grep は使わず find のオプションに指定せよ
2005-07-14-2 / カテゴリ: [unix][Solaris][command] / [permlink]
某所にて、こんなコマンドを見た。
Solaris で試したところ、
てーか、grep -v .gz | grep -v "lost+found" って、gzip で圧縮したファイルと、lost+found ディレクトリを除きたいんだろうけど、要件を満たしすぎているぞ>担当者
$ find . -mtime +1 -print |grep -v .gz|grep -v "lost+found"
Solaris で試したところ、
$ find . -mtime +1 ! -name "*.gz" ! -name "lost+found" -printの方が、3倍ほど高速だった。
pts/8:miyazaki@nwmail% time zsh -c 'repeat 100 /usr/bin/find . -mtime +1 -print | grep -v "\.gz" | grep -v "lost+found"' > /dev/null zsh -c > /dev/null 1.11s user 3.15s system 94% cpu 4.522 total pts/8:miyazaki@nwmail% time zsh -c 'repeat 100 /usr/bin/find . -mtime +1 ! -name "*.gz" ! -name "lost+found" -print' > /dev/null zsh -c > /dev/null 0.40s user 1.25s system 95% cpu 1.736 total (ファイル数) pts/8:miyazaki@nwmail% /usr/bin/find . -mtime +1 -print | grep -v "\.gz" | grep -v "lost+found" W -l 34 pts/8:miyazaki@nwmail% /usr/bin/find . -mtime +1 ! -name "*.gz" ! -name "lost+fo und" -print W -l 34 pts/8:miyazaki@nwmail% find . W -l 41
てーか、grep -v .gz | grep -v "lost+found" って、gzip で圧縮したファイルと、lost+found ディレクトリを除きたいんだろうけど、要件を満たしすぎているぞ>担当者
Referrer (Inside):
[2006-02-23-2]
find の and/or オプション
2005-07-14-1 / カテゴリ: [unix][Solaris][command] / [permlink]
Solaris の /usr/bin/find は、GNU findutil の -and/-or はない。
かわりに、-a/-o があるので、こっちを使う。
GNU find も、-and/-or の代わりに -a/-o が使える。こっちで覚えた方がいいかも。
ついでに、-and は省略しても同じ条件になる。
って、マニュアルにかいてあるし^^;;;
関連: [2005-03-02-1]
かわりに、-a/-o があるので、こっちを使う。
GNU find も、-and/-or の代わりに -a/-o が使える。こっちで覚えた方がいいかも。
ついでに、-and は省略しても同じ条件になる。
って、マニュアルにかいてあるし^^;;;
expr1 expr2
And (implied); expr1 が偽の場合は expr2 は評価されない。
expr1 -a expr2
expr1 expr2 と同じ。
expr1 -and expr2
expr1 expr2 と同じ。
関連: [2005-03-02-1]
2005-07-13 Wed (他の年の同じ日: 2006 2011)
暗号化フォルダのドライバはインストールが失敗する
2005-07-13-2 / カテゴリ: [win] / [permlink]
とあるデバイスのドライバをインストールしたところ
ふと気づくと、原因は、ダウンロードしたドライバをXP標準機能のフォルダ暗号化されたフォルダ以下においていたから…
このハードウェアのデバイス ドライバを読み込むことができません。ドライと、何度もなり、どうしてもインストールできない。
バが壊れているか、ドライバがない可能性があります。 (コード 39)
ふと気づくと、原因は、ダウンロードしたドライバをXP標準機能のフォルダ暗号化されたフォルダ以下においていたから…
全ワークシートを選択
2005-07-13-1 / カテゴリ: [win][office][excel] / [permlink]
ウインドウ下部の、どれか適当なワークシートを右クリックし、[すべてのシートを選択(S)]を選ぶ。って、基本操作じゃないか…
キーボードonlyなら、Ctrl+Shift+PgDn で選択しながらワークシートを変更できるので、1シート目から Ctrl+Shift+PgDn を押しっぱなしにしておけば、全部選択できる。
[2005-07-12-2]
キーボードonlyなら、Ctrl+Shift+PgDn で選択しながらワークシートを変更できるので、1シート目から Ctrl+Shift+PgDn を押しっぱなしにしておけば、全部選択できる。
[2005-07-12-2]
2005-07-12 Tue (他の年の同じ日: 2011)
印刷時にヘッダ的にセルを常に表示させる
2005-07-12-4 / カテゴリ: [win][office][excel] / [permlink]
10:07:51 zaki: 備忘録2003/12/22 のログ(何の?)より…
10:08:04 zaki: エクセルで、印刷すると複数ページにまたがってしまうとき
10:08:19 zaki: ヘッダ的に特定セルを常に表示させるばあいは
10:08:32 zaki: [ファイル]-[ページ設定]にて
10:09:06 zaki: [シート]タブの[行(列)のタイトル]で、常に表示させたいセルの範囲を指定する
まだ ChangeLog メモ使ってなかったのね。
しかしこれは、全ワークシート選択→印刷設定では、設定できない…
セルにワークシート名を表示させる
2005-07-12-3 / カテゴリ: [win][office][excel] / [permlink]
http://www.relief.jp/itnote/archives/001079.php
呪文だ…すげー
ワークシート名を表示させたいセルに、
「=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))」
と入力し[Enter]キーを押す
呪文だ…すげー
印刷設定を全シートまとめて行う
2005-07-12-2 / カテゴリ: [win][office][excel] / [permlink]
予め、全シートを選択(Ctrl押しながらクリック)して、ファイル(F)->ページ設定(U)で設定する。
って、他に方法ないのかな??
って、他に方法ないのかな??
Referrer (Inside):
[2005-07-13-1]
wget で digest 認証
2005-07-12-1 / カテゴリ: [linux][command] / [permlink]
[2005-07-11-2]と同じ書式で普通にできるっぽい。wget 側で自動判別するのかな?
昨日できなかった理由がわからないけど、環境依存かもしれない。
wget ... GNU Wget 1.9.1
httpd ... Apache/1.3.3 (Debian GNU/Linux)
モジュール(mod_digest)のバージョンはどうやって見るのかな?
昨日できなかった理由がわからないけど、環境依存かもしれない。
wget ... GNU Wget 1.9.1
httpd ... Apache/1.3.3 (Debian GNU/Linux)
モジュール(mod_digest)のバージョンはどうやって見るのかな?
2005-07-11 Mon (他の年の同じ日: 2004 2006)
扇子
2005-07-11-3 / カテゴリ: [diary] / [permlink]
土曜[2005-07-09]に渋谷に行った時、LOFT に扇子コーナーがあった。いろいろ文句が書いてあり、面白かったけど、迷ったので結局買わずじまいだった。
が、今日が異様に厚かったので、仕事帰りに寄ってみた。って、自宅の方向ぜんぜん違うんだけど。
色白腹黒と迷ったけど、、、
が、今日が異様に厚かったので、仕事帰りに寄ってみた。って、自宅の方向ぜんぜん違うんだけど。
色白腹黒と迷ったけど、、、
Referrer (Inside):
[2006-08-06-1]
wget で basic 認証
2005-07-11-2 / カテゴリ: [linux][command] / [permlink]
$ wget --http-user=username --http-passwd=password http://www.example.org/ps で見ると引数からパスがバレルので、共用サーバでの使用は控えるべし。
wget の Changelog 見る限り、digest認証にも対応してそうなんだけど、うまくいかない…
Referrer (Inside):
[2005-07-12-1]
2005-07-09 Sat (他の年の同じ日: 2004)
Referrer (Inside):
[2005-07-11-3]
2005-07-08 Fri (他の年の同じ日: 2004 2007)
digest認証 補足
2005-07-08-3 / カテゴリ: [linux][debian][Apache] / [permlink]
[2005-05-29-2]の補足
debian の Apache だと、標準ではモジュールが生きてないので Digest 認証できない。
以下追加
でもって、htdigest コマンドの引数に指定する realm の文字列は、.htaccess に記述する AuthName と一致させること。
debian の Apache だと、標準ではモジュールが生きてないので Digest 認証できない。
以下追加
LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so
でもって、htdigest コマンドの引数に指定する realm の文字列は、.htaccess に記述する AuthName と一致させること。
Referrer (Inside):
[2005-08-09-2]
ascii文字の正規表現
2005-07-08-2 / カテゴリ: [programming][perl][command][正規表現] / [permlink]
m/[ -~]/0x20(スペース)から0x7e(チルダ)まで。
0x20未満のハードタブ(0x09)や改行(0x0A)は個別に対処せよ。
0x7F(DEL)はいらねーよな。
あぁ、grep でも使える
$ command | grep -v '[ -~]'asciiを含まない行を出力
$ command | grep '[^ -~]'ascii以外を含む行を出力
lv(v.4.50, v.4.51)の正規表現検索は、スペースを範囲に含めると overcrossing range と出力されて効かないので、0x21の!から指定する
/[^ !-~]ascii以外(タブなど除く)を含む行を出力
less(351, 358)は [ -~]で大丈夫なんだけどなぁ。意外にも more も大丈夫だ。
BINDのログをsyslogへ一時的に出力する
2005-07-08-1 / カテゴリ: [linux][debian][bind] / [permlink]
# rndc querylog停止はもう一度同じコマンドを。(トグルになってる)
2005-07-07 Thu (他の年の同じ日: 2004)
画像ファイルを再配布不可にする
2005-07-07-2 / カテゴリ: [携帯] / [permlink]
http://minic.press.ne.jp/blogs/web/000056.html
iモード(ドコモ[docomo])は
GIF、JPEGファイルのコメントに「copy="NO"」と記述します。
EZweb(au)は
GIF、JPEG、PNGのコメントに「kddi_copyright=on」と記述します。
Vodafone live!(ボーダフォン[vodafone])は
JPEG、PNGの拡張子をそれぞれjpz・pnzにします。
絵文字のコード
2005-07-07-1 / カテゴリ: [携帯] / [permlink]
vodafone
http://developers.vodafone.jp/dp/tool_dl/web/picword_top.php
au
http://www.au.kddi.com/ezfactory/tec/spec/3.html (pdf)
docomo
http://www.nttdocomo.co.jp/p_s/imode/tag/emoji/list.html
http://developers.vodafone.jp/dp/tool_dl/web/picword_top.php
au
http://www.au.kddi.com/ezfactory/tec/spec/3.html (pdf)
docomo
http://www.nttdocomo.co.jp/p_s/imode/tag/emoji/list.html
2005-07-06 Wed (他の年の同じ日: 2004 2007)
BINDの統計情報
2005-07-06-2 / カテゴリ: [linux][debian][bind] / [permlink]
# rndc statsこのコマンドで、/var/cache/bind/named.stats ファイルに
+++ Statistics Dump +++ (1120658402) success 10741 referral 0 nxrrset 1253 nxdomain 242898 recursion 6834 failure 23 --- Statistics Dump --- (1120658402)というファイルができる。
それぞれ
success | 成功した問い合わせの数(参照先以外の応答を返したもの) |
referral | 結果として参照先を返した問い合わせの件数。 |
nxrrset | 要求されたタイプのレコードが定義されていないドメイン名に関する問い合わせの件数。 |
nxdomain | 存在しないドメインネームを問い合わせた数。 |
recursion | ゾーン内のドメイン名に関する再帰的問い合わせの内、ネームサーバが更に問い合わせをしなければいけなかった件数。 |
failure | NXDOMAIN以外で失敗した問い合わせの数。 |
ということ。(DNS&BIND クックブックp115より引用)
で、再度実行すると、前回実行したファイルの末尾に追記され続けるので、前回実行時との差分を実行間隔(括弧内のepochの差分)で割れば、秒間の問い合わせ平均数がわかる。
けど、何行ものログから、末尾2件分のparseはなかなかメンドイので(ラスト1件分だけ取得して、RRDtoolなんかに差分計算させる手もあるけど)、うちでは、実行前にファイル退避・rndc stats 実行・差分計算・結果をRRDtoolに食わせる、という感じ。
crontab (実際は1行)
0 * * * * /bin/mv /var/cache/bind/named.stats /var/cache/bind/named.stats.bak; /usr/sbin/rndc stats; /root/bin/bindstat/bindstats.plx > /var/cache/bind/named.diff
bindstats.plx
#!/usr/bin/perl my %logfile = ( new => "/var/cache/bind/named.stats", old => "/var/cache/bind/named.stats.bak", ); my %logstat; foreach my $key (keys %logfile) { open F, $logfile{$key} or die "cannot open $logfile{$key}: $!\n"; while (<F>) { if (/^([a-z]+)\s(\d+)/) { $logstat{$key}->{$1} = $2; } } close F; } foreach my $item (sort keys %{$logstat{new}}) { print $item, ": ", ($logstat{new}->{$item} - $logstat{old}->{$item}), "\n"; }
これで、前回実行時との差分値が named.diff に出るので
failure: 0 nxdomain: 451 nxrrset: 7 recursion: 94 referral: 0 success: 109このファイルの値を RRDtool につっこむ。
うーん、、、なんでこんなに名前解決にミスってんだろ^^;
rdfには最後のカテゴリ名だけ表示
2005-07-06-1 / カテゴリ: [perl][programming][changelog][chalow] / [permlink]
[2005-06-14-2]でカテゴリ名を RSS フィードに表示するようにしたけど、カテゴリの数が多いと(こんな使い方余りいない??)、Firefox のライブブックマークでの非表示部分が多くなってしまう。
ので、記述しているカテゴリ名のうち、最後の1個だけを表示するように修正
前回の状態からは
スゲー見にくいけど、要は
先頭がよければ、0 で良い(未確認)
ので、記述しているカテゴリ名のうち、最後の1個だけを表示するように修正
前回の状態からは
--- chalow.20050706 2005-06-29 19:40:01.000000000 +0900 +++ chalow 2005-07-06 17:55:49.000000000 +0900 @@ -1102,7 +1102,7 @@ push @items, { permlink => $permlink, - itemheader => html2xmlstr("[".join("][", @{$all_entries{$ymd}{$i}{cat}})."]".$all_entries{$ymd}{$i}{h}), + itemheader => html2xmlstr("[" . $all_entries{$ymd}{$i}{cat}[$#{$all_entries{$ymd}{$i}{cat}}] . "]" . $all_entries{$ymd}{$i}{h}), itemauthor => $all_entries{$ymd}{$i}{a}, itemcontent => $cont, itemcontentencoded => $coen,てな感じで。
スゲー見にくいけど、要は
$array[$#array]で、配列最後の要素をとってるだけ。
先頭がよければ、0 で良い(未確認)
Referrer (Inside):
[2006-07-30-1]
UVERworld new Single
2005-07-05-3 / カテゴリ: [diary] / [permlink]
買っちゃいました。4月からの BLEACH 新オープニングテーマ。
アニメ…というか、テレビ全然見ない人だったのに、友達がそろえてる単行本にハマって、放送を見逃さないために壊れたビデオデッキを捨て DIGA を購入し(バカ)、毎週欠かさず(ちょっと嘘)録画してまふ。
というか、CD 買ったのっていつ振りだろう…。いや、MaxiSingle(で合ってる??)買ったのは初めてかも…
アニメ…というか、テレビ全然見ない人だったのに、友達がそろえてる単行本にハマって、放送を見逃さないために壊れたビデオデッキを捨て DIGA を購入し(バカ)、毎週欠かさず(ちょっと嘘)録画してまふ。
というか、CD 買ったのっていつ振りだろう…。いや、MaxiSingle(で合ってる??)買ったのは初めてかも…
scp/sftp で日本語eucファイルのやりとり
2005-07-05-2 / カテゴリ: [win][ssh][アプリ] / [permlink]
WinSCP(日本語サイト)やFileZillaでは、日本語ファイル名の文字コードまでは面倒みていない。ので、Win上のファイルをそのままアップロードしても、サーバ上ではSJISなファイル名になってしまう。Winのみが接続するファイルサーバとして使う分には構わないが(samba併用なら、cp932で設定)、Linuxローカルでファイル参照する際には分が悪い。sambaのみなら[2005-07-04]の設定でなんとかなるけど、ssh(scp/sftp)でのファイルのやりとりが絡むと対処できなくなる。
で、探してみると、FileZillaには、サーバとのファイルのやりとり時に、ファイル名の文字コードを SJIS <-> EUC 変換してくれるナイスなパッチ発見。
http://www.unixuser.org/~haruyama/software/filezilla_patch.html
これで、万事解決〜。
FileZilla(2.2.14b)をフツーにインストールした後、"2.2.14bにパッチを当てた実行ファイル FileZilla.exe" を上書き保存すれば良し。
ただし、サーバ上にある、元々 SJIS なファイル名は化けてしまうので、WinSCP とうまく使い分けるのが良いかも。
で、探してみると、FileZillaには、サーバとのファイルのやりとり時に、ファイル名の文字コードを SJIS <-> EUC 変換してくれるナイスなパッチ発見。
http://www.unixuser.org/~haruyama/software/filezilla_patch.html
これで、万事解決〜。
FileZilla(2.2.14b)をフツーにインストールした後、"2.2.14bにパッチを当てた実行ファイル FileZilla.exe" を上書き保存すれば良し。
ただし、サーバ上にある、元々 SJIS なファイル名は化けてしまうので、WinSCP とうまく使い分けるのが良いかも。
IMAP over SSL
2005-07-05-1 / カテゴリ: [meadow][imap][wanderlust] / [permlink]
パッケージでインストールした Wanderlust は、巷で必要とされている utils/ssl.el が入っていない。ので、本家から wl-2.12.0.tar.gz を落とし、utils/ssl.el を Meadow/site-lisp/wl/ 以下へコピーし、Meadow から
だめだった。
調べてみると、http://d.chronowing.org/200304b.html#13 かな。証明書関係みたいだ。確かに繋ごうとしている imap サーバは LAN 内にあるテストサーバで、いわゆるオレオレ証明書つかってるからなぁ。
M-x byte-compile-fileでバイトコンパイル。すると ssl.elc ができるので、すかさず[2005-01-11-3]の設定でGo!
だめだった。
Cannot open: elmo-network-initialize-session
調べてみると、http://d.chronowing.org/200304b.html#13 かな。証明書関係みたいだ。確かに繋ごうとしている imap サーバは LAN 内にあるテストサーバで、いわゆるオレオレ証明書つかってるからなぁ。
Referrer (Inside):
[2006-01-22-1]
2005-07-04 Mon (他の年の同じ日: 2004 2011)
smbmount の日本語設定
2005-07-04-2 / カテゴリ: [linux][debian][samba] / [permlink]
# smbmount //address/dir /mnt -o codepage=cp932,iocharset=euc-jpcodepage に、サーバが発するファイル名の文字コード種
iocharset に、マウント時に変換したい変換後の文字コード種
Version 3.0.14a-Debian
samba3.0の日本語設定
2005-07-04-1 / カテゴリ: [linux][debian][samba] / [permlink]
smb.conf
要は、unix charset が in で、dos charset が out.
Linux上で、euc-jp としてマウントしているのであれば、unix charset は eucJP-ms に設定すれば良いらしい。
http://www.miraclelinux.com/technet/samba30/migration.html
dos charset = CP932 unix charset = CP932ファイルシステムが認識しているファイル名の文字コード(unix charset)が SJIS で、sambaクライアント(Windowsマシンとか)に認識させたいのも(dos charset)が SJIS の場合。うちは、debian上で既にシフトJISとしてマウントしてるんで、これで。
要は、unix charset が in で、dos charset が out.
Linux上で、euc-jp としてマウントしているのであれば、unix charset は eucJP-ms に設定すれば良いらしい。
http://www.miraclelinux.com/technet/samba30/migration.html
Referrer (Inside):
[2005-07-05-2]
前の月 / 次の月 / 最新
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2013-05-02 16:12