(2005-08の一覧)
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-08-31 Wed (他の年の同じ日: 2004)
Google MAP キーバインド
2005-08-31-4 / カテゴリ: [link] / [permlink]
googleマップで何気なくキーボードをさわったら、ちゃんと反応した。すごいなぁ。
Emacsキーバインドとかviキーバインドとかはさすがにムリか(笑)
カーソルキー ... スクロールとりあえず、気づいたもののみ
Home/End/PgUp/PgDn ... 3/4ほどスクロール
- +: 拡大
- -: 縮小
Emacsキーバインドとかviキーバインドとかはさすがにムリか(笑)
VSSでプロジェクトの丸ごとExport
2005-08-31-3 / カテゴリ: [win][programming][VC++] / [permlink]
Visual SourceSafe アドミニストレータ を起動し、[アーカイブ(A)]->[プロジェクトのアーカイブ(A)]で、バージョン範囲を[全てのデータを保存(A)]で Go
ファイルがどのパッケージに含まれていたかの確認
2005-08-31-2 / カテゴリ: [unix][Solaris] / [permlink]
dpkg -S /path/file に相当するコマンドは?
% pkgchk -lp /usr/sbin/pkgchk Pathname: /usr/sbin/pkgchk Type: regular file Expected mode: 0555 Expected owner: root Expected group: sys Expected file size (bytes): 169020 Expected sum(1) of contents: 38077 Expected last modification: Jul 11 05:54:58 2003 Referenced by the following packages: SUNWcsu Current status: installed
パッケージの内容一覧
2005-08-31-1 / カテゴリ: [unix][Solaris] / [permlink]
dpkg -L pkg-name に相当するコマンドは?
% pkgchk -v pkg-name一覧の表示と同時に、デフォルトからの改竄チェックもおこなう。
% pkgchk -l pkg-nameファイルリスト以外に、Type/mode/owner/size などの詳細情報も表示する。
2005-08-30 Tue (他の年の同じ日: 2006)
結婚式の招待状の返事
2005-08-30-1 / カテゴリ: [diary] / [permlink]
まず、googleで「結婚式+招待状+返事」で検索しましょう…では書くことなくなっちゃうんで、
1. 宛名の「行」を「様」に改ざんする (まぁ、普通だね!)
2. 「御出席or御欠席」の選択項目の「御」を削除する
3. 「御出席or御欠席」の未選択項目をすべて削除する
4. 「御芳名」の「御芳」を削除する
5. 「御住所」の「御」を削除する
6. 「御電話番号」の「御」を削除する
7. 一言、お祝いのメッセージを添える
8. (重要)受け取ったらスグに返信する
2〜6の文字列を見てると、ゲシュタルト崩壊をおこしそうだ。
そして、今晩のおかず。
言葉どおり、(豚)肉とジャガイモのみ(笑)
かつおだしがちょっと強すぎたかも。
1. 宛名の「行」を「様」に改ざんする (まぁ、普通だね!)
2. 「御出席or御欠席」の選択項目の「御」を削除する
3. 「御出席or御欠席」の未選択項目をすべて削除する
4. 「御芳名」の「御芳」を削除する
5. 「御住所」の「御」を削除する
6. 「御電話番号」の「御」を削除する
7. 一言、お祝いのメッセージを添える
8. (重要)受け取ったらスグに返信する
2〜6の文字列を見てると、ゲシュタルト崩壊をおこしそうだ。
そして、今晩のおかず。
言葉どおり、(豚)肉とジャガイモのみ(笑)
かつおだしがちょっと強すぎたかも。
2005-08-29 Mon (他の年の同じ日: 2006)
zsh/tcsh で、「以外」のワイルドカード
2005-08-29-4 / カテゴリ: [unix][linux][shell] / [permlink]
'^'を入れると、指定以外のリストになる。
{} との併用は不可なのか。
bash は使えないのね…
ls ^*.pl末尾が .pl 以外のリスト
An entire glob-pattern can also be negated with `^':man tcsh(1) より
> echo *
bang crash crunch ouch
> echo ^cr*
bang ouch
Glob-patterns which do not use `?', `*', or `[]' or which
use `{}' or `~' (below) are not negated correctly.
{} との併用は不可なのか。
bash は使えないのね…
iptables で特定条件のアクセスを別ポートにリダイレクト
2005-08-29-3 / カテゴリ: [linux][network] / [permlink]
アクセス元IP 10.0.0.1 からの 80/tcp へのアクセスを、8080/tcp へリダイレクトするには
このとき、アクセス元IP 10.0.0.1 の 8080/tcp も ACCEPT にしておく必要もある。(DROPではアクセスできない)
# iptables -t nat -A PREROUTING -p tcp -s 10.0.0.1 --dport 80 -j REDIRECT --to 8080
このとき、アクセス元IP 10.0.0.1 の 8080/tcp も ACCEPT にしておく必要もある。(DROPではアクセスできない)
iptables -L で名前解決が遅い
2005-08-29-2 / カテゴリ: [linux][network] / [permlink]
-n をつければ名前解決しない。
netstat -n と同じやね。
netstat -n と同じやね。
cygwin JE のパッケージをインストールする
2005-08-29-1 / カテゴリ: [win][cygwin] / [permlink]
通常の setup.exe を使ったネットワークインストールのダウンロードサイトを選択する画面で、User URLに http://cygwin-je.sourceforge.jp/cygwin_je/ を入力・[add]押下する。で、サイトリストに入力した URL(ドメイン名のみ) が追加されるので、そいつを選択し次へすすむ。
lv もこっちにある。
lv もこっちにある。
Referrer (Inside):
[2005-12-21-3]
2005-08-28 Sun (他の年の同じ日: 2006)
courier-imap-ssl も自己CAのサーバ証明書で
2005-08-28-2 / カテゴリ: [linux][debian][imap][SSL] / [permlink]
courier-imap-ssl の設定で使用する証明書ファイルは、[2005-08-28-1]で作ったCA証明書・サーバ証明書のうち、以下のものを cat で結合した1つのファイルを使う
で、/etc/courier/imap-ssl は以下の設定
メーラ側は、ブラウザ同様 ca.crt をインポートしてやればよい。つか、Firefox あんど Thunderbird 使用だと、同じものをそれぞれインポートしてやらんといけないからメンドウだな…
# cat server.key server.crt ca.csr > courier.pem
で、/etc/courier/imap-ssl は以下の設定
TLS_CERTFILE=/etc/ssl/servkey/courier.pem
メーラ側は、ブラウザ同様 ca.crt をインポートしてやればよい。つか、Firefox あんど Thunderbird 使用だと、同じものをそれぞれインポートしてやらんといけないからメンドウだな…
apache-ssl で自己CAとサーバ証明書の作成・apache-sslへの組み込み
2005-08-28-1 / カテゴリ: [linux][debian][Apache][SSL] / [permlink]
apache-ssl パッケージを apt でインストールすると、インストール時のみに、期限1ヶ月のオレオレ証明書を同時に作成しインストールされる。
ので、自己CAで署名したサーバ証明書を別途作成する。
コマンドは、@ITのApacheでSSLを使うにはの通りで問題なし
作業ディレクトリの作成
CAの秘密鍵の作成
CAのCSRの作成
CA証明書の発行
で、
サーバ証明書の秘密鍵
サーバ証明書のCSRの作成
シリアルナンバーのファイルを作成し
証明書の発行
作成した証明書の内容は、以下のコマンドで確認可能
で、ブラウザ側(クライアントPC)には、(何らかの安全な方法で)ca.crt をコピーし、証明書をインポートorインストールし、「この証明書を信頼する」とかそんな設定を行う。
サーバ(apache-ssl)側は、/etc/apache-ssl/httpd.conf の以下の設定を行う。(パスは作業ディレクトリ)
関連: mod_ssl(src)[2005-08-09-1], mod-ssl(deb)[2005-03-25-1]
ので、自己CAで署名したサーバ証明書を別途作成する。
コマンドは、@ITのApacheでSSLを使うにはの通りで問題なし
作業ディレクトリの作成
# mkdir /etc/ssl/servkey # cd /etc/ssl/servkeyま、管理しやすい位置でどこでもいいけど。
CAの秘密鍵の作成
# openssl genrsa -rand /var/log/syslog -out ca.key 1024
CAのCSRの作成
# openssl req -new -key ca.key -out ca.csr国名や名前などを入力
CA証明書の発行
# openssl x509 -req -in ca.csr -signkey ca.key -days 730 -out ca.crt-days がないと1ヶ月だったので、2年間と指定してみた。
で、
サーバ証明書の秘密鍵
# openssl genrsa -rand /var/log/syslog -out server.key 1024
サーバ証明書のCSRの作成
# openssl req -new -key server.key -out server.csrCAと同様に国名などの入力。Common Name に「ブラウザからアクセスするときに使用するドメイン名」を入力すること。
シリアルナンバーのファイルを作成し
# echo 01 > ca.srl
証明書の発行
# openssl x509 -req -days 730 -CA ca.crt -CAkey ca.key -in server.csr -out server.crt
作成した証明書の内容は、以下のコマンドで確認可能
# openssl x509 -in server.crt -text
で、ブラウザ側(クライアントPC)には、(何らかの安全な方法で)ca.crt をコピーし、証明書をインポートorインストールし、「この証明書を信頼する」とかそんな設定を行う。
サーバ(apache-ssl)側は、/etc/apache-ssl/httpd.conf の以下の設定を行う。(パスは作業ディレクトリ)
SSLCACertificateFile /etc/ssl/servkey/ca.crt SSLCertificateFile /etc/ssl/servkey/server.crt SSLCertificateKeyFile /etc/ssl/servkey/server.key
関連: mod_ssl(src)[2005-08-09-1], mod-ssl(deb)[2005-03-25-1]
Referrer (Inside):
[2008-02-22-1] [2005-08-28-2]
2005-08-27 Sat (他の年の同じ日: 2004 2006)
Perl 5.005 (以下)でファイルハンドルをスカラ変数に保持
2005-08-26-1 / カテゴリ: [programming][perl] / [permlink]
ぺるりめも - ハンドル名を変数に入れる の方法では、undef のスカラ変数を open の引数にしても
で、version 5.005_03 built for sun4-solaris で試した結果、
いいのかな。
で、これだと気持ち悪いので、FileHandle モジュールを使う方法。
Can't use an undefined value as filehandle reference at ./test.pl line 11. Can't use an undefined value as a symbol reference at ./test.pl line 11. (use strict時)で、実行できない。
で、version 5.005_03 built for sun4-solaris で試した結果、
my $fh = "";と、とりあえず空文字にしておけばクリアできた…
いいのかな。
で、これだと気持ち悪いので、FileHandle モジュールを使う方法。
use FileHandle; my $fh; $fh = new FileHandle "sample.txt", "r" or die "cannot open: $!\n"; while (<$fh>) { print; } $fh->close;書式が C 言語っぽい…
2005-08-25 Thu (他の年の同じ日: 2006)
stoneで穴掘り(より)
2005-08-25-1 / カテゴリ: [debian][network][SSL] / [permlink]
http://wiki.spc.gr.jp/tunnel/?DigByStone (stoneで穴掘り)
うぁー、ガッコの友達に(随分前に)教えてもらって試しに
あ、(A) の PC のネットワークは外部には全く出れず(名前解決もできない)、http(80,8080), https(443) のみ、(B) を proxy に Internet にアクセスできる、という環境です。で、(A), (B), (C) 全て異なるネットワークにいます。
ちなみに、(C) は debian sarge で、
(A) の win 用の stone は http://www.gcd.org/sengoku/stone/Welcome.ja.html より。
「stone version 2.2e for Win32 OpenSSL 版パッケージ」をダウンロードし、適当なディレクトリに展開し、コマンドプロンプトから実行。
まぁ、ネットワークが違うので、実際に外部に出れるかはわかんないけどね。
05/08/29 追記
出れた :p
うぁー、ガッコの友達に(随分前に)教えてもらって試しに
(A) PC(winXP)つー環境で、(C) を外部のサーバに見立ててやってみたら、見事に (A)->(C) の ssh がアクセスできた…。
↓
(B) 社外アクセス用proxyサーバ(一部の社内サーバにもアクセス可能)
↓
(C) 社内サーバ
あ、(A) の PC のネットワークは外部には全く出れず(名前解決もできない)、http(80,8080), https(443) のみ、(B) を proxy に Internet にアクセスできる、という環境です。で、(A), (B), (C) 全て異なるネットワークにいます。
ちなみに、(C) は debian sarge で、
# aptitude install stoneで、必要なものは揃う。
(A) の win 用の stone は http://www.gcd.org/sengoku/stone/Welcome.ja.html より。
「stone version 2.2e for Win32 OpenSSL 版パッケージ」をダウンロードし、適当なディレクトリに展開し、コマンドプロンプトから実行。
まぁ、ネットワークが違うので、実際に外部に出れるかはわかんないけどね。
05/08/29 追記
出れた :p
プロトタイプを使ってサブルーチンに複数の配列を渡す
2005-08-23-1 / カテゴリ: [programming][perl] / [permlink]
コード
結果
プロトタイプとして \@ を指定することで、配列のリファレンスとして受け取ることを強制できる。
サブルーチン内では結局配列のリファレンスをいじるハメになるけど、呼び出し側は引数を配列のまま渡すことができる。
sub print_a_list(\@\@) { my $list1 = shift; my $list2 = shift; foreach my $a (@$list1) { print "$a\n"; } } @array1 = (1,2,3); @array2 = (4,5,6); print_a_list(@array1, @array2);
結果
% ./test.pl 1 2 3
プロトタイプとして \@ を指定することで、配列のリファレンスとして受け取ることを強制できる。
サブルーチン内では結局配列のリファレンスをいじるハメになるけど、呼び出し側は引数を配列のまま渡すことができる。
2005-08-22 Mon (他の年の同じ日: 2012)
2005-08-21 Sun (他の年の同じ日: 2004 2007)
Odd number of elements in anonymous hash at xxx line yyy.
2005-08-21-1 / カテゴリ: [debian][perl] / [permlink]
コード書いていたら、warning だけど、そんなメッセージが出た。英単語の vocabulary にはうといんで、とりあえず google につっこむと、Movable Type (Blog??) の導入時エラーで未解決の記事ばっかりヒット。ダメじゃん。
ってことで、
man perl はあるけど(巨大なPerlのマニュアルの目次みたいなモン)、ほかは全然インストールされてないっぽい。
http://www.debian.org/distrib/packages でみると、perl-doc パッケージに含まれるみたいだけど、なにやらすさまじい量のドキュメントがインストールされるっぽいのでパス^^;
なので、エラーメッセージの文意そのもの、、、というより "Odd" の意味を調べる。「奇数」
あぁ、ハッシュ内のリストの要素が奇数っていってるのね…。馬鹿だな>自分
該当コード
まぁ、後々不便なので、perl-doc はインストールしておきませう。
man perldiag(1) より該当部分を引用
えーと、ハッシュのリファレンスのときが↑のメッセージになって、通常のハッシュの場合のメッセージは "Odd number of elements in anonymous hash at xxx.pl line N." と出るみたいね。
2005/08/23 追記
ってことで、
$ man perldiag マニュアル perldiag は登録されていませんって、おい^^;
man perl はあるけど(巨大なPerlのマニュアルの目次みたいなモン)、ほかは全然インストールされてないっぽい。
http://www.debian.org/distrib/packages でみると、perl-doc パッケージに含まれるみたいだけど、なにやらすさまじい量のドキュメントがインストールされるっぽいのでパス^^;
なので、エラーメッセージの文意そのもの、、、というより "Odd" の意味を調べる。「奇数」
あぁ、ハッシュ内のリストの要素が奇数っていってるのね…。馬鹿だな>自分
該当コード
$self->{testCase} = { 0 => plainSent(), 1 => dataIncNull(), };作りかけだったので、plainSent サブルーチンは値を返していたけど、dataIncNull は何も return してなかったのね。
まぁ、後々不便なので、perl-doc はインストールしておきませう。
man perldiag(1) より該当部分を引用
Odd number of elements in anonymous hash (W misc) You specified an odd number of elements to initialize a hash, which is odd, because hashes come in key/value pairs.
えーと、ハッシュのリファレンスのときが↑のメッセージになって、通常のハッシュの場合のメッセージは "Odd number of elements in anonymous hash at xxx.pl line N." と出るみたいね。
2005/08/23 追記
奇数: odd number
偶数: even number
2005-08-20 Sat (他の年の同じ日: 2004 2006 2007)
今日の戦利品
2005-08-20-5 / カテゴリ: [diary][ぬいぐるみ] / [permlink]
友達と卓球してきた。革靴でやったから、マメできちゃったよ。。。
カウンター横でゲット(x2)
次の日、筋肉痛に…
カウンター横でゲット(x2)
次の日、筋肉痛に…
fetchmailエラー cannot get a range of message sizes
2005-08-20-4 / カテゴリ: [linux][command][POP3][メール] / [permlink]
ここ数日、メールが全く届かないからおかしいなぁと思っていたら(個人メールはなくても、ML と spam は届くはず...orz)、fetchmail がエラー吐いていた。(というか全然気づかんかった...)
で、調べてみると、
http://lists.ccil.org/pipermail/fetchmail-friends/2003-October/008061.html
というか
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=323027
これかなぁ。
まぁ、
数日前に、友人から結婚します(未来形)のご報告メールが...
$ fetchmail fetchmail: 185 通のメッセージがアカウント zaki@mail.example.org , サーバ mail.example.org 宛に届いています。 (933330 バイト) fetchmail: cannot get a range of message sizes (1-100). fetchmail: クライアント/サーバプロトコルエラーが mail.example.org よりメールを 受信している最中に発生しました。 fetchmail: Query status=4 (PROTOCOL)んぎゃぁ。
で、調べてみると、
http://lists.ccil.org/pipermail/fetchmail-friends/2003-October/008061.html
> This is the log:新しい Bug なのね。
fetchmail: cannot get a range of message sizes (1-14).
i have added fetchsizelimit 0 for this account and now it works (wasn't
necessary with 6.2.4)
というか
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=323027
これかなぁ。
まぁ、
$ fetchmail --version : Fetch message size limit is 100 (--fetchsizelimit 100). :と(そんな設定はしていないのに)なってるんで、.fetchmailrc に
fetchsizelimit 0追加しておけば、とりあえず fetch できた。
数日前に、友人から結婚します(未来形)のご報告メールが...
alternativesアプリの変更
2005-08-20-3 / カテゴリ: [linux][debian] / [permlink]
x-terminal-emulator や x-www-browser 等のコマンドは、/etc/alternatives 以下に symlink があり、実態は rxvt や Eterm だったり、mozilla-firefox や galeon だったりする。
で、X の[ブラウザ]ボタンなんかでアプリを起動すると、大抵はここから起動されたりする。(…とりあえず、xfce4 on debian では)
また、単に emacs を実行すると、emacs20 だったり emacs21 だったり xemacs だったりするのも、この辺の設定。
で、これを確認・変更するには
(つーか、ls -l /etc/alternatives/x-terminal-emulator でもいいけど)
また、Eterm 以外に設定できるターミナルエミュレータの候補として、krxvt, crxvt, grxvt が表示される。
候補リストを表示するだけなら
設定(リンク)を変更するには
で、X の[ブラウザ]ボタンなんかでアプリを起動すると、大抵はここから起動されたりする。(…とりあえず、xfce4 on debian では)
また、単に emacs を実行すると、emacs20 だったり emacs21 だったり xemacs だったりするのも、この辺の設定。
で、これを確認・変更するには
# update-alternatives --display x-terminal-emulator x-terminal-emulator - status is manual. link currently points to /usr/bin/Eterm /usr/bin/krxvt - priority 9 slave x-terminal-emulator.1.gz: /usr/share/man/man1/krxvt.1.gz /usr/bin/crxvt - priority 8 slave x-terminal-emulator.1.gz: /usr/share/man/man1/crxvt.1.gz /usr/bin/grxvt - priority 8 slave x-terminal-emulator.1.gz: /usr/share/man/man1/grxvt.1.gz /usr/bin/Eterm - priority 10 slave x-terminal-emulator.1.gz: /usr/share/man/man1/Eterm.1.gz Current `best' version is /usr/bin/Eterm.で、/usr/bin/Eterm になっている(2行目) 推奨は Eterm らしい(最後の行)
(つーか、ls -l /etc/alternatives/x-terminal-emulator でもいいけど)
また、Eterm 以外に設定できるターミナルエミュレータの候補として、krxvt, crxvt, grxvt が表示される。
候補リストを表示するだけなら
# update-alternatives --list x-terminal-emulator /usr/bin/krxvt /usr/bin/crxvt /usr/bin/grxvt /usr/bin/Eterm
設定(リンク)を変更するには
# update-alternatives --config x-terminal-emulator There are 4 alternatives which provide `x-terminal-emulator'. Selection Alternative ----------------------------------------------- 1 /usr/bin/krxvt 2 /usr/bin/crxvt 3 /usr/bin/grxvt *+ 4 /usr/bin/Eterm Press enter to keep the default[*], or type selection number:となるので、krxvt に変更するには
Press enter to keep the default[*], or type selection number: 1 Using `/usr/bin/krxvt' to provide `x-terminal-emulator'.と。
SMTPでNULL(0x00)文字を送信する
2005-08-20-2 / カテゴリ: [programming][perl][SMTP] / [permlink]
MUA(メーラ)や telnet じゃちょっと無理だけど、プログラム書いちゃえば簡単。
Net::SMTP, Mail::Sender, Mail::Sendmail の3つを試したが、どれも送信可能。RFC的にはコントロールコードを含むascii文字を送信して良いと読めるので、MTAは処理しなければならない…と思う。少なくとも、MTA が core 吐いて死んだりとかは NG でしょう。
RFC2821 4.5.2 Transparency より引用
Net::SMTP版
Mail::Sender版
Mail::Sendmail版
Mail::Sender は、デフォルトでは(MIME::QuotedPrintが使えれば)quoted-print エンコードして送信するので、mailcfg{mime} を false に設定する。
Net::SMTP, Mail::Sender, Mail::Sendmail の3つを試したが、どれも送信可能。RFC的にはコントロールコードを含むascii文字を送信して良いと読めるので、MTAは処理しなければならない…と思う。少なくとも、MTA が core 吐いて死んだりとかは NG でしょう。
RFC2821 4.5.2 Transparency より引用
The mail data may contain any of the 128 ASCII characters. All
characters are to be delivered to the recipient's mailbox, including
spaces, vertical and horizontal tabs, and other control characters.
Net::SMTP版
use Net::SMTP; $smtp = Net::SMTP->new("localhost", Debug => 1) or die; $smtp->mail('from@mail.example.org'); $smtp->to('to@mail.example.org'); $smtp->data(); $smtp->datasend("\x1\x0\x1"); $smtp->dataend(); $smtp->quit();
Mail::Sender版
use Mail::Sender; $sender = new Mail::Sender{smtp => 'localhost', from => 'from@mail.example.org'}; $sender->MailMsg({ to => 'to@mail.example.org', msg => "\x1\x0\x1" });
Mail::Sendmail版
use Mail::Sendmail; $Mail::Sendmail::mailcfg{mime} = 0; sendmail( To => 'to@mail.example.org', From => 'from@mail.example.org', Message => "\x1\x0\x1" ) or die $Mail::Sendmail::error;
Mail::Sender は、デフォルトでは(MIME::QuotedPrintが使えれば)quoted-print エンコードして送信するので、mailcfg{mime} を false に設定する。
NTPを使ってマシンの時刻合わせ
2005-08-20-1 / カテゴリ: [linux][debian] / [permlink]
NTPサーバに問い合わせて、実行ホストの時刻を合わせる。
コマンドラインからの実行は
debian的には、/etc/init.d/ntpdate にスクリプトが、/etc/default/ntpdate を見て実行できるみたいなので、/etc/default/ntpdate に NTP サーバを指定しておけばよいのかな。
あとは、/etc/cron.daily あたりに、/etc/init.d/ntpdate restart を実行するようにセットしておけばよいかな。
# aptitude install ntpdateインストールと同時に、一旦時計あわせが実行される。
コマンドラインからの実行は
# ntpdate ntp1.jst.mfeed.ad.jp
# ntpdate -s ntp1.jst.mfeed.ad.jp-s オプション付で、結果が syslog へ出力される。
debian的には、/etc/init.d/ntpdate にスクリプトが、/etc/default/ntpdate を見て実行できるみたいなので、/etc/default/ntpdate に NTP サーバを指定しておけばよいのかな。
NTPSERVERS="ntp1.jst.mfeed.ad.jp"/usr/sbin/ntpdate はこのファイルを見るわけではないので注意。
あとは、/etc/cron.daily あたりに、/etc/init.d/ntpdate restart を実行するようにセットしておけばよいかな。
2005-08-19 Fri (他の年の同じ日: 2007)
子プロセス孫プロセスひ孫プロセス...を一気に殺す
2005-08-19-1 / カテゴリ: [programming][perl] / [permlink]
少なくとも子プロセスの pid はわかってるはずだから、プロセスグループ ID を取得して、kill する。
かなりドンくさいけどテストコード
実行
$pgrp = getpgrp $chld_pid; kill -9, $pgrp;kill の第一引数は、送りたいシグナル番号。
かなりドンくさいけどテストコード
if ($pid[0] = fork) { # oya; local $SIG{INT} = sub { my $pgrp = getpgrp $pid[0]; print "pgrp: ", $pgrp, "\n"; print "catch ", shift, " (oya)\n"; kill -15, $pgrp; exit; }; &loop; } elsif (defined $pid[0]) { if ($pid[1] = fork) { # ko local $SIG{TERM} = $SIG{HUP} = sub { print "catch ", shift, " (ko)\n"; exit; }; &loop; } elsif (defined $pid[1]) { local $SIG{CHLD} = 'IGNORE'; if ($pid[2] = fork) { # mago local $SIG{TERM} = $SIG{HUP} = sub { print "catch ", shift, " (mago)\n"; exit; }; &loop; } elsif (defined $pid[2]) { # himago local $SIG{TERM} = $SIG{HUP} = sub { print "catch ", shift, " (himago)\n"; exit; }; &loop; } } } sub loop { while (1) { print "sleep "; sleep 1; } }kill にシグナル名を与えられないのは微妙に使いにくいかな??
実行
% ./test.pl sleep sleep sleep sleep ^Cpgrp: 7060 catch INT (oya) catch TERM (himago) catch TERM (mago) catch TERM (ko) zsh: terminated ./test.pl
2005-08-10 Wed (他の年の同じ日: 2007)
多バイトファイル名の文字コード変更スクリプト
2005-08-10-3 / カテゴリ: [programming][perl] / [permlink]
というわけで試作。Perl 5.8+ 用。shift_jis -> eucjp 固定
ascii のみのファイル/ディレクトリの場合は、同じファイル名への rename のため失敗するが、仕様です :p
#!/usr/bin/perl use Encode qw(from_to); use File::Find; my $basedir = shift; -d $basedir or die "Usage $0 dir\n"; find( sub { my $target = $_; sj2e($target) if -f $target; }, $basedir); find( sub { my $target = $_; sj2e($target) if -d $target; }, $basedir); sub sj2e { my $from = shift; my $to = $from; from_to($to, "shiftjis", "euc-jp"); rename($from, $to) ? print "renamed: ", $File::Find::name, "\n" : print "renamed failed: ", $File::Find::name, "\n"; }なんか、ムダに長いなぁ。ってか、1パスで動作させた方がスマートかも。
ascii のみのファイル/ディレクトリの場合は、同じファイル名への rename のため失敗するが、仕様です :p
smb.conf の文字コード設定が有効なのは global のみ??
2005-08-10-2 / カテゴリ: [linux][debian][samba] / [permlink]
/dev/hdd1 に SJIS でネーミングされたファイルが大量にある。
/dev/hdb1 に EUC-JP として、全部コピーしたい。
文字コードを設定した mount は、ext2/ext3 では使えず、smbfs や NTFS 等だけみたいなので、
hdd1 を dos charset = CP932 / unix charset = CP932
hdb1 を dos charset = CP932 / unix charset = eucJP-ms
として samba 共有し、win から cp すればクリアできると思ったが…
[global]セクションに設定したコード設定は有効だけど、それ以外のセクション([share-1]とか)は、コードの設定が効かない…
こーゆーことをしたかったんだけどなぁ。
rename スクリプト作るのが手っ取り早いのかな。
/dev/hdb1 に EUC-JP として、全部コピーしたい。
文字コードを設定した mount は、ext2/ext3 では使えず、smbfs や NTFS 等だけみたいなので、
hdd1 を dos charset = CP932 / unix charset = CP932
hdb1 を dos charset = CP932 / unix charset = eucJP-ms
として samba 共有し、win から cp すればクリアできると思ったが…
[global]セクションに設定したコード設定は有効だけど、それ以外のセクション([share-1]とか)は、コードの設定が効かない…
こーゆーことをしたかったんだけどなぁ。
[share-b] path = /mnt/hdb1 comment = hdb1 browseable = yes writable = yes create mask = 0644 directory mask = 0755 dos charset = CP932 unix charset = eucJP-ms [share-d] path = /mnt/hdd1 comment = hdd1 browseable = yes writable = yes create mask = 0644 directory mask = 0755 dos charset = CP932 unix charset = CP932
rename スクリプト作るのが手っ取り早いのかな。
HDD増設
2005-08-10-1 / カテゴリ: [linux][debian] / [permlink]
先月末に / が吹っ飛び、バックアップ用に /dev/hdb として使ってたやつを / (/dev/hda) に持ってきたので、新しく /dev/hdb としてセット。つか、買ったのはやっぱ先月末だったんだけど、フォーマットしてなかった。
パーティションの作成
フォーマット
マウント
買ったのは Seagate の ST3160021A で、160GB/7200rpm
某での書込みを見る限りでは、音量は結構静かな感じだったけど、サーバ用ってことでずっと 5400rpm のディスクばっかり使ってた自分には、ちょっとうるさく感じた…
パーティションの作成
# fdisk /dev/hdb : Command (m for help): p Disk /dev/hdb: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-19457, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-19457, default 19457): Using default value 19457 Command (m for help): p Disk /dev/hdb: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 19457 156288321 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.めんどっちぃので、1パーティションブッタ切りで :D
フォーマット
# mkfs -t ext3 /dev/hdb1 mke2fs 1.37 (21-Mar-2005) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 19546112 inodes, 39072080 blocks 1953604 blocks (5.00%) reserved for the super user First data block=0 1193 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872 Writing inode tables: : :
マウント
# mkdir /mnt/hdb1 # mount /dev/hdb1 /mnt/hdb1/ # ls /mnt/hdb1/ lost+found/
買ったのは Seagate の ST3160021A で、160GB/7200rpm
某での書込みを見る限りでは、音量は結構静かな感じだったけど、サーバ用ってことでずっと 5400rpm のディスクばっかり使ってた自分には、ちょっとうるさく感じた…
2005-08-09 Tue (他の年の同じ日: 2006 2007)
Digest認証の実装
2005-08-09-2 / カテゴリ: [HTTP] / [permlink]
[2005-07-18-2]の続き。情報元は同じくHTTP 認証: 基本アクセス認証及びダイジェストアクセス認証(RFC2617 日本語訳)
サーバ側の digest 認証の設定は[2005-07-08-3], [2005-05-29-2]
パケットキャプチャすると、サーバ側(Apache 1.3.33/debian)のレスポンスは
RFC2617に載っている、'algorithm' や 'qop' といった指示子がないな。ま、使用す[べきである]だから、いいのか(qop-options)。必要なのは realm と nonce かな。
algorithm がない場合は、"MD5" 扱いとのこと。
んで、クライアント(mozilla 1.7.6)のリクエスト
んで、
でもって、response は、
KD(xx, xx) は
H(xxx) は、"xxx" の md5sum 値
A1 は
A2 は
で、元の "KD(H(A1), unq(nonce-value) ":" H(A2)" に戻ると、サーバのレスポンスの nonce が "98ca43d0f7a1e2641ea305f44db89cca1123568401" なので
んーと、Digest認証は、パスワードが平文でネットワークを流れないから安全・サーバ上にパスワードを平文で保存しないので安全って聞くけど、前者は良いとして、後者は、パスワードファイル(例えば .htpasswd)の中身が
多分
サーバ側の digest 認証の設定は[2005-07-08-3], [2005-05-29-2]
パケットキャプチャすると、サーバ側(Apache 1.3.33/debian)のレスポンスは
HTTP/1.1 401 Authorization Required Date: Tue, 09 Aug 2005 06:20:01 GMT Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-15 mod_jk/1.2.5 mod_fastcgi/2.4.2 mod_ssl/2.8.22 OpenSSL/0.9.7d WWW-Authenticate: Digest realm="relm", nonce="98ca43d0f7a1e2641ea305f44db89cca1123568401" Keep-Alive: timeout=15, max=99 Connection: Keep-Alive Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1こんな感じ。
RFC2617に載っている、'algorithm' や 'qop' といった指示子がないな。ま、使用す[べきである]だから、いいのか(qop-options)。必要なのは realm と nonce かな。
algorithm がない場合は、"MD5" 扱いとのこと。
challenge = "Digest" digest-challenge
digest-challenge = 1#( realm | [ domain ] | nonce |
[ opaque ] |[ stale ] | [ algorithm ] |
[ qop-options ] | [auth-param] )
んで、クライアント(mozilla 1.7.6)のリクエスト
GET /~zaki/auth/digest/ HTTP/1.1 Host: www.example.org User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7.6) Gecko/20050319 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: ja,en-us;q=0.7,en;q=0.3 Accept-Encoding: gzip,deflate Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Authorization: Digest username="zaki", realm="relm", nonce="98ca43d0f7a1e2641ea305f44db89cca1123568401", uri="/~zaki/auth/digest/", response="52b08746ab144ba29cf2fd6fe31174ca"認証のための HTTP リクエストは Authorization ヘッダ。
credentials = "Digest" digest-response
digest-response = 1#( username | realm | nonce | digest-uri
| response | [ algorithm ] | [cnonce] |
[opaque] | [message-qop] |
[nonce-count] | [auth-param] )
んで、
username 使用するユーザ名 (username="zaki")
realm 使用するrealm(レスポンスヘッダにある) (realm="relm" <- スペルミスった)
nonce レスポンスにある nonce そのまま (nonce="98..."
digest-uri リクエストするファイル (uri="/~zaki/auth/digest/")
response ダイジェスト (response="52...")
でもって、response は、
"qop" が "auth" か "auth-int" である場合:とゆーことなので、 "KD(H(A1), unq(nonce-value) ":" H(A2)" ということ。
request-digest = <"> < KD ( H(A1), unq(nonce-value)
":" nc-value
":" unq(cnonce-value)
":" unq(qop-value)
":" H(A2)
) <">
"qop" 指示子が与えられない場合 (RFC 2069 との互換性のための構文)
request-digest =
<"> < KD ( H(A1), unq(nonce-value) ":" H(A2) ) > <">
A1 と A2 についての定義は以下を見よ。
KD(xx, xx) は
H(data) = MD5(data)なので、"xx:xx" の md5sum 値
また
KD(secret, data) = H(concat(secret, ":", data))
H(xxx) は、"xxx" の md5sum 値
A1 は
A1 = unq(username-value) ":" unq(realm-value) ":" passwdで、ユーザ名:zaki, パス:zaki、realm:relm であれば、
$ printf 'zaki:relm:zaki' | md5sum f85142f6a9b00f64cd3afb151ba80505こうなる。
A2 は
"qop" 指示子の値が "auth" か指定されない場合、A2 は:で、/~zaki/auth/digest/ への GET リクエストであれば、
A2 = Method ":" digest-uri-value
"qop" の値が "auth-int" ならば、A2 は:
A2 = Method ":" digest-uri-value ":" H(entity-body)
$ printf 'GET:/~zaki/auth/digest/' | md5sum b513229595a7eff3223d5412614d2ba4となる。
で、元の "KD(H(A1), unq(nonce-value) ":" H(A2)" に戻ると、サーバのレスポンスの nonce が "98ca43d0f7a1e2641ea305f44db89cca1123568401" なので
$ printf 'f85142f6a9b00f64cd3afb151ba80505:98ca43d0f7a1e2641ea305f44db89cca1123568401:b513229595a7eff3223d5412614d2ba4' | md5sum 52b08746ab144ba29cf2fd6fe31174caになる。
んーと、Digest認証は、パスワードが平文でネットワークを流れないから安全・サーバ上にパスワードを平文で保存しないので安全って聞くけど、前者は良いとして、後者は、パスワードファイル(例えば .htpasswd)の中身が
zaki:relm:f85142f6a9b00f64cd3afb151ba80505こーなってんだよね…。'zaki'って生パスワードではないけど、強調するほど安全じゃないよな。このファイル(のハッシュ値)と nonce 値さえ取られてしまえば、あとは md5sum 計算するだけだし。
多分
Apache(1.x), mod_ssl で https
2005-08-09-1 / カテゴリ: [unix][SSL][Apache] / [permlink]
オレオレ CA 付で、新規に CA とサーバ鍵を生成する。
参考 Apache+mod SSLのインストールと設定
非 root で作業(ぉぃ
つか、mod_ssl の INSTALL にインストール手順が載ってるので、そのまんま作業すれば良い。
(↓ prefix の指定方法を間違ってます。後述)
で
TYPE=custom で、CA とサーバ鍵をセットで作る(作ったサーバ証明書をCAに署名させる)
インストール
…うまくいってるように見えたけど、~/local/apache-ssl がない。
探してみると、作業ディレクトリ直下に '~' ディレクトリができてる… orz
つーわけで、--prefix は絶対ディレクトリ指定にすれば OK
でもって、インストールディレクトリ(~/local/apache-ssl)以下にある conf/ssl.crt/ca.crt をクライアント(ブラウザ) にインポートしてやれば、OK
debian での apache + mod-ssl インストール[2005-03-25-1]と似たようなものか。
参考 Apache+mod SSLのインストールと設定
非 root で作業(ぉぃ
$ mkdir -p ~/local/src/apache $ cd ~/local/src/apache $ wget http://www.modssl.org/source/mod_ssl-2.8.23-1.3.33.tar.gz $ wget http://www.meisei-u.ac.jp/mirror/apache/dist/httpd/apache_1.3.33.tar.gz $ gzip -dc mod_ssl-2.8.23-1.3.33.tar.gz | tar xvf - $ gzip -dc apache_1.3.33.tar.gz | tar xvf -
つか、mod_ssl の INSTALL にインストール手順が載ってるので、そのまんま作業すれば良い。
(↓ prefix の指定方法を間違ってます。後述)
$ cd mod_ssl-2.8.23-1.3.33 $ ./configure --with-apache=../apache_1.3.33 --with-ssl=/usr/local/ssl --prefix=~/local/apache-ssl Configuring mod_ssl/2.8.23 for Apache/1.3.33 + Apache location: ../apache_1.3.33 (Version 1.3.33) + OpenSSL location: /usr/local/ssl + Auxiliary patch tool: ./etc/patch/patch (local) + Applying packages to Apache source tree: o Extended API (EAPI) o Distribution Documents o SSL Module Source o SSL Support o SSL Configuration Additions o SSL Module Documentation o Addons Done: source extension and patches successfully applied. Configuring for Apache, Version 1.3.33 + using installation path layout: Apache (config.layout) Creating Makefile Creating Configuration.apaci in src Creating Makefile in src + configured for Solaris 280 platform + setting C compiler to gcc + setting C pre-processor to gcc -E + using "tr [a-z] [A-Z]" to uppercase + checking for system header files + adding selected modules o ssl_module uses ConfigStart/End + SSL interface: mod_ssl/2.8.23 + SSL interface build type: OBJ + SSL interface compatibility: enabled + SSL interface experimental code: disabled + SSL interface conservative code: disabled + SSL interface vendor extensions: disabled + SSL interface plugin: Vendor DBM (libc) + SSL library path: /opt/usr/local/ssl + SSL library version: OpenSSL 0.9.7b 10 Apr 2003 + SSL library type: installed package (stand-alone) + enabling Extended API (EAPI) + using system Expat + checking sizeof various data types + doing sanity check on compiler and options Creating Makefile in src/support Creating Makefile in src/os/unix Creating Makefile in src/ap Creating Makefile in src/main Creating Makefile in src/modules/standard Creating Makefile in src/modules/ssl Now proceed with the following commands: $ cd ../apache_1.3.33 $ make $ make certificate $ make install
で
$ cd ../apache_1.3.33 $ make : (コンパイル) :
TYPE=custom で、CA とサーバ鍵をセットで作る(作ったサーバ証明書をCAに署名させる)
$ make certificate TYPE=custom make[1]: Entering directory `/export/home/miyazaki/local/src/apache/apache_1.3.3 3/src' SSL Certificate Generation Utility (mkcert.sh) Copyright (c) 1998-2000 Ralf S. Engelschall, All Rights Reserved. Generating custom certificate signed by own CA [CUSTOM] ______________________________________________________________________ STEP 0: Decide the signature algorithm used for certificates The generated X.509 certificates can contain either RSA or DSA based ingredients. Select the one you want to use. Signature Algorithm ((R)SA or (D)SA) [R]: ______________________________________________________________________ STEP 1: Generating RSA private key for CA (1024 bit) [ca.key] 1578372 semi-random bytes loaded Generating RSA private key, 1024 bit long modulus .....................++++++ ...++++++ e is 65537 (0x10001) ______________________________________________________________________ STEP 2: Generating X.509 certificate signing request for CA [ca.csr] You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- 1. Country Name (2 letter code) [XY]:JP 2. State or Province Name (full name) [Snake Desert]:Kanagawa 3. Locality Name (eg, city) [Snake Town]:Yokohama 4. Organization Name (eg, company) [Snake Oil, Ltd]:home 5. Organizational Unit Name (eg, section) [Certificate Authority]:admin 6. Common Name (eg, CA name) [Snake Oil CA]:foo 7. Email Address (eg, name@FQDN) [ca@snakeoil.dom]:www@www.example.org 8. Certificate Validity (days) [365]: ______________________________________________________________________ STEP 3: Generating X.509 certificate for CA signed by itself [ca.crt] Certificate Version (1 or 3) [3]: Signature ok subject=/C=JP/ST=Kanagawa/L=Yokohama/O=home/OU=admin/CN=foo/emailAddress=www@www.example .org Getting Private key Verify: matching certificate & key modulus Verify: matching certificate signature ../conf/ssl.crt/ca.crt: /C=JP/ST=Kanagawa/L=Yokohama/O=home/OU=admin/CN=foo/emailAddress =www@www.example.org error 18 at 0 depth lookup:self signed certificate OK ______________________________________________________________________ STEP 4: Generating RSA private key for SERVER (1024 bit) [server.key] 1578471 semi-random bytes loaded Generating RSA private key, 1024 bit long modulus ..............++++++ ...............................++++++ e is 65537 (0x10001) ______________________________________________________________________ STEP 5: Generating X.509 certificate signing request for SERVER [server.csr] You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- 1. Country Name (2 letter code) [XY]:JP 2. State or Province Name (full name) [Snake Desert]:Kanagawa 3. Locality Name (eg, city) [Snake Town]:Yokohama 4. Organization Name (eg, company) [Snake Oil, Ltd]:home 5. Organizational Unit Name (eg, section) [Webserver Team]:foo 6. Common Name (eg, FQDN) [www.snakeoil.dom]:www.example.org 7. Email Address (eg, name@fqdn) [www@snakeoil.dom]:www@www.example.org 8. Certificate Validity (days) [365]: ______________________________________________________________________ STEP 6: Generating X.509 certificate signed by own CA [server.crt] Certificate Version (1 or 3) [3]: Signature ok subject=/C=JP/ST=Kanagawa/L=Yokohama/O=home/OU=foo/CN=www.example.org/emailAddress =www@www.example.org Getting CA Private Key Verify: matching certificate & key modulus Verify: matching certificate signature ../conf/ssl.crt/server.crt: OK ______________________________________________________________________ STEP 7: Enrypting RSA private key of CA with a pass phrase for security [ca.key] The contents of the ca.key file (the generated private key) has to be kept secret. So we strongly recommend you to encrypt the server.key file with a Triple-DES cipher and a Pass Phrase. Encrypt the private key now? [Y/n]: n Warning, you're using an unencrypted private key. Please notice this fact and do this on your own risk. ______________________________________________________________________ STEP 8: Enrypting RSA private key of SERVER with a pass phrase for security [ser ver.key] The contents of the server.key file (the generated private key) has to be kept secret. So we strongly recommend you to encrypt the server.key file with a Triple-DES cipher and a Pass Phrase. Encrypt the private key now? [Y/n]: n Warning, you're using an unencrypted RSA private key. Please notice this fact and do this on your own risk. ______________________________________________________________________ RESULT: CA and Server Certification Files o conf/ssl.key/ca.key The PEM-encoded RSA private key file of the CA which you can use to sign other servers or clients. KEEP THIS FILE PRIVATE! o conf/ssl.crt/ca.crt The PEM-encoded X.509 certificate file of the CA which you use to sign other servers or clients. When you sign clients with it (for SSL client authentication) you can configure this file with the 'SSLCACertificateFile' directive. o conf/ssl.key/server.key The PEM-encoded RSA private key file of the server which you configure with the 'SSLCertificateKeyFile' directive (automatically done when you install via APACI). KEEP THIS FILE PRIVATE! o conf/ssl.crt/server.crt The PEM-encoded X.509 certificate file of the server which you configure with the 'SSLCertificateFile' directive (automatically done when you install via APACI). o conf/ssl.csr/server.csr The PEM-encoded X.509 certificate signing request of the server file which you can send to an official Certificate Authority (CA) in order to request a real server certificate (signed by this CA instead of our own CA) which later can replace the conf/ssl.crt/server.crt file. Congratulations that you establish your server with real certificates. make[1]: Leaving directory `/export/home/miyazaki/local/src/apache/apache_1.3.33 /src'
インストール
$ make install
…うまくいってるように見えたけど、~/local/apache-ssl がない。
探してみると、作業ディレクトリ直下に '~' ディレクトリができてる… orz
つーわけで、--prefix は絶対ディレクトリ指定にすれば OK
でもって、インストールディレクトリ(~/local/apache-ssl)以下にある conf/ssl.crt/ca.crt をクライアント(ブラウザ) にインポートしてやれば、OK
debian での apache + mod-ssl インストール[2005-03-25-1]と似たようなものか。
Referrer (Inside):
[2005-08-28-1]
lm_sensors を使ってCPU温度の取得
2005-08-08-3 / カテゴリ: [linux][debian] / [permlink]
今更ドキュメントシリーズ
ちなみに現状、OSインストール直後の kernel-image を使ってます。(not カスタムカーネル)
lm-sensors-2.4.27-2-386 が kernel-module になってるみたいで、modprobe なんかでロード可能になる。
モジュールのロード(明示的にやんなくても良いのかな?)
で、
つか、FAN回転数とれてないなぁ。
/etc/init.d/lm-sensors なんてある…
中身は
で、その後は
FANはどうなってんだろ…??
えーと、後は、rrdtool に食わせるようにすれば良いのか。現状、グラフにして楽しげなのは温度くらいかな。
# aptitude install lm-sensors : The following NEW packages will be installed: i2c-2.4.27-2-386 libsensors3 lm-sensors lm-sensors-2.4.27-2-386 0 packages upgraded, 4 newly installed, 0 to remove and 0 not upgraded. :debconf は <Yes> 押下で終わり
ちなみに現状、OSインストール直後の kernel-image を使ってます。(not カスタムカーネル)
lm-sensors-2.4.27-2-386 が kernel-module になってるみたいで、modprobe なんかでロード可能になる。
# sensors-detect : ......[Enter]連打で。 : To make the sensors modules behave correctly, add these lines to /etc/modules: #----cut here---- # I2C adapter drivers i2c-piix4 # I2C chip drivers lm78 eeprom #----cut here---- Do you want to add these lines to /etc/modules automatically? (yes/NO)
モジュールのロード(明示的にやんなくても良いのかな?)
# modprobe i2c-piix4 # modprobe lm78 # modprobe eeprom
で、
# sensors lm79-i2c-0-2d Adapter: SMBus PIIX4 adapter at 5000 VCore 1: +2.03 V (min = +0.02 V, max = +1.74 V) ALARM VCore 2: +1.49 V (min = +0.98 V, max = +1.39 V) ALARM +3.3V: +3.20 V (min = +3.95 V, max = +1.66 V) ALARM +5V: +5.11 V (min = +2.96 V, max = +2.87 V) ALARM +12V: +11.78 V (min = +5.05 V, max = +8.44 V) ALARM -12V: -11.75 V (min = -6.33 V, max = -0.45 V) ALARM -5V: -5.03 V (min = -0.39 V, max = -2.36 V) ALARM fan1: 0 RPM (min = 25000 RPM, div = 2) ALARM fan2: 0 RPM (min = 28125 RPM, div = 2) ALARM fan3: 0 RPM (min = 6136 RPM, div = 2) ALARM temp: +47.0 C (high = +30 C, hyst = +116 C) ALARM vid: +2.00 V eeprom-i2c-0-50 Adapter: SMBus PIIX4 adapter at 5000 Memory type: SDR SDRAM DIMM Memory size (MB): 256 eeprom-i2c-0-51 Adapter: SMBus PIIX4 adapter at 5000 Memory type: SDR SDRAM DIMM Memory size (MB): 128 eeprom-i2c-0-52 Adapter: SMBus PIIX4 adapter at 5000 Memory type: SDR SDRAM DIMM Memory size (MB): 256なんか、電圧とかの min/max が変…
つか、FAN回転数とれてないなぁ。
/etc/init.d/lm-sensors なんてある…
# /etc/init.d/lm-sensors start Setting sensors limits: done. # ps aux | grep lm root 26135 0.0 0.0 1536 456 pts/16 R+ 15:09 0:00 grep lmdaemon じゃないのね。
中身は
: case "$1" in start) echo -n "Setting sensors limits:" /usr/bin/sensors -s 1> /dev/null 2> /dev/null /usr/bin/sensors 1> /dev/null 2> /dev/null echo " done." ;; stop) ;; :と、limits を設定するスクリプトみたい。
で、その後は
: VCore 1: +2.03 V (min = +1.90 V, max = +2.10 V) VCore 2: +1.49 V (min = +1.90 V, max = +2.10 V) ALARM +3.3V: +3.20 V (min = +3.14 V, max = +3.46 V) +5V: +5.11 V (min = +4.74 V, max = +5.24 V) +12V: +11.78 V (min = +11.36 V, max = +12.58 V) -12V: -11.75 V (min = -12.59 V, max = -11.33 V) -5V: -5.01 V (min = -5.25 V, max = -4.74 V) fan1: 0 RPM (min = 25000 RPM, div = 2) ALARM fan2: 0 RPM (min = 28125 RPM, div = 2) ALARM fan3: 0 RPM (min = 6136 RPM, div = 2) ALARM temp: +47.0 C (high = +30 C, hyst = +116 C) ALARM vid: +2.00 V :温度と電圧についてはちゃんと取れるようになった(多分)
FANはどうなってんだろ…??
えーと、後は、rrdtool に食わせるようにすれば良いのか。現状、グラフにして楽しげなのは温度くらいかな。
tar アーカイブから、部分的にファイルを取り出す。
2005-08-08-2 / カテゴリ: [linux][command] / [permlink]
$ tar tzvf tmp.tar.gz tmp/telnet/terminal.c tmp/telnet/tn3270.c tmp/telnet/types.h tmp/telnet/utilities.c tmp/test.cat tmp/test.grep tmp/unison.test/ tmp/unison.test/dira/ tmp/unison.test/dirb/ tmp/zzz/ tmp/zzz/1.0.6/ tmp/zzz/1.0.6/zzz.txt tmp/zzz/1.0.7/ tmp/zzz/1.0.7/zzz.txt tmp/zzz/today/つー、状態で
$ tar zxvf tmp.tar.gz tmp/zzz tmp/zzz/ tmp/zzz/1.0.6/ tmp/zzz/1.0.6/zzz.txt tmp/zzz/1.0.7/ tmp/zzz/1.0.7/zzz.txt tmp/zzz/today/
ls をリダイレクトしたときに、1行複数項目表示
2005-08-08-1 / カテゴリ: [unix][command] / [permlink]
$ ls -C | more
オプションなしで ls をリダイレクト・パイプしたときは1行1エントリになる(つか、これがデフォルトみたい)。
出力は標準出力に対して行われ、 -C オプションで複数列出力が要求されな いman ls より
限 り、1 行に 1 エントリである。しかし、端末に対する出力では、出力が 1
列または複数列のどちらになるかが定められていない。オプション -1 と -C
は、それぞれ 1 列出力と複数列出力を強制させるために使用される。
2005-08-05 Fri (他の年の同じ日: 2004 2007)
SMTP over SSL(starttls)でエラー
2005-08-05-4 / カテゴリ: [linux][debian][squirrelmail] / [permlink]
Warning: fsockopen(): SSL operation failed with code 1. OpenSSL Error messages: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number in /usr/share/squirrelmail/class/deliver/Deliver_SMTP.class.php on line 57 Warning: fsockopen(): php_stream_sock_ssl_activate_with_method: SSL handshake/connection failed in /usr/share/squirrelmail/class/deliver/Deliver_SMTP.class.php on line 57 Warning: fsockopen(): failed to activate SSL mode 2 in /usr/share/squirrelmail/class/deliver/Deliver_SMTP.class.php on line 57えー
サーバ証明が正常に行われないからかな?
SSL/TLSを用いたメールの送受信について
さすがにこれは手の打ちようがない(証明書の検証をしない設定があれば別か)ので、メール送信時は tls 不使用ってことにするか。
つか、squirrelmail 以外なら検証skipで送れるから、緊急用扱いだし、ま、いっか。
アカウント名の別名を作る
2005-08-05-3 / カテゴリ: [linux][debian][imap] / [permlink]
courier-imap の、ね。
これで、imap の認証と smtp の認証に個別のアカウントを設定できない squirrelmail に対応 ^^;
[追記]
OSアカウント 'zaki' の認証に、ユーザ名 'foo@example.sakura.ne.jp' で認証する、というお話。
(んで、~zaki/Maildir 以下のメールを閲覧する、と)
[/追記]
# userdb foo@example.sakura.ne.jp set home=/home/zaki uid=1000 gid=1000 # userdbpw -hmac-md5 | userdb foo@example.sakura.ne.jp set imap-hmac-md5pw # makeuserdb
これで、imap の認証と smtp の認証に個別のアカウントを設定できない squirrelmail に対応 ^^;
[追記]
OSアカウント 'zaki' の認証に、ユーザ名 'foo@example.sakura.ne.jp' で認証する、というお話。
(んで、~zaki/Maildir 以下のメールを閲覧する、と)
[/追記]
インストール
2005-08-05-2 / カテゴリ: [linux][debian][squirrelmail] / [permlink]
woodyのとき[2005-03-25-3]と違う…
で、設定したのは、
と、httpd.conf に
# aptitude install squirrelmaildebconf なし
# dpkg-reconfigure squirrelmail Run /usr/sbin/squirrelmail-configure as root to configure/upgrade config.そうですか。
で、設定したのは、
SMTP ... さくらのMTAを使うため localhost:25 から変更, auth や tls の設定など
IMAP ... 自サーバ用の設定 login -> cram-md5
文字コード ... en_US/iso-8859-1 を ja_JP/iso-2022-jp
と、httpd.conf に
Alias /dirname /usr/share/squirrelmail追加
vncserver のパスワード変更
2005-08-05-1 / カテゴリ: [linux][アプリ] / [permlink]
vncserver 停止中に
もしくは、~/.vnc/passwd を削除して、再度 vncserver を起動する(?)
$ vncpasswd Password: Verify:で変更
もしくは、~/.vnc/passwd を削除して、再度 vncserver を起動する(?)
ImageMagick でスクリーンショットをとる
2005-08-04-2 / カテゴリ: [linux][debian][X] / [permlink]
デスクトップ全体を保存する
ただ、これだと、"import を実行するターミナルが含まれてちょっと困る" 場合は、Ctrl+Alt-Fn でコンソールへ移り、
で GO
(6秒以内に X の画面に移るべし)
$ import -window root foobar.png
ただ、これだと、"import を実行するターミナルが含まれてちょっと困る" 場合は、Ctrl+Alt-Fn でコンソールへ移り、
$ export DISPLAY=:0.0 $ sleep 6; import -window root foobar.png
で GO
(6秒以内に X の画面に移るべし)
no-ip DDNS 更新パッケージ
2005-08-04-1 / カテゴリ: [linux][debian] / [permlink]
あったのかー
dpkg -L でリストを見ても、設定ファイルぽいのはなし。
一応、/etc/init.d/no-ip と /usr/bin/no-ip はある。
man もあるので、とりあえず見る。
で、とりあえず /usr/bin/no-ip を実行
-c じゃなくて -C じゃないのかな…
/usr/bin/no-ip 自体はシェルスクリプトなんかじゃないようなので、strace でチェック
しかたないので、ポート開放
で、
ん? 8245/tcp は開けたままじゃないとダメなのかな?
2005/08/23 追記
8245/tcp へのアクセスは実行時のipアドレスチェックに必要(straceで確認)
# aptitude install no-ip…って、何も聞かれない。/etc 直下もそれっぽいのなし…
dpkg -L でリストを見ても、設定ファイルぽいのはなし。
一応、/etc/init.d/no-ip と /usr/bin/no-ip はある。
man もあるので、とりあえず見る。
で、とりあえず /usr/bin/no-ip を実行
# no-ip Can't locate configuration file /etc/no-ip.conf. (Try -c). Ending!
-c じゃなくて -C じゃないのかな…
# no-ip -C Auto configuration for Linux client of no-ip.com. Multiple network devices have been detected. Please select the Internet interface from this list. By typing the number associated with it. 0 eth0 1 eth1 0ここで反応がなくなる… why?
/usr/bin/no-ip 自体はシェルスクリプトなんかじゃないようなので、strace でチェック
# strace -p 15625 : connect(4, {sa_family=AF_INET, sin_port=htons(8245), sin_addr=inet_addr("8.4.112.97")}, 16) = ? ERESTARTSYS (To be restarted)ネットワーク接続かい。8245/tcp なんか iptables で閉めとるわい。
# netstat -tau : tcp 0 1 192.168.0.10:33341 dynupdate.no-ip.co:8245 SYN_SENT :
しかたないので、ポート開放
# iptables -A INPUT -p tcp -s 8.4.112.97 --sport 8245 -j ACCEPT # iptables -A OUTPUT -p tcp -d 8.4.112.97 --dport 8245 -j ACCEPT
# no-ip -C Auto configuration for Linux client of no-ip.com. Multiple network devices have been detected. Please select the Internet interface from this list. By typing the number associated with it. 0 eth0 1 eth1 0 Please enter the login/email string for no-ip.com foo@mail.example.org Please enter the password for user 'foo@example.org' ****** Only one host [***.no-ip.***] is registered to this account. It will be used. Please enter an update interval:[30] 30 Do you wish to run something at successful update?[N] (y/N) n New configuration file '/etc/no-ip.conf' created.
で、
# /etc/init.d/no-ip start Starting dynamic address update: no-ip.
# tail /var/log/syslog : Aug 4 23:36:10 localhost no-ip[15683]: v2.1.1 daemon started with NAT enabled Aug 4 23:36:10 localhost no-ip[15683]: ***.no-ip.*** set to 2**.2**.**.** :すばらしい ^^
ん? 8245/tcp は開けたままじゃないとダメなのかな?
2005/08/23 追記
8245/tcp へのアクセスは実行時のipアドレスチェックに必要(straceで確認)
2005-08-03 Wed (他の年の同じ日: 2007)
samba3 インストール・ユーザ設定
2005-08-03-2 / カテゴリ: [linux][debian][samba] / [permlink]
インストールはsargeがtestingだったときと同じ[2004-06-16-2]なので略。って、1年以上昔じゃん^^;
ユーザ設定は、woody の頃(1.x)は /etc/samba/smbpasswd だったのが、/var/lib/samba/passdb.tdb に変更されている。
でもって、aptitude install での debconf で "create samba password database" に yes で答えると、(多分)/etc/passwd 全員分のデータが入るので、困る場合はいったん削除(リネーム)して、新たにユーザ登録したほうが良いかも
そーすれば、/var/lib/samba/passdb.tdb が新規に生成される。
samba 自体の設定は /etc/samba/smb.conf で変わらず。
ユーザ設定は、woody の頃(1.x)は /etc/samba/smbpasswd だったのが、/var/lib/samba/passdb.tdb に変更されている。
でもって、aptitude install での debconf で "create samba password database" に yes で答えると、(多分)/etc/passwd 全員分のデータが入るので、困る場合はいったん削除(リネーム)して、新たにユーザ登録したほうが良いかも
# smbpasswd -a zaki(ユーザ zaki を登録する場合)
そーすれば、/var/lib/samba/passdb.tdb が新規に生成される。
samba 自体の設定は /etc/samba/smb.conf で変わらず。
xfce4 インストール
2005-08-03-1 / カテゴリ: [linux][debian][X] / [permlink]
新サーバは、軽いとうわさの xfce4 を入れてみることにする。まぁ、wmaker にちょっと飽きたというのもある…^^;
libpango1.0-common についての debconf
x-ttcidfont-conf についての debconf
…なんか足りない気がする。
xserver-xfree86 の debconf
で、インストール。
Auto 選択したハードウェア設定は、ちゃんと Identifier: "Matrox Graphics, Inc. MGA G400 AGP", Driver: "mga" で認識されてた :D
で、
あぁ、
で、startx で、X/xfce4 は起動。
んで、xterm しか入ってないので、
と、、コンソールで他バイト文字が化けるから LANG=C でやってて気づかなかったが、デフォルトで日本語化されてるっぽい? LANG=ja_JP.EUC-JP で startx すると、ボタン類が豆腐状態に^^;
フォント関連のインストールは、東風じゃなくてさざなみを使うのが今風なのかな…? って、パッケージ一覧には東風もあるなぁ。まぁ、さざなみ使ってみるか。
あとは、設定の[ユーザ・インターフェイス設定]で、フォントを好きなのに替えた。
# aptitude install xfce4
libpango1.0-common についての debconf
Do you want to entrust font management to defoma? (*Yes / No)Yes で
x-ttcidfont-conf についての debconf
Backend to use for TrueType handling on X: (*freetype / xtt)xtt で
…なんか足りない気がする。
# aptitude install xserver-xfree86
xserver-xfree86 の debconf
Attempt to autodetect video hardware? (Yes / *No)Yes がラクそーだけど…
Please select the XKB rule set to use.: xfree86 Please select your keyboard variant.: NULL Please select your keyboard options.: ctrl:nocaps ... と思ったけど、HHKB Lite2 だからNULL :p Please choose your mouse port.: /dev/psaux (defaultは/dev/input/miceだったけど、、、どうなんだろ) Please choose the entry that best describes your mouse.: ImPS/2 Is your monitor an LCD device?: No (週末買っておけばよかった…) Please choose a method for selecting your monitor characteristics.: Medium Please select your monitor's best video mode.: 1024x768 @ 60Hz Select the video modes you would like the X server to use.: 1024x768 Please select you desired default color depth in bits.: 24
で、インストール。
Auto 選択したハードウェア設定は、ちゃんと Identifier: "Matrox Graphics, Inc. MGA G400 AGP", Driver: "mga" で認識されてた :D
で、
$ startxだめです。
Fatal server error: could not open default font 'fixed'; the X servers font paths might be misconfigured, remote font server(s) may be unreachable, and/or local fonts may not be installed or are not configured correctly.
あぁ、
# aptitude install xfonts-base xfonts-100dpi xfonts-75dpi
で、startx で、X/xfce4 は起動。
んで、xterm しか入ってないので、
# aptitude install rxvt-ml
と、、コンソールで他バイト文字が化けるから LANG=C でやってて気づかなかったが、デフォルトで日本語化されてるっぽい? LANG=ja_JP.EUC-JP で startx すると、ボタン類が豆腐状態に^^;
フォント関連のインストールは、東風じゃなくてさざなみを使うのが今風なのかな…? って、パッケージ一覧には東風もあるなぁ。まぁ、さざなみ使ってみるか。
# aptitude install ttf-sazanami-gothic ttf-sazanami-mincho xfont s-a12k12 xfonts-intl-japanese xfonts-marumoji日本語表示OK!
あとは、設定の[ユーザ・インターフェイス設定]で、フォントを好きなのに替えた。
2005-08-01 Mon (他の年の同じ日: 2004 2006)
cookie の expires のフォーマットに変換するスクリプト
2005-08-01-4 / カテゴリ: [programming][perl] / [permlink]
#!/usr/bin/perl use POSIX; my $fmt = shift; if ($fmt =~ m#(\d{4})/(\d{2})/(\d{2})-(\d{2}):(\d{2}):(\d{2})#) { print strftime "%a, %d-%b-%Y %H:%M:%S\n", $6, $5, $4, $3, $2 - 1, $1 - 1900; } elsif (not defined $fmt) { print strftime "%a, %d-%b-%Y %H:%M:%S\n", localtime; } else { print "Invalid format\n"; print "$0 YYYY/mm/dd-HH:MM:ss\n"; }実行
$ cookiefmt 2005/08/10-16:17:11 Wed, 10-Aug-2005 16:17:11だからナニ? って感じだけど^^;
metaタグでcookieのセット
2005-08-01-3 / カテゴリ: [html] / [permlink]
<meta http-equiv="Set-Cookie" content="key=value; expires=Mon, 8-Aug-2005 23:59:59 GMT; path=/">静的な値しかセットできないけど…(∵;
バックアップすべきデータ(おうちサーバ)メモ
2005-08-01-2 / カテゴリ: [linux][debian] / [permlink]
/etc 以下丸ごとあ、項目は意外と少ないな(違
~ 以下
~root 以下
/usr/local 以下(あれば)
/var/spool/cron/cron/crontab
あと、メールサーバとかやってれば、/var/mail とか /var/spool/ml とか、かな。
私的サーバは、メール関連はさくらに移管したので、全消しで問題ないけど^^;
とくに etc の下は、各サーバソフトウェアの設定ファイルは最悪再構築できるけど、sshd のサーバ鍵や SSL 関連は再生不可なので、絶対にバックアップしておくべし。
~ 以下は特に
.ssh/ 以下という感じ
Maildir 以下
.fetchmailrc .procmailrc .forward (メール関連)
.wl .folders .elmo/ (wl 関連)
.emacs .emacs.d/ (emacs 関連)
.plum/ .liece/ (irc 関連)
.screenrc .bashrc .zshrc .cshrc (シェル関連)
public_html/
bin/
local/
bcc でWindowsプログラミングのコンパイル
2005-08-01-1 / カテゴリ: [win][programming][c] / [permlink]
hmiyazaki@chaource:~/work/prog/win/practice$ bcc base.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland base.c: 警告 W8057 base.c 31: パラメータ 'hPrevInst' は一度も使用されない(関数 WinMain ) 警告 W8057 base.c 31: パラメータ 'lpsCmdLine' は一度も使用されない(関数 WinMain ) Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照)
これは -W オプションを付けてコンパイルする。
hmiyazaki@chaource:~/work/prog/win/practice$ bcc -W base.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland base.c: 警告 W8057 base.c 31: パラメータ 'hPrevInst' は一度も使用されない(関数 WinMain ) 警告 W8057 base.c 31: パラメータ 'lpsCmdLine' は一度も使用されない(関数 WinMain ) Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
VisualStudio買おうかな。いや、でも、うーん…
Referrer (Inside):
[2007-03-14-1]
前の月 / 次の月 / 最新
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