|
>>4578 EBA echo "Apr 10 09:30:00 ===" | sort -M - logfile | cat -n | grep "===" | awk '{print $1}' と実行してみたのですが、行番号が2となります。 # cat logfile <pre> Apr 9 12:23:01 ・・・・・・・ Apr 9 15:17:43 ・・・・・・・ Apr 9 17:48:06 ・・・・・・・ Apr 9 18:05:30 ・・・・・・・ Apr 9 18:06:24 ・・・・・・・ Apr 10 09:23:08 ・・・・・・・ Apr 10 11:47:23 ・・・・・・・ Apr 10 13:35:49 ・・・・・・・ Apr 11 09:54:11 ・・・・・・・ Apr 11 12:17:38 ・・・・・・・ </pre> 行番号ではなく、すべてを表示したのですが、 sortが正しく行われていないみたいなのですが、 どうしてなのでしょうか。 <pre> # echo "Apr 10 09:30:00 ===" | sort -M - logfile | cat -n 1 Apr 9 12:23:01 ・・・・・・・ 2 Apr 10 09:30:00 === 3 Apr 9 15:17:43 ・・・・・・・ 4 Apr 9 17:48:06 ・・・・・・・ 5 Apr 9 18:05:30 ・・・・・・・ 6 Apr 9 18:06:24 ・・・・・・・ 7 Apr 10 09:23:08 ・・・・・・・ 8 Apr 10 11:47:23 ・・・・・・・ 9 Apr 10 13:35:49 ・・・・・・・ 10 Apr 11 09:54:11 ・・・・・・・ 11 Apr 11 12:17:38 ・・・・・・・ </pre> 行番号以降をtailで出力は、 # tail +行番号 logfile でできました。 |
|
>>4570 べた Linux ではうまくいきましたが、Solaris 環境がないので確認できません。 どなたかご確認いただけませんか? あと、このやり方は新年 00:00:00〜00:05:00 の間はうまく動作しませんので、 おすすめしません。念のため。 |
|
>>4571 68user ありがとうございます。 >あと、このやり方は新年 00:00:00〜00:05:00 の間はうまく動作しませんので、 >おすすめしません。念のため。 確認して頂いたのですか。 良い方法だと思ってはいたのですが、ダメですか。 他に、良い方法があるのでしたら伺いたいのですが。 |
|
おひさしぶりです。自分が困ったときだけ出てきてすみません。 Windows のマシンと UNIX のマシンが存在する LAN で、 お互いにメールを送りあうというテストをやっています。 ここでは簡単のため、Windows マシン1台と UNIX マシン1台とします。 W に pmail というフリーウェアの SMTP / POP サーバーを入れた人がいて、 W と U の両方に Mozilla Thunderbird を入れて、 Thunderbird のアカウント設定で、 W の IP アドレスを SMTP / POP アドレス欄に指定することで、 W と U の間でメールのやり取りをすることができました。 しかし、テストの要件のひとつに、 U 側では MUA として /bin/mail も使えるようにする、というものがありました。 sendmail の設定を変えようとしようと思ったのですが、 それは大変だからやめたほうがいいと上司に言われ、 言われるままに U に Postfix を入れました。 ちなみに U の OS は HP-UX 11i ver.2 です。 Postfix のインストールはなんとなく終わりました。 /etc/postfix/main.cf に myhostaname = U.unix.net と変更を加えました。 DNS を立てるのはなかなか面倒だと上司に言われたので、言われるままに U の /etc/hosts および W の C:\Winnt\system32\drivers\etc\hosts に 172.16.10.2 U.unix.net 172.16.10.3 W.windows.net のように書きました。 で、U 側で # mail root nantoka kantoka . のように書くと、 で自分宛に出したメールが確認できましたが、 # mail dareka@W.windows.net nandakakandaka . のようにすると、 Diagnostic-Code: X-Postfix; Host or domain name not found. Name Service error for name=W.windows.net type=A: Host not found のように怒られます。 (ここで、dareka は W の pmail に設定したメールアカウントです。) U から # nslookup > W.windows.net とすると 172.16.10.3 が、 > 172.16.10.3 とすると W.windows.net が正しく帰るのですが、 host W.windows.net とすると not found 3(NXDOMAIN) と言われます。 このへんが原因でしょうか。 この状況で、U から W に /bin/mail でメールを出すことができるでしょうか。 また、W の Thunderbird から出したメールを U の /bin/mail で受けるためには、qpopper のようなプログラムを U に入れないといけないのでしょうか。 他に、いまの私の状況でもっと簡単にテストするアイディアがわかれば ご教示ください。 いろいろ聞いてすみません。よろしくお願いします。 |
|
>>4572 べた > 他に、良い方法があるのでしたら伺いたいのですが。 まず、syslog の出力には年がないという根本的欠陥があります。なので、 ログファイルを後からチェックするだけでは、完璧な判定はできません。 たとえば Apr 9 12:23:00 ... (2005年出力) Apr 9 12:23:01 ... (2006年出力) とか Apr 9 12:23:01 ... (2005年出力) Apr 9 12:23:00 ... (2006年出力) というケースもありうるわけです。また、現在 1月1日 0時2分だとして、 1分前に出力されたログ Jan 1 00:01:00 ... と、5分前の時刻 Dec 31 12:57:00 ... をソートすると Jan 1 の方が先になり、意図した結果になりません。 それを踏まえた上で、 - 1年前のログが残っていることはないとみなす - 年初 5分は目をつぶる が許容できるかどうかはあなたが判断してください。なお、Jan や Feb の ソートについては、sed で 01 や 02 に置換すれば何とでもできるでしょう。 理想は年が記録されるログに乗り換えることですが (=syslog を捨てる)、 それが許されるシチュエーションはあまりないと思いますので、 >>4567 まんたろう は現実的な落としどころと考えます。 >>4573 ふくし > Diagnostic-Code: X-Postfix; Host or domain name not found. Name Service > error for name=W.windows.net type=A: Host not found Postfix はよく知りませんが、 http://www.kobitosan.net/postfix/ML/arc.4/msg00048.html でしょうか。あと、うまくいくかどうかわかりませんが、 # mail 'dareka@[172.16.10.3]' と IP アドレスを直接指定するとか。@[..] は IP アドレス指定の場合の メールアドレス記述方法だったような気がしますが、使ったことはありません。 # http://x68000.q-e-d.net/~68user/rfc/?key=821&target=title > # nslookup nslookup は、/etc/hosts を参照しません。 と思ったら、HP-UX の nslookup は参照するんですね。へぇ。 http://docs.hp.com/ja/B2355-90851/nslookup.1.html > また、W の Thunderbird から出したメールを > U の /bin/mail で受けるためには、qpopper のようなプログラムを > U に入れないといけないのでしょうか。 mail コマンドには POP クライアントの機能はないと思いますので、 W で POP サーバを動かすという前提であれば、 - W にメールが届くと U に転送し、mail コマンドは /var/spool/mail などを 直接参照する。 - U で fetchmail などの POP クライアントを動かし、/var/spool/mail などに 書き出す。 - W・U 両方で POP サーバを動かし、W 宛のメールは W の POP サーバから 取得し、U 宛のメールは U の POP サーバから取得する。 などの方法があります (他にもあると思いますが)。 言うまでもありませんが、要件自体が不適切である可能性もあります。 |
|
>>4574 さん、ありがとうございます。 # mail 'dareka@[172.16.10.3]' を指定すると、 Diagnostic-Code; X-Postfix; host 172.16.10.3[172.16.10.3] said: 550 5.1.1 <dareka@[172.16.10.3]>... Not local user, server is not relaid. Recipient error (in reply to RCPT TO command) と言われます。 試みに dareka というコンピューターユーザーを W に作ってみましたが 現象は変わりませんでした ;;; 教えていただいたリンクをたどって http://www.kobitosan.net/postfix/jhtml/faq.html#intranet に到達していくつかのことをやってみました。 ・/etc/postfix/main.cf で disable_dns_lookups = yes と書けば /etc/hosts を見に行って W.windows.net の名前解決をしてくれる? =>ダメでした(dareka@W.windows.net で host not found になる) ・さらに /etc/postfix/main.cf で relayhost = W.windows.net と書く =>同じ状況です。 (# mail dareka@W.windows.net で host not found、 # mail 'dareka[@172.10.16.3]' で not a local user) ・/etc/postfix/main.cf で relayhost = W.windows.net と書く =>同じ状況です。 (# mail dareka@W.windows.net で host not found、 # mail 'dareka[@172.10.16.3]' で not a local user) これ、W.windows.net の smtp サーバーである pmail が POP before SMTP auth をやっているのが原因かも・・・。 (フリー版の制約で切れない) ・relayhost の設定をやめ、 transport_maps = dbm:/etc/postfix/transport と設定する。 /etc/postfix/transport の中身を windows.net :[W.windows.net] .windows.net :[W.windows.net] にし、postmap /etc/postfix/transport をしてから、 postfix reload する。 (/etc/postfix/transport の前に hash、db、dbm などの何をつけるかは postmap が生成するデータベースによる。 間違うと postfix reload で怒られる) =>同じ状況です。 ・/etc/postfix/transport の中身を windows.net :[172.16.10.3] .windows.net :[172.16.10.3] とか windows.net smtp:[W.windows.net] .windows.net smtp:[W.windows.net] とか windows.net smtp:[172.16.10.3] .windows.net smtp:[172.16.10.3] とかにしてみる。 =>同じ状況です。。。 ううーん、困った。 でも人に聞きながらやってると整理がついていいですね (^^) |
|
>>4547 ありがとうございます。 どうも、無理みたいですね。 1年。つまり、同じ年ということであるのならば、何とかできるの でしょうが、年をまたいでしまうと無理ですね。 >Jan や Feb のソートについては、sed で 01 や 02 に置換すれば >何とでもできるでしょう。 すみません。方法教えてください。 > >>4567 まんたろう > は現実的な落としどころと考えます。 現実な落としどころとは。? |
|
BCCでwindowsプログラムをコンパイルしようとすると 「外部シンボル '_main' が未解決」というのが出てしまいます。 「-WオプションをつけてコンパイルすればWindowsアプリができます」と本に 書いてあるのですが、どうすればいいのかわかりません |