Gmailが嘘をつく。

仕事で、とあるメール配信システムのお守りをしている訳だが、メルマガの読者から
「メールが届かなくなりました」
という問い合わせが...。
配信のログを見ていると、しっかり以下の様なログがある。

>550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596 xxxxxxxxxxxxxxxxxxxxx

いわゆるUser Unknownだ。
でも、そのメールアドレスの人から「メールが届かなくなりました」という問い合わせがある...。
これってなんなんだろうねぇ。

一回だけならまだしも、すでに複数回有るんだよね。

| | コメント (0) | トラックバック (0)

perlからsshしてコマンドを実行する

サーバー上にあるデータが必要という事で、特定の処理を依頼されることが多い。
そんなに煩雑では無いので、手作業で対応していたのだが、実際はなんとかしたかった。
依頼者にshellアカウントを渡しても使いこなせないのは明らかなので、perlのcgiを用意することにした。

必要なのは、perlからssh loginする機能、まぁそんな物を自作するほど暇では無いので、当然モジュールを探すと
Net::SSH::Perl というモジュールがある事をGoogleセンセが教えてくれた。

早速 cpan でインストール...と思ったら、なんかエラーが出てインストールできないっぽい。
という事で調べてみたのだが、他所のブログでも同様な記載が見受けられる...。
ということで、試行錯誤してみた結果、cpanだけでなんとかなりました。

cpan> install Math::BigInt

cpan> install Net::SSH::Perl

ここで、エラーが出てインストールできない、さらに、以下をインストールする

cpan> install Crypt::RSA

取り敢えず、この状態で、sshできた。
ただし、perlのcgiの中で、sshを使うと、 /.ssh を作ろうとして失敗してエラーになっちゃう。
$HOMEが設定されないのがいけないのかも。
ちょっとNet::SSHのマニュアルよまんといかんね。

| | コメント (0) | トラックバック (0)

Windowsのシステム予約名なファイルを作られると削除できないファイルになる。

お守りしているファイルサーバーで、素敵なファイル名をつけて保存してくれた方がいらっしゃる。

CON.TXT

CONって...CON...って。
DOSを使っていた経験のある人なら使っちゃいけないファイル名だよなぁってうっすらわかるんだろうけど、最近はそんな老いぼれジジイ的な愚痴をこぼすと、すぐ煙たがられるので面倒である。
しかし、実際問題消せないファイルが残っているというのは、フォルダを整理したりするという状況においても非常に邪魔なのだ。
他にも使っちゃいけないファイル名ってのは、色々ある。
COM1, COM2, COM3...
CON
PRN
LPT1, LPT2, LPT3...
NUL
これらは DOS の頃からコマンドラインを使ってきている人なら、見覚えある名前だと思う。
これ以外にも、ファイル名末尾に'.'(ピリオド)や、' '(空白)がついてしまっているものもExplorerでは削除することが出来ない。

こういった時はこんなファイル名の指定の仕方で削除する。

C:\> DEL \\?\X:\FOO\BAR\HOGE\CON.TXT

※ここで得られた情報で、管理者にいぢわるをしないようにw

参照:http://support.microsoft.com/default.aspx?scid=kb;ja;320081

| | コメント (0) | トラックバック (0)

カナキーロック状態の切り替え

カナキーがONの状態で苦労した。
とどめにググっても、IMEに関する記載ばかりで見つけにくかったりしたので、ここにメモ。
使わないんだからこの機能だけOffに出来ねーかなぁ...。

■主なキーボード上のカナキー一覧

キーボードカナキー
101CTRL + Shift + CapsLock
106CTRL + 英数
106CTRL + Shift + カタカナ.ひらがなキー
IBMCTRL + 漢字+カタカナ
IBMCTRL + カタカナ
AXCTRL + Shift+英数カナ
NECかな

| | コメント (0) | トラックバック (0)

MySQL、Perl-DBI、Perl-DBDのインストールをしてはまった事

仕事で必要なサーバーにMySQL 4.0.24, Perl-DBI 1.48(DDBI-1.48.tar.gz), Perl-DBD-MySQL 2.00(DBD-mysql-2.9004.tar.gz)をインストールしたのだが、MySQL, DBIはすんなりインストールできたものの、DBD::mysqlがmake testでエラーが出てうまくいかない。
最初CPANで試してだめだったので、gzipモジュールをダウンロードして自分で展開し、perl Makefile.PL;make;make test とすると、どうしてもテストに失敗する。
こんな↓感じ。

[root@hostname DBD-mysql-2.9004]# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00base...........ok
t/10dsnlist........ok
t/20createdrop.....ok
t/30insertfetch....ok
t/40bindparam......ok
t/40blobs..........ok
t/40listfields.....ok
t/40nulls..........ok
t/40numrows........ok
t/50chopblanks.....ok
t/50commit.........ok
t/60leaks..........skipped
all skipped: $ENV{SLOW_TESTS} is not set or Proc::ProcessTable not installed
t/ak-dbd...........ok
t/akmisc...........FAILED test 34
Failed 1/351 tests, 99.72% okay
t/dbdadmin.........ok
t/insertid.........ok
t/mysql............FAILED test 15
Failed 1/68 tests, 98.53% okay
t/mysql2...........ok
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/akmisc.t 351 1 0.28% 34
t/mysql.t 68 1 1.47% 15
1 test skipped.
Failed 2/18 test scripts, 88.89% okay. 2/767 subtests failed, 99.74% okay.
make: *** [test_dynamic] エラー 29
[root@hostname DBD-mysql-2.9004]#

で、CPANでだめで、tar ballでもだめ。 googleに聞いてもそれらしいことは載ってない。
似たようなキーワードで引っかかるのはMySQLのアカウントのパスワードとかTESTDBの書き込み権限のことばかり。
仕方がないので、テストスクリプトを読んでみることにした。
とりあえず、akmisc のエラーより、mysqlのテストに失敗しているほうが重要度高そうだ...ということで、t/mysql.t の15番目のテストの部分を読んでみる。
と、なんかシンプルなQueryをMySQLに投げて、"error"という文字が結果として返ってきているかどうかでテストの成否が決まるらしい。
こんなシンプルなテストでエラーになるなんて...と逆に考え込んでしまったのだが、ふと気づいた。

my.cnf の language を japanese にしてるのは影響しないのか?

ということで、my.cnfの該当行をコメントアウトして MySQLを再起動。 その後tar ballの make test を実行すると...。
何事もなくinstallできました...orz

教訓:システムの設定が終わらないうちに各アプリケーションの細かな設定は後回しにすべし。

| | コメント (0) | トラックバック (0)

DNSの更新

社内向けDNSの更新のメモ
例として、bar.foo.co.jp の IP が 192.168.16.248 と引けるようにする
まずはDNSサーバーにログインし、DNSの設定ファイルがあるフォルダへ移動する。

$su
$cd /etc/local/bind8
この例の場合、正引きファイルは[foo.co.jp.zone]、逆引きファイルは[192.168.16.rev] なので、それらをそれぞれ適切に修正する
$vi 192.168.16.rev
$vi foo.co.jp.zone
#修正後はそれぞれのファイルシリアルの更新を忘れぬように
編集終了後、以下のコマンドでDNSサーバー再起動
$./named.reload
当然今回修正・変更したエントリが問題なく引けるかどうかを確認する。
$dig -x 192.168.16.248
$dig bar.foo.co.jp
無事名前解決ができていることを確認できれば作業終了
#念のため、WindowsのコマンドプロンプトからもDNSを引いてみる

| | コメント (0) | トラックバック (0)

メールボックスが壊れた様な場合

formmailを使って直せるみたい。

# cd /var/spool/mail
# formail -b < mbox > /tmp/mbox_tmp
# cp -p mbox /tmp/mbox.bakcp
# cp /tmp/mbox_tmp mbox

あと、muttが入ってるときは mutt -f mbox して強引に読み込んで、書き戻すのもアリ。

※この記事読んで試す方は、ご自分の責任でお願いします。

| | コメント (0) | トラックバック (0)

dhcpdの再起動

dhcpサーバーにログイン

#rootになって...
$su

#dhcpのleasesファイルをバックアップ取る
$cd /var/state/dhcp
$mv dhcpd.leases dhcpd.leases.backup

#dhcpのleasesファイルを作る
$touch dhcpd.leases

#dhcpdの再起動
$/etc/rc.d/init.d/dhcpd restart

#dhcpdの挙動をしっかり確認する
$tail -f /var/log/dhcpd

| | コメント (0) | トラックバック (0)

圧縮したファイルを展開する

Solarisにnfs経由でEMCをマウントし、とりあえずストレージの心配はなくなったわけだが、ログを閲覧できるように圧縮したファイルたちを展開してやらねばならん。

以前行った処理の逆をするわけだ。

Solarisのtarはgzipにたいおうしてないから、またパイプを使う必要がある...。

$gzip -dc xxx.tar.gz | tar xvf -

これでいいようだ、ためしに一個別のフォルダに持っていって展開してみたら、ディレクトリ構造ごとしっかり展開してくれた。

| | コメント (0) | トラックバック (0)

Solarisでnfsのマウント

メインサーバーのストレージ容量が危うい。
ログを圧縮して逃げてきたが、そろそろ後追い的なメンテナンスでは限界だと痛切に感じる
やはりログは圧縮して参照できない状態にしておくのではなく、いつでも参照できるようにしたいので、EMCにつないでログエリアをnfs上においてみることにした。

rootで以下のファイルを編集。
/etc/vfstab

以下の内容を追加する
xxx.xxx.xxx.xxx:/pj1 - /nfs/pj1 nfs - yes rw,rsize=32768,wsize=32768,intr
xxx.xxx.xxx.xxx:/pj2 - /nfs/pj2 nfs - yes rw,rsize=32768,wsize=32768,intr

でもって、マウントポイントとなるディレクトリを作成
mkdir /nfs/pj1
mkdir /nfs/pj2

んでもってマウントしてみる。
mount /nfs/pj1
mount /nfs/pj2

確認してみる
ls -la /nfs/pj1
ls -la /nfs/pj2

| | コメント (0) | トラックバック (0)

Solarisのtar&gzip

Solarisのtarはgzipのオプションが無い...。

$ tar cvf - foo | gzip -c > foo.tar.gz

とやって標準入力でリダイレクトしてやるんだそうな。
忘れがちなのでaliasでも用意しとくかな...。

| | コメント (0) | トラックバック (0)