More from: linux

メモ:aliasのチェック

sendmailでaliasを使用している場合の設定のチェック方法のメモ。
#sendmail -bv alias名
これを実行すると指定したalias名がどのように展開されるかが分かる(-bvはベリファイモードの指定)。
aliasesファイル内に記述してあっても、上記コマンドで出て来ない場合は
#newaliases
でエイリアスデータベースを作り直してみる。

←クリックしてくれると嬉しいです。

普通に使えるな

DELLのINSPIRON 6000にubuntu10.4がインストールされているHDDを取り付けてみたが、チップセット等が違うPCにてインストールしたOSにもかかわらず問題なく起動してしまった。
ディスプレイの解像度も違うのだがXが自動でディスプレイサイズを検出して最大の解像度で設定された。
内蔵されている無線LANのインターフェースもドライバが自動でインストールされ、設定をするだけでアクセスポイントに接続することが出来た。
以前はLinuxで無線LANを使うには少々面倒な事が必要だったが、今は非常に簡単になっている感じがする。
今もubuntu上でFirefoxを使ってアクセスして書いているが、なんか普通に使えている。
今のところ唯一の不満点はキーボードが英語版なのに、システムの設定が日本語キーボードのままなので、一部のキー配置が異なっていて少々使いにくいということくらいか。
これも設定次第で変更可能なので大した問題ではないな。
ちょっとびっくりしたのは、このINSPIRON 6000のスライドパッドにはスクロール機能があるのだが、デフォルトで有効になっていること。
スライドパッドの右側を上下になぞることで画面が上下にスクロールされる(マウスのホイールを回すのと同じ)。
この機能については諦めていたのだが、試しに触ってみるときちんと動作したのには少々驚いた。
他のWindows機の共有フォルダも見えるし、使用目的がWEBアクセス程度であればWindowsはいらないかも。

←クリックしてくれると嬉しいです。

-Fもしくは–flushオプションだったのね

一個前の記事「fetchmailで取得済みのメールを削除するには?」に書いたことは、-Fもしくは–flushオプションを付けてfetchmailを起動することで実現出来た。
man fetchmailでオプションを調べたときにこのオプションにも気付いてはいたんだけど、-kもしくは–nokeepと同じだと思っていた。
Manpageをよく読むと
-k or –nokeep
「取得したメッセージをリモートのメールサーバから削除します。」
-F or –flush
「新しいメッセージを取得する前に、古い (以前に取得した) メッセージをメールサーバから削除します。」
となっており、この二つの意味は違うことに気付いた(良く嫁!<自分)
試しに
fetchmail -Fv
を実行したところ、数千通ものメールがサーバから削除されていく様子を見ることが出来、終了後にホームディレクトリにあった「.fetchids」ファイルも消えていた。
うーん、最初にManpageを見たときに気付いていれば悩まずに済んだのになぁ(汗)。

#「.fetchids」ファイルは取得済みでサーバに残してあるメールのエントリを記録しているファイル。

←クリックしてくれると嬉しいです。

fetchmailで取得済みのメールを削除するには?

いやまぁタイトルの件が判らなくてサーバと格闘中。
受信するクライアントPCが複数台ある関係で”keep”オプションを.fetchmailrcに書いてあるユーザーがいるが、サーバ内に数千通溜まってしまって、受信にえらく時間が掛かってしまうので消してくれといわれて消そうとしてる。
単純に
fetchmail -avK (Kはnokeepと同じ)
とすると、過去に受信したメールを再取得してしまい、数千通を再受信するので少々困る。
いつもはnPopというソフトで古いメールを消しているが、今日に限ってエラーを起こしてしまい作業が出来ない。
うーん、fetchmailで取得済みのメールをサーバから削除する手段があると思うんだけどなぁ、、、、、、

解決策はこちら「-Fもしくは–flushオプションだったのね」

←クリックしてくれると嬉しいです。

MXレコードの設定が終わったようだ

昨日書いたMXレコードを設定していないDNSサーバは昨日の内に設定が完了したようで、nslookup -type=mx hogehoge.comで見ても、host -t mx hogehoge.comで見てもMXレコードが見えるようになった。
これでメールの送信元に昨日のようなエラーが返ることもなくなるだろう。

それにしてもDNSサーバの設定をしたのは経験1年のほぼ新人なんだけど、私の「MXレコードが設定されていない」の一言で理解したようなのには少々驚いた。
けっこう出来の良い新人らしい・・・・・・・

←クリックしてくれると嬉しいです。

特定の相手先からのメールが届かない?

職場の人からタイトルのような問い合わせがあった。
なんでもこちらからメールは届くのだが、それに対する返信がこちらへ届かないとのこと。
他の人からのメールは届くとの事なので、メーラーの設定誤りでは無い。
先方からエラーメールをFAXで送って貰ったのでそれを見ると、
”No delivery mechanism available”
となっている。
これは大抵は送信元のメールサーバが送信先のメールサーバのIPアドレスを引けない場合に発生し、DNSのMXレコードの設定が正しくない場合に発生する。
試しに適当なサーバで「host -a hogehoge.com」としてDNSの設定情報を見ると、案の定MXレコードが設定されていなかった(爆)。
ドメイン名のみでアドレス参照をするとIPアドレスを引くことは出来るので、大抵のメールサーバはそれを利用しているらしいが、件のメールサーバはRFCの既定通りの動作をしているようだ(だからIPアドレスを引け無い)。

問題はDNSの設定をしたのが私では無いので、設定を直すことが出来ないということだ。
設定した人間は上に書いたようなことを理解してくれるのだろうか???

←クリックしてくれると嬉しいです。

LANカードがやられるとは”想定外”だった

今日の朝早くにビルの電気工事(点検?)が入るとかで、昨日の内に連絡が入った。
そのビルにはPCをベースにしたサーバを2台置いてあり、停電に備えてUPSを設置してあるが悪いことにバッテリーが寿命で交換用バッテリーを注文したばかり。
しかも停電予想時間が30分ほどなのでUPSに頼るわけにはいかない。
なので、昨夜の営業終了後にサーバー2台の電源を切りに行き、翌朝出勤してきた人に電源を入れるように頼んできた。
さらに2台の内1台は以前電源を再投入したときに素直に起動しなかったことがあるので、念のため電源を入れたら連絡して貰う様に頼んできた。
今朝になって電源を入れたとの連絡があったので、そのサーバに向かってpingを打ち始めたが20分以上経過してもpingが返ってこないので、これは起動途中でハマっているなと思い現地に行った。
現地に付いてコンソールを見ると恐れていたHDDのエラーは出ていなかったが、その代わりLANインターフェースが応答してこないとのエラーが出ていた。
つまりpingに対する応答が無かったのはLANカードが正しく動作していなかったためだったのだが、何故正しく動作していないのかは不明。
とにかくネットワークに繋がらないとサーバの存在する意味が無いので、代わりに同じ型番のLANカードを複数用意して再度現地に行き交換してみた。
用意したのが手持ちの中古品だったせいか最初に交換した1枚はドライバすらロードされず使えない状態。
少々焦ったが用意した別のカードに再度交換したところ無事にドライバがロードされネットワークにも接続できた。
今回トラブったサーバは全体的に古いもので、今でも動作していること自体が不思議なくらい。
#CPUがPentiumIIIの550MHzというくらい古いが、電源ユニット以外は無交換。
それでも稼働中は特に問題を起こさないのでそのまま使っていたが、まさか電源の再投入でLANカードが死ぬとは思っていなかった。
幸い同じLANカードが何枚か手元にあったので復旧させることが出来たが、今後はなんらかの対策を講じないとならないなぁ。

←クリックしてくれると嬉しいです。

未だに4800bpsなのか・・・・・・

PC用のGPSレシーバ(I-O DATA 高感度USB接続GPSレシーバー「NAVI CLIP」 UMGPS/MF
)の仕様を見ていると、PCへのデータ転送速度が4800bpsとなっている。
この製品はUSB接続の製品なのだが、昔のRS-232C接続の製品もこの速度だったので、未だに変わっていないようだ。
10年ほど前にDebian GNU LinuxをベースにGPSレシーバとFOMA端末を接続した小型システムを開発したことがあるが、その際GPSレシーバとの通信速度が4800bpsというのがネックになった。
というのは当時でもLinuxのシリアルドライバで設定できるRS-232Cの通信速度は9600bpsが最低で、それ以下の速度に設定することが出来なかったため。
ハードウェアとしては16550A互換のUARTなので、150bpsといった低速の通信速度にも対応しているが、Linuxのシリアルドライバがそれに対応していないために、そのままでは4800bpsでの通信が出来ない。
16550Aの通信速度は2バイトのレジスタの内容で決定されるが、Linuxのドライバはその内の1バイトしか書き換えないらしい(9600bps以上ならそれでも設定可能)ので、プログラムで該当のレジスタ(分周レジスタ)を直接書き換えるようにして4800bpsでの通信を可能にしてGPSレシーバから座標データを読み込めるようにした。
この時はC言語でプログラムを書いていたが、レジスタを直接書き換えるのには「outb」関数を使った覚えがある。
#outb(0x80,レジスタのアドレス)ってな感じで。
つか、こんなプログラムを書かないと使えないデバイスってどうよ?と思ったのは内緒(笑)。

似たようなことを一昨年にも書いていた(汗)
「Windows用ddコマンド」

←クリックしてくれると嬉しいです。

ネットワークの分離

職場のネットワークを分離するのに安いブロードバンドルーターを買ってきて試したが、あっさりと分離できてしまった。
単にルーターの設定で「アドレス変換をしない」「WAN接続はIPアドレスを手動で設定」の2点を設定しただけ。
あとは元のネットワーク上に存在するサーバ類にstatic routeを設定すれば今までどおりにサーバーへのアクセスも可能だし、プリンタへの印刷も問題なく行えた。
サーバーへのstatic route設定は最初に手動で行い、再起動後も設定がされるように設定ファイルにも書いておいた。
linuxでのroute設定は、
/sbin/route add -net 192.168.xxx.0/24(追加したネットワークアドレス) gw 192.168.yyy.zzz(ルーターのIPアドレス)
設定ファイルは
/etc/sysconfig/static-routes
なので、そのファイルに
any net 192.168.xxx.0 netmask 255.255.255.0 gw 192.168.yyy.zzz
の記述を追加すると、起動時に自動でルーティング情報が設定される。
もしもこのファイルが無ければ新しく作ればOK!

ちなみに今回使ったルーターはこれ。
BUFFALO BBR-4MG 有線BroadBandルータ BroadStation エントリーモデル
B0000DJLOE
2千円ちょっとで買えるけど、複雑なルーティングとかをせずに、単にネットワークを分離するくらいならばそこそこ使えると思う。

←クリックしてくれると嬉しいです。

printcapの書き順で変わるのかな?

職場のプリンタを一台ネットワークプリンタに替えた。
今までLinuxサーバのパラレルポートに直結していたプリンタが不調になり、買い換えたプリンタがUSBとLANのポートしか持っていないので、仕方なくネットワークで接続することになった。
で、Linuxサーバ側のprintcapをリモートプリンタ対応に修正(問題なく印刷されているもう一台のプリンタ用の設定をコピーしてきて、リモートホスト名とスプールディレクトリ名を書き換えた)してlpdサービスを再起動したが、印刷がされない(あれ?)。

今まで他所ではこれで良かった筈なんだけど、今回は何故か素直に印刷されない。
lpc status lp
を実行してみるとスプールには溜まっていて、リモートホスト(この場合はプリンタのネットワークインターフェース)にデータを送信しているとなっているが、プリンタ側のjobランプは消灯したままなので、データは送られていない。
lpd restart lp
を実行すると印刷されたので、どうやらプリンタには異常は無さそうだ。
ここで再度印刷をしてみたが、やはりサーバのスプールに溜まるだけで一向にプリンタにデータが送られない。
しかも今回は
lpd restart lp
としても印刷されず、
/etc/rc.d/init.d/lpd restart
を実行してlpdサービスを再起動し、その後に
lpd restart lp
を実行してようやく印刷された。
うーん、何故?

結局のところ他所のサーバのprintcapの中身を参考にして行の順番を一部入れ替え、
/etc/rc.d/init.d/lpd restart
を実行したところ無事に印刷が出た。
数度印刷を繰り返しても素直に印刷されるので、原因はprintcapの記述にあったようだ。
必要な事項は全て記述しておいたのだが、行の並びも大事だったようだ。
でも、もう一台のプリンタは問題なく印刷されるんだよなぁ、、、、、、何故?

←クリックしてくれると嬉しいです。