68user's page 掲示板

Prev< No. 3031〜3065> Next  [最新発言に戻る] [過去ログ一覧]
No. 3031 # ふくし [E-mail] 2003/01/12 (日) 23:01:07
あけましておめでとうございます。
いつもお世話になりっぱなしですが、今年もよろしくお願いします。
68user さん Perl 5.8 入れてみましたか ;;;

いぜん jperl5.5 でファイルテスト演算子 -T を使っていたんですが、
EUC-JP モードであれば EUC-JP の、
Shift_JIS モードであれば Shift_JIS の漢字を真にしてくれて
便利だったんですが、Perl 5.8 に変えたので
使えなくなってしまいました。
encoding で切り替えられるかと思ったんですがダメでした。
あくまで -T を使いたいとしたらどうすればいいか、
どなたかお分かりであればご教示ください。

No. 3032 # akuro [E-mail] 2003/01/13 (月) 01:19:58
初めましてakuroと申します。

最近、ここを知り色々と勉強させて頂いています。
「HTTP クライアントを作ってみよう(4)」にてお聞きしたい事があるのですが。

HTTP CLIENTを実際に作成して動かしてみたのですが、
「さらなる改善点・URL エンコード」の中で、~(チルタ゛)のついた
場合、変換しなければならないとあるのですが、処理を記述しないで
試しに

http://x68000.startshop.co.jp/~68user/

と入力してみたのですが、問題なく表示されました。
これはどういう事なのでしょうか?

それと、次の項目の「301 Moved Permanently」なのですが、
これも/(スラッシ)無しでも表示されました。
(HEADの場合HTTP/1.1 301 Moved Permanentlyと出ましたが、
BODYもちゃんと表示されました)
これもなぜ表示されるかわかりません。


質問が長くなってしまいましたが、よろしくお願いします。
(HTTP_CLIENTは少し変更して、CGI版にしていますが、処理自体は
変更していません。)

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 3033 # 68user 2003/01/13 (月) 04:02:59
また長ったらしい文章を書いてしまった…。

>>3031 ふくし
> 68user さん Perl 5.8 入れてみましたか ;;;
5.8 どころか最近は 5.004_04 を使ってますよ。退化してます。

> いぜん jperl5.5 でファイルテスト演算子 -T を使っていたんですが、
> EUC-JP モードであれば EUC-JP の、Shift_JIS モードであれば Shift_JIS の
> 漢字を真にしてくれて便利だったんですが、Perl 5.8 に変えたので
perl-5.8.0/pp_sys.c には
          PP(pp_fttext)
          {
                  for (i = 0; i < len; i++, s++) {
                          if (!*s) { /* null never allowed in text */
                                  odd += len; break;
                          }
          #ifdef USE_LOCALE
                                  if (IN_LOCALE_RUNTIME && isALPHA_LC(*s))
                                          continue;
          #endif
                                  /* utf8 characters don't count as odd */
                                  if (UTF8_IS_START(*s)) { ... }
                                  ...
                          }
                          else if (*s < 32 &&
                              *s != '\n' && *s != '\r' && *s != '\b' && *s != '\t' && *s != '\f' && *s != 27)
                                  odd++;
        }
とかなんとか書いてあったりします (UTF8 は OK のような雰囲気ですね)。

USE_LOCALE で IN_LOCALE_RUNTIME ならもしかして! …というわけでさらにおっかけていくと
        % find . -type f | xargs grep isALPHA_LC
        ./handy.h:# define isALPHA_LC(c) NXIsAlpha((unsigned int)(c))
        % find . -type f | xargs grep NXIsAlpha
        ./handy.h: (NXIsAlpha((unsigned int)(c)) || (char)(c) == '_')
        ./handy.h:# define isALPHA_LC(c) NXIsAlpha((unsigned int)(c))
てなわけで NXIsAlpha とやらが定義されていません。isALPHA_LC を
よく見てみると
        #ifdef USE_NEXT_CTYPE
        # define isALPHA_LC(c) NXIsAlpha((unsigned int)(c))
        #else
        # define isALPHA_LC(c) isalpha((unsigned char)(c))
        #endif
てな感じなので、将来は実装するぞ、てなところでしょうか。


>>3032 akuro
> 「さらなる改善点・URL エンコード」の中で、~(チルタ゛)のついた
> 場合、変換しなければならないとあるのですが
URI を定義しているのは RFC1738 です。
      http://www.ietf.org/rfc/rfc1738.txt?number=1738
そこには
      httpurl = "http://" hostport [ "/" hpath [ "?" search ]]
とあります。/~68user/ や /%7E68user/ という部分は hpath に相当します。

      hpath = hsegment *[ "/" hsegment ]
      → hpath は hsegment を / で結合したもの。

      hsegment = *[ uchar | ";" | ":" | "@" | "&" | "=" ]
      → hsegment は uchar か上記記号の 0 個以上の繰返し。

      uchar = unreserved | escape
      → uchar は unreserved か escape。

      unreserved = alpha | digit | safe | extra
      escape = "%" hex hex
      → unreserved は alpha, digit, safe, extra のいずれか。escape は %XX 形式。

      alpha = lowalpha | hialpha
      digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
      safe = "$" | "-" | "_" | "." | "+"
      extra = "!" | "*" | "'" | "(" | ")" | ","
      → alpha, digit, safe, extra は上記の文字 (lowalpha は英小文字、hialpha は英大文字)。

上記のどこにも ~ は含まれていません。よって、hpath には ~ を
含めてはならず、/~68user/ は間違いで /%7E68user/ は正しいのです。



…というのはその文書を書いた当時の話。今 URI を規定しているのは RFC2396 です。
      http://member.nifty.ne.jp/moha/rfc/rfc2396j.txt

/~68user/ に相当するのは abs_path です (*1)。
            abs_path = "/" path_segments
            path_segments = segment *( "/" segment )
            segment = *pchar *( ";" param )
            param = *pchar
            pchar = unreserved | escaped |
                                            ":" | "@" | "&" | "=" | "+" | "$" | ","
            reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
            unreserved = alphanum | mark
            mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"

mark に ~ が含まれているため、URI として ~ を記述することが認められています。

また、上記ページの「G.2. RFC 1738及びRFC 1808からの修正点」には

> チルダ文字"~"を"unreserved"集合に追加した。ある種のキーボードではこの文字の
> 入力に困難を伴うが、インターネットにおいて広く用いられているためである。

とあります。

よって、現在では /~68user/ というリクエストを送っても問題ありません。ただし
/%7E68user/ という表記も間違いではありません。/~68user/ と /%7E68user/ は
等価です。

# …という解釈でいいのかなぁ。自信がないなぁ。

じゃー昔は /%7E68user/ と書かずに /~68user/ とするとエラーになったのか
というと、そんなことはありませんでした。その理由は
        「~ を ~ として解釈しても誰も (web サーバも web クライアントも)
            困らないので (むしろ便利)、web サーバが気をきかせてくれたから」
だと思います。


(*1)
なぜ /~68user/ が abs_path なのかというと、
      RFC2616 (http://www.studyinghttp.net/rfc_ja/2616/sec3.html#sec3.2.1)

      http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]
と定義してあり、さらに
      URL 構文やセマンティクスの定義についての情報については、(RFC 1738 [4] と
      RFC 1808 [11] を置き換えた)
          "Uniform Resource Identifiers (URI): Generic Syntax and Semantics," RFC 2396 参照。
      この規格書では、その規格書にある、"URI-reference", "absoluteURI", "relativeURI",
      "port", "host", "abs_path", "rel_path", "authority" の定義を採用する。
とあるからです。

> それと、次の項目の「301 Moved Permanently」なのですが、
> これも/(スラッシ)無しでも表示されました。
こちらで試してみたところ、

        GET /~68user HTTP/1.0

        HTTP/1.1 301 Moved Permanently
        (略)
        Location: http://jfx.startshop.co.jp/~68user/
        (略)

        <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
        (略)
        </BODY></HTML>

となりました。ここで BODY 部に表示されているのは、
      「あなたが要求したドキュメントはここにあるのでクリックしてね」
という web サーバが生成した文章ですので、正しい挙動だと思います。

No. 3034 # ふくし [E-mail] 2003/01/13 (月) 08:03:06
あっそうそう、utf8 は実装してるんですよ、言い忘れました。
ソースを追ってくれてありがとうございます。
そうやって見るんですね〜

5.004_04 って for (0..100000) でメモリはじけませんか。
ぼくは例の BigInt の件もあるし、encoding の件もあるしで、
無批判に最新版を使うようにしています。

No. 3035 # ゴラス 2003/01/13 (月) 23:02:11
68userさん詳しい解説ありがとうございました。

正直、自分はネットワークに関する知識が低く、100%解説を
理解できたわけではないのですが、大雑把にですが理解しました。
(RFCも始めて閲覧しました)

これからも色々と勉強させていただきたいと思います。

No. 3036 # アロエ 2003/01/14 (火) 09:25:48
教えてください。
メモリ使用率が知りたいのです。Linuxではsysinfoというシステムコールを使って出せましたが、SolarisとHP-UXで出せません。
知ってる方がいましたら教えてください。

No. 3037 # 68user 2003/01/15 (水) 01:40:47
>>3036 アロエ
HP-UX は知りませんが、Solaris なら vmstat とか。
sar でもいけたっけかな?

とかいいつつ、僕は top 入れてますけれども。

No. 3038 # ピョンタン [E-mail] 2003/01/16 (木) 08:50:03
お返事遅くなりました。(>>3023)
OSはUNIX(HP)です。
man lsでfulltimeを探したのですが
見つかりませんでした…。しかも、
「-fulltime」でうまくいったかと思ったのですが、
そうでもなさそうでした。
いろいろありがとうございました。

No. 3039 # コーコー [E-mail] 2003/01/16 (木) 21:01:28
はじめまして、初めて書き込みます。
僕は高校3年生で、こんなところに書き込むのは若干場違いなのですがどの書籍を見てもよくわからなかったので書き込みました。
今、学校でLinuxを使ってHTTPについて勉強しているのですがどうしてもファイル転送ができません。
サンプルプログラムで実行しても出来ません。(その作者のホストにはちゃんとアクセスできます)
Not FoundやForbiddenというのがでます。
chmodでそのファイルを他からも読み書きできるようにしているのですが無理でした。どうしたらいいでしょうか??
あとサンプルでは全てhtmlファイルなんですが、htmlファイルしかダメというわけでしょうか?
詳しい知識もなく、このような場を借りることは失礼だと思いましたが真剣に今の研究をやりとげたいと思いメールしました。
宜しくお願いします。

No. 3040 # 68user 2003/01/16 (木) 22:05:27
>>3038 ピョンタン
あー、-f、-u、-l、-t、-i、-m、-e 全てのオプションを
受け付ける ls なら -fulltime でもエラーにならないかも
しれないですね。想像ですが、HP-UX の ls では無理でしょう。
perl・awk などの別解でやってみてください。

>>3039 コーコー
> ファイル転送ができません。
ファイル転送とはアップロード? ダウンロード?

> サンプルプログラムで実行しても出来ません。
そのサンプルプログラムを提示しないと誰にもわからんでしょう。

> (その作者のホストにはちゃんとアクセスできます)
なぜ作者のホストが関係あるのですか? 作者のホストに
アクセスするようなサンプルプログラム? と思ったら、

> chmodでそのファイルを他からも読み書きできるように
> しているのですが無理でした。
chmod できるということは自分の web ページに対して
アクセスしている?

> どうしたらいいでしょうか??
自分が何を意図して何をした結果うまくいかないのか、を説明する
ことだと思います。

No. 3041 # has 2003/01/17 (金) 01:49:04
おひさしぶりです。またまたおじゃまします。長々とごめんなさい。

以前、LAN環境でlinuxを利用していてNetscape等で名前解決できない
というご相談を、
>>2779 has
    :
>>2871 has
でさせていただきましたが、その後すっかりほったらかしでした。
で、最近また気が向いたのでいくらか調べた結果、いくつか新しい事が
わかってきたので一応ご報告します。

まず、dhcpにて各種情報を正常に取得できていたと以前は言ったのですが、
実はeth0起動時に1分程度かかっていました。これに関して、どうやら
dhcpcdの動作はRFCで提案されている2通りのいずれかを指定できる
らしく、デフォルトではなく、-rを指定することにより一瞬で起動する
ようになりました。この-rで動作するモードですが、linux関係の
情報源ではあくまでも「RFC1541」と解説しているものの、どうもMSの
提案した動作のようで、これを指定してうまく動くという点が非常に
ひっかかりました。

で、もしやこのLANではWindowsサーバが名前解決してるんでは?と思い
はじめ、それからNetBIOSやWINSといった言葉を知るようになり、
そしてこのLAN内ではDNSが走っていないのかも、と疑い出しました。

というのも、linux上でdigによる正引きはなぜかできるのですが、
やはりCで書いたgethostbynameを利用するプログラムが動かないのは
おかしいと思い、Windowsでは本当にDNSを利用しているんだろうか、
と思ったのです。試しにWindows上でipconfigによってDHCPで取得した
DNSサーバアドレス192.168.0.1を割り出し、そのDNSポート53にtelnet
してみたところ、アクセスはrefusedでした。

もしかしたらセキュリティ確保のため、コンマ数秒でリクエストが無い
場合にはとっととコネクションを切っているのかもしれませんが、
なんとなく俺的にはやはりDNSが動いていないような気がします。

というわけで、結論としてWindowsネットワークにlinuxをクライアントと
して参加させる方法、というのが知りたいのですが、どうも検索をしても
linuxをサーバ、Windowをクライアントとしてネットワークを構築する
方法しか目につかず、どうしたらよいのかわからない状況です。

もしかしたらsambaをWINSクライアントにする、という方法を使うのかも
しれませんが、だとしてもそれをlinuxの名前解決とどう連携させるのか
その方法もわかりません。もしこのあたりのことで知っていることが
あれば、アドバイスまたは資料の場所などを教えてください。

よろしくお願いします。

No. 3042 # AMA [E-mail] 2003/01/17 (金) 16:25:05
[OSのVER]:Solaris7
[SQLServerのVER]:SQLServer2000
http://www.microsoft.com/japan/msdn/sqlserver/downloads/jdbc/default.asp
にて提供されているJDBCDriverについて、
Windows版は使用可能だったのですが、
(Win2000PRO/TOMCAT/JSP→JDBCDriver→Win2000Server/SQLServer2000)
UNIX版では
(1)インストール
(2)環境変数の設定
で躓いております。

(1)についてはinstall.kshを起動した際に以下のメッセージが表示され
正常にインストールされません。
****************************************************************
RSWWW001% su
Password:
RSWWW001# cd /export/home/ldn
RSWWW001# ls
DeadLetters fsearchc mssqlserverj.tar
EULA.txt install.ksh read.me
Mail list.jsp result.jsp
a.txt local.cshrc su.txt
classes_20010820.tar local.login test.login20030117
core local.profile testpass.sh
editerc msjdbc.tar
RSWWW001# ksh install.ksh
install.ksh[2]: ^M: 見つかりません。
install.ksh[3]: clear^M: 見つかりません。
install.ksh[4]: ^M: 見つかりません。

============================================================
= SQLServer 2000 driver for JDBC Installation =
= Version 2.2.0021 =
============================================================

Initializing.....

install.ksh[13]: ^M: 見つかりません。
install.ksh[17]: ^M: 見つかりません。

=================================================================
= SQLServer 2000 driver for JDBC License Agreement =
=================================================================

Press <enter> to view License Agreement.
install.ksh[24]: DUMMY^M: 英数字以外の文字が使用されています。
install.ksh[25]: ^M: 見つかりません。
: ファイルもディレクトリもありません。
install.ksh[27]: ^M: 見つかりません。

Do you agree to the terms of the License Agreement? <y/n> (y)
install.ksh[30]: ^M: 見つかりません。
install.ksh[31]: ANSWER^M: 英数字以外の文字が使用されています。
install.ksh[32]: ^M: 見つかりません。
' 異常終了しました。 エラー 行目34 : `in
RSWWW001#
****************************************************************
そこでinstall.kshの記述に沿う形で
/opt/msSQLjdbc/lib以下にjarファイルを格納して作業を進めています。

(2)については、
Soralis7/富士通WebServer(INTERSTAGE)→JDBCDriver→WinNTServer/SQLServer2000
という環境下で、前述のWindows(TOMCAT)上で動作していたJSPを動かそうとしたところ、
JDBCDriverをロードする際に、ClassNotFoundExceptionが発生してしまいます。
****************************************************************
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
****************************************************************
CLASSPATHの設定もしているのですが、原因が掴めません。

(1)(2)についてご助言頂ければ幸いです。
是非宜しくお願い致します。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 3043 # コーコー [E-mail] 2003/01/17 (金) 19:10:47
NO3039の続き

>>3040 お返事ありがとうございます。言葉足らずで申し訳ありませんでした。
そのサンプルは単純にデータを取得して、ファイルに保存するだけのものです。

http://www.ncad.co.jp/~komata/netprg のHTTPのサンプルソース一式
を参照しました。

作者のホストには例題としてアクセスしてみました。

自分のwebページは持っていません。学校の共有PCでやっているので学校内の他のPCからファイルを
もってくるにはchmodを使うものだと思いました。

僕の中では最終的には複数のクライアントからの処理を並列処理(マルチスレッドを利用する予定)してサーバー
、クライアント間でデータをアップロード、ダウンロードできるようにしたいです。

プログラムはCでしか出来ませんが何かよいプログラムなどはあるでしょうか?
よろしくおねがいします。

No. 3044 # 68user 2003/01/18 (土) 00:06:05
>>3041 has
> DNSサーバアドレス192.168.0.1を割り出し、そのDNSポート53にtelnet
> してみたところ、アクセスはrefusedでした。
まず、DNS の query は TCP じゃなくて UDP ですが、それは OK ですか?

> Windowsネットワークにlinuxをクライアントとして参加させる方法
マイクロソフトネットワークについての知識はほとんどないのですが、
    http://www.hyperdyne.co.jp/~oohashi/work/resolve/resolve.shtml
などを読む限り、その方向性はなんか違うような気がします。
Windows マシンでパケットアナライザを使って、DNS サーバに
query を投げているかどうか確認してみてはどうでしょうか。


>>3042 AMA
> install.ksh[25]: ^M: 見つかりません。
スクリプトの改行コードが Windows 式の 0x0D 0x0A になっている
からでしょう。

> CLASSPATHの設定もしているのですが、原因が掴めません。
どのように設定したのか書かないと誰にもわからないと思いませんか?

あと、tomcat は起動スクリプト内で CLASSPATH を設定しなおすんじゃ
なかったでしたっけ (tomcat4 だけだったかも)。

てゆーか、インストールが成功したかどうかは、まずコマンドライン
アプリケーションから確認すべきだと思います。
    http://java-house.jp/ml/archive/j-h-b/021880.html#body


>>3043 コーコー
> 自分のwebページは持っていません。学校の共有PCでやっているので
> 学校内の他のPCからファイルをもってくるにはchmodを使うものだと
> 思いました。
校内のマシンに apache や IIS などの web サーバを立てましたか?
立ててないなら無理です。まずは、ブラウザで
    http://www.example.co.jp/foo.html
などとアクセスできるようにサーバ側を設定する必要があります。

しかし
> Not FoundやForbiddenというのがでます。
というのを見ると web サーバは設定済のようにも読めますし、
よくわかりませんね。ブラウザで見るとどうなるんですか?
サンプルプログラムの引数には何を設定しているのですか?

> http://www.ncad.co.jp/~komata/netprg/
この作者の書いた「C for UNIX」という本は買いましたが、
セマフォあたりの解説で
    「よくわからんがこんな感じで動いている」
といったことが書いてあり、なかなか脱力させていただきました。

サンプルの httpget.c も、
    - htons を使わず、わざわざ short_conv なる関数を自作している。
    - select(2) のループ内で struct timeval をリセットしていない。
    - main の戻り値が void。
    - インデントが厨房くさい (作者の中では一貫した基準らしきものが
        あるようだが…)。
    - shutdown -> close という手順を踏んでいる意味がわからない。
        (close でいいんじゃない?)
    - 戻り値が int の関数であっても、呼び出し前に宣言すべきでは?
        (引数の型チェックができないし)
と、なかなか怪しげです。

# ま、僕も他人のことは言えないのですが。

ただし書籍の価値は読む人との相性次第で決まると思うので、だからと
言って悪い本だとはいいません。あなたが理解しやすいと思ったら
それはよい本なのでしょう。そのうちもっとよい本を読んで正しい知識
を身につけてください。

No. 3045 # has 2003/01/18 (土) 20:05:16
>>3044 68user
Windows2k上でパケット監視してみました。
Operaにてwww.jp.freebsd.orgに接続しに行ったところ、DNSへの問い合わせを
実行しており、正常な応答をもらっているようでした。
で、それとは別に最近気づいたのですが、Win2k上でnslookupが
うまくいってないようなので、ついでにそちらも監視してみたところ、
Non-Existent Domainが返されていました。まだ修正方法すら調べてませんが、
これから勉強してみようと思います。
# まあこれはlinuxの設定を使用しているわけではないので、本来の目的と
# 直接は関係ないのですが…(^^;)

それと以前にも「linuxでパケット監視したら?」とアドバイスをもらってた
ような気がするもののまだ試していないので、それも今度こそやってみます。

> まず、DNS の query は TCP じゃなくて UDP ですが、それは OK ですか?
OKじゃありませんでした。上のパケット監視中UDPで送られてるのを確認しました。

http://www.atmarkit.co.jp/fsecurity/rensai/iprotect01/iprotect01.html
telnetで試しに接続してみる、というのは↑を参考にしてやってたんですが、
勉強が足りなかったようです(--;)

>> Windowsネットワークにlinuxをクライアントとして参加させる方法
> マイクロソフトネットワークについての知識はほとんどないのですが、
> http://www.hyperdyne.co.jp/~oohashi/work/resolve/resolve.shtml
> などを読む限り、その方向性はなんか違うような気がします。
なるほど。Windowsでも「ドット区切りもしくは15文字以上のコンピュータ名は
DNSで引く」ということですね。この点はどうなってるのか知らなかったので、
はっきりできてよかったです。

No. 3046 # AMA [E-mail] 2003/01/20 (月) 13:27:34
68user様ご助言ありがとうございました。
kshの実行については、ご指摘のとおり改行コードを直す事で
正常に実行できました。
環境変数の設定については、.cshrcに
setenv CLASSPATH /opt/msSQLjdbc/lib/msbase.jar:/opt/msSQLjdbc/lib/mssqlserver.jar:/opt/msSQLjdbc/lib/msutil.jar
との記述をしていたのですが、上手くいかなかったため、
(JDKインストールフォルダ)/jre/lib/ext以下に
jarファイルをコピーする事で正常動作させることができました。

初UNIXで分からない事ばかりですが、このページでいろいろと
勉強させて頂きたいと思います。
ありがとうございました。

No. 3047 # KEI [E-mail] 2003/01/20 (月) 15:41:38
初めてメールいたします。

色々なゲームソフトをあっちこっちで拾い集めてPCにインストールしたところ
C¥:REM[Header]

環境変数のため領域が足りません。

上記のメッセージが出てきてwindowsが立ち上がりません。

どのような処理をしたらいいのか教えてください。

ただ、c:\ winと入力すればたちあがってくるのですが・・・

No. 3048 # HITO 2003/01/20 (月) 17:08:11
シェル実行中にCtrl+Cして、強制終了させたときに、
バックグラウンドで動いていたシェルも終了させたいんですが、
イマイチうまく動きません。ちなみにKシェルです。

back_pid=`job -l awk '{print $3}'`でPIDを取得して
kill -9 $back_pidで強制終了
というのを、trap '〜' INTの中でやろうと思ったんですが、
trapの''の中にawkの''があるせいで、エラーになってしまいます。

でも、これだと、バックグラウンドで動いてるプロセスが無い場合も、
未設定の値でkillが走ってしまうので、あまり良くないですが・・・

何か良い方法はありませんか?

No. 3049 # 68user 2003/01/21 (火) 10:51:01
>>3045 has
> Win2k上でnslookupがうまくいってないようなので、ついでにそちらも
> 監視してみたところ、Non-Existent Domainが返されていました。
謎ですねぇ。こっちを解決したら Linux の問題も解決したりして。

>>3047 KEI
Windows はわかりません。

>>3048 HITO
> trapの''の中にawkの''があるせいで、エラーになってしまいます。
クォートの規則がわからなかったら、
        siginthandler(){
                  back_pid=....
                  kill ...
        }
        trap siginthandler INT
と別関数にしましょう。

> でも、これだと、バックグラウンドで動いてるプロセスが無い場合も、
> 未設定の値でkillが走ってしまうので、あまり良くないですが・・・
        if [ "$back_pid" != "" ]; then
                kill ...
        fi
てな感じで。

No. 3050 # さとし 2003/01/21 (火) 15:18:01
はじめまして、さとしです。
突然で申し訳ないのですが教えて欲しい事があります
shell内で、あたかも関数の様に処理を作成して、同一shell内の呼び出し元に返り値を返すことって出来ますか?

No. 3051 # 68user 2003/01/21 (火) 16:44:30
>>3050 さとし
shell って言ってもいくつか種類があるんですけんども。どのシェルを使って
いるのか ちゃんと書きましょう。

sh 系なら
        func(){
                echo "$@"
                return 8
        }
        func 1 2 3 4 hoge fuga
        echo $?
とか。

No. 3052 # しん 2003/01/21 (火) 16:53:45
はじめまして。現在サイトを参考にさせて頂き、HTTPクライアントを作成しております。ベーシック認証において、perlを使いID及びPasswordを相手側サーバに送信する方法を教えて頂けないでしょうか。お忙しいところ申し訳ございませんが宜しくご教授願います。

No. 3053 # 68user 2003/01/21 (火) 17:08:16
>>3052 しん
> ベーシック認証において、perlを使いID及びPasswordを相手側サーバに送信する方法

>>2612 68user
をどうぞ。

No. 3054 # 高橋 [E-mail] 2003/01/23 (木) 01:49:24
はじめまして、
ちょっとだけ聞きたいことがあります。
crontabにシェルを登録しました。
内容は
* * * * * (./Home/Comp/.profile; /Home/Comp/glance_log.sh)
です。
マシンはHP 11.0を使っております。
そしてシェルの内容は
===glance_log.sh===
nohup glance -adviser_only -iterations 1 -syntax ./temp -j 30 >> glance_log.dat &
で,
=== ./temp====
print gbl_stattime, " CPU=", GBL_CPU_TOTAL_UTIL, " DISK I/O=", GBL_DISK_UTIL_PEAK, " MEM UTIL=", GBL_MEM_UTIL
です。
普通のprompt上で実行すると
glance_log.datにローグが積みます。
===glance_log.dat===
01:29:49 CPU= 11.4 DISK I/O= 19.5 MEM UTIL= 81.0
01:29:50 CPU= 17.6 DISK I/O= 9.5 MEM UTIL= 81.1

ところがcrontabに登録して実行させると
glance_log.datには何もでしませんでした。
もちろんのことにechoを使って実行させるとechoだけはローグができますね。
やはりttyの設定が悪いからではないかなぁとおもうんですが、どうやってcrontabに登録したらいいかわかりません。

助けてください。
ほんとに困ります。

No. 3055 # えい 2003/01/23 (木) 09:12:31
はじめまして。いつも参考にさせて頂いてます。

perlで書いたサーバプログラムをinetd経由で起動しているのですが、
接続してきた相手の情報を取得する方法がわからず困っています。
どのように取得するのが一般的な方法なのでしょうか。

No. 3056 # 68user 2003/01/23 (木) 12:48:21
>>3054 高橋
> (./Home/Comp/.profile; /Home/Comp/glance_log.sh)
. と / の間に空白がないので .profile の読み込みに失敗しているのでは?
それを直してもダメなら、
      (. /Home/Comp/.profile; /bin/printenv)
などで環境変数を確認しましょう。

> やはりttyの設定が悪いからではないかなぁとおもうんですが
glance というコマンドは知りませんが、キーボードからの
入力を受け付けるようなプログラムであれば tty がらみ
かもしれません。でも、そうでないなら tty は関係ないでしょう。


>>3055 えい
> perlで書いたサーバプログラムをinetd経由で起動しているのですが、
> 接続してきた相手の情報を取得する方法がわからず困っています。
何も試さずに書きますが、標準入力であるところのファイル
デスクリプタ 0 がソケットにつながっているわけなので、
getpeername(STDIN) でいけるんじゃないでしょうか。

No. 3057 # 山田 2003/01/23 (木) 14:14:56
こんにちは、いつも参考にさせてもらっています。
UNIXで2ギガを超えるファイルの圧縮を行なう方法をご存知の方がいらっしゃれば教えて下さい。
圧縮率に関してはそれほど気にしないので、compressでもOKです。
よろしくお願い致します。

No. 3058 # 68user 2003/01/23 (木) 17:01:10
>>3057 山田
> UNIXで2ギガを超えるファイルの圧縮を行なう方法
OS の制限なら無理でしょう。tar の制限なら制限のない tar を使うと
いけるかもしれません。

結局のところ、「UNIX」と言われてもいろいろな UNIX like OS があるので
わかりません、ってことで。

No. 3059 # 山田 2003/01/23 (木) 17:04:19
ありがとうございます。
zipに制限があるのは確認したのですが、compressは確認していません。
tarで試してみます。
ちなみにOSは何をみれば分かりますか?

No. 3060 # 山岸 信一 [E-mail] 2003/01/23 (木) 18:56:42
始めまして。
私は実際のサーバなど全くいじったことがなく、すべては読み物での知識です。NTTの.COM.MASTER *はパスして現在**を目指している60才を過ぎた元通信分野に籍を置いたものです。交換機などと異なりcomputerの領域の知識が無いので少し苦労をしています。
それで、
きわめて基本的なことですが、permissionにおける「実行」というのは具体的にどういう事象なのでしょうか? R/Wについては解るのですがX(実行)というのはどう言うことなのか解りません。
教えてください。

No. 3061 # has 2003/01/24 (金) 01:49:37
>>3049 68user
tcpdumpを使おうとmanを見たらそれだけで圧倒されてしまい、
etherealを入れようとしたらrpmの依存関係が解決できずに
そのままはまってしまいました。なんてこった(*_*)
もうちっと腰を据えて勉強するとします…。

それはそうとこの板、回答者がすっかり68user一人になってしまったので、
たまには私も口を出せそうな話題にはお邪魔しようかと思います。
というわけで早速。

>>3059 山田
OSの種類については
% uname -s
を実行するとわかります。
SunOSとかHP-UXとかFreeBSDとかlinuxとか。

>>3060 山岸 信一
コンピュータに関する理解具合が把握できなかったので回答しづらいですが、
http://www.kent-web.com/pubc/axsken/
というページがありました。
こういう説明で参考になるでしょうか?

No. 3062 # has 2003/01/24 (金) 01:58:02
>>3061 has
しまった、結局「実行」についての解説が無かったですね。
「そのファイルをプログラムだと思って実行してもよい」という意味です、
と言いたいところなんですが、これで通じますか?

@68user
こっちは再編集機能つけて無いんすね…。

No. 3063 # えい 2003/01/24 (金) 02:52:23
>>3055>>3056
なるほど。標準入出力がソケットに繋がってるんですね。
上手く取得することが出来ました。
ありがとうございました。

$sockaddr = 'S n a4 x8';
$hersockaddr = getpeername(STDIN);
($family, $port, $heraddr) = unpack($sockaddr, $hersockaddr);
$addr = inet_ntoa($heraddr);

No. 3064 # 68user 2003/01/24 (金) 06:26:56
>>3059 山田
> zipに制限があるのは確認したのですが、compressは確認していません。
> tarで試してみます。
おっと、tar と書いたのは指がすべりました。compress の
間違いでした。

要は、OS の制限として 2GB 以上のファイルを扱えない仕様
なのか、compress や zip の制限なのかを明らかにしましょう、
ということです。

そういうのには興味がなくて、とにかく圧縮したいのなら
split して zip なり gzip なり compress なりすればよい
でしょう。

>>3061 has
> OSの種類については
> % uname -s
Linux カーネルが 2GB over ファイルに対応したのは最近の
ことだし、Solaris なら 7 以降 (2.6 なら -largefile
オプションで可能らしい)、uname -a でバージョンまで
聞き出すのがよいかと思います。


>>3060 山岸 信一
補足すると、コンピュータにとってはプログラム (実行可能なもの) も
データ (例えばテキストファイルとか画像ファイルとか) も、ただの
ファイルとしか見えません。

なので人間が「このファイルは実行可能である」と教えてやらないと
コンピュータはプログラムを実行できないわけです。

で、UNIX では実行権限 (x) が「このファイルは実行可能な
プログラムである」という印なわけです。

ここらへんは OS によって異なり、例えば Windows だと拡張子が
.exe や .com の場合、「このファイルは実行可能なプログラムである」
という印になるわけで。

> NTTの.COM.MASTER *はパスして現在**
これですか。
      http://biz.ocn.ne.jp/master/c027_02.html
いろんな資格があるもんですねぇ。


>>3061 has
> それはそうとこの板、回答者がすっかり68user一人になってしまったので、
> たまには私も口を出せそうな話題にはお邪魔しようかと思います。
当然ながら誰が回答してもよい掲示板ですので、よろしく>みなさま

>>3062 has
> こっちは再編集機能つけて無いんすね…。
これまで作った掲示板で再編集機能を付けたことないっすよ。
ちょっと突っ込まれると内容を変えたり、削除したりする人が
いるので、「掲示板に編集・削除機能は不要」というのが
僕の考えだったりします。

No. 3065 # Yo 2003/01/26 (日) 10:38:44
はじめまして。
UNIXリファレンスを利用させて頂いています。

一つご教授願いたいことが出来まして投稿させていただきます。
環境は以下の通りです。
・一台のUNIXサーバに対して複数台のWindowsサーバが接続している
・UNIX上のシェルからリモートシェルによってWindows上のbatコマンドを実行(Windowsサーバは全て同一ディレクトリ構成・かつ同一batコマンドを実行)
上記条件において、Windowsサーバをパラで動作させたいのです。
一台目のWindowsのbatコマンドの終了を待つことなく次のWindowsのbatコマンドを実行、といった風にしたいのです。
(現状、一台目の処理が終了したら二台目・・・となっています。)
UNIX側では全Windowsサーバのbatコマンドの終了(rshの終了)を待ってから次の処理に進みます。

そのような実装は可能なのでしょうか。
分かりにくい質問内容かも知れませんが、ご存知の方がおられましたら宜しくご教授お願い致します。

赤色の文字は 「Windows 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

Prev< No. 3031〜3065> Next  [最新発言に戻る] [過去ログ一覧]