68user's page 掲示板

Prev< No. 3037〜3105> Next  [最新発言に戻る] [過去ログ一覧]
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 機種依存文字」か、いわゆる「半角カナ」です。 この掲示板では自動変換されますが、今後は使用しないで下さい

No. 3066 # 山田 2003/01/27 (月) 20:06:19
すみません、すみません、2ギガ越えに関する回答は終了かと思い、週末は掲示板に目を通しませんでした。。。
遅れ馳せながら、>>3064様、>>3061様、丁寧なご回答ありがとうございます。
ご教授いただいたOSのバージョンですが早速試してみたところ、下記の様に表示されました。
「SunOS xxxxxx 5.8 Generic_108528-13 sun4u sparc SUNW,Sun-Fire-280R」
一般的に5.8を指してソラリス8と呼んでるようですが(聞きかじりです。間違っていたらすみません)、下記は68usr様がおっしゃる「Solaris なら 7 以降 」に該当するのでしょうか?
これより新しいのはソラリス9と聞いています。
ご教授ください。 山田

No. 3067 # 68user 2003/01/28 (火) 10:42:28
>>3064 68user
> UNIX上のシェルからリモートシェルによってWindows上のbat
> コマンドを実行(Windowsサーバは全て同一ディレクトリ構成・
> かつ同一batコマンドを実行)
> 上記条件において、Windowsサーバをパラで動作させたいのです。
UNIX 側で
      rsh host1 command
      rsh host2 command
      rsh host3 command
などとしているのですよね? ならば
      rsh host1 command &
      rsh host2 command &
      rsh host3 command &
が一番簡単だと思います。


>>3066 山田
> 一般的に5.8を指してソラリス8と呼んでるようですが
そうです。

>「Solaris なら 7 以降 」に該当するのでしょうか?
該当します。

Solaris の 2GB 超ファイルの扱いは、man largefile で見ることが
できる largefile(5) に載っています。
      http://www.freebsd.org/cgi/man.cgi?query=largefile&apropos=0&sektion=0&manpath=SunOS+5.8&format=html

Solaris8 の largefile(5) には large file aware なコマンドとして
compress はありますが、zip は載っていません。よって、compress
なら OK、zip は NG でしょう。

>>3064 68user
> Solaris なら 7 以降 (2.6 なら -largefile オプションで
> 可能らしい)
手もとの Solaris 2.6 で試してみましたが、2GB 超ファイルを
作成することができました。現在のマウント状況を表す /etc/mnttab は
      /dev/dsk/c0t0d0s5 /opt ufs suid,rw,largefiles,...
などとなっているので、Solaris 2.6 のデフォルトは 2GB 超
OK なのかな?

No. 3068 # 児嶋 2003/01/28 (火) 11:57:22
はじめまして。

コマンドヒストリについてご教授願いたいことが出来まして投稿させていただきます。

ユーザがUNIXサーバへログインしたあとに実行したコマンドはヒストリファイルに記録されていると思いますが、コマンドが実行された時刻はどのファイルに記憶されるのでしょうか?
記録するための設定などがありましたらぜひご教授ください。
よろしくお願いいたします。

OS solaris 5.8

No. 3069 # 68user 2003/01/28 (火) 12:05:21
>>3068 児嶋
csh・tcsh なら、~/.history に
        #+1043136351
        ls
などと時刻込みで記録されています。bash なら .bash_history。

No. 3070 # 68user 2003/01/28 (火) 13:14:16
>>3069 68user
> bash なら .bash_history。
一応確認してみましたが、bash はヒストリに時刻を記録しないみたいですね。

No. 3071 # 児嶋 2003/01/28 (火) 14:20:36
>>3070 68user
csh,bash環境で確認しました。

ls等のコマンドを実行してから一度ログオフし、再度ログインしました。
そこでホーム配下の.historyおよび.bash_historyを確認しましたが何も書かれておりませんでした。
.historyの権限は644になっております。rootアカウントで実行していますので権限は問題ないかと思います。

何か、出力要否のフラグの設定があるのでしょうか?

No. 3072 # 68user 2003/01/28 (火) 14:32:19
>>3071 児嶋
csh なら、シェル変数 history・savehist がセットされているか確認。
    % set | grep hist
    history 1000
    savehist 2000
セットされていなかったら
      % set history = 1000
      % set savehist = 2000
など。

bash なら
      % set|grep -i hist
      HISTFILE=/home/user/.bash_history
      HISTFILESIZE=500
      HISTSIZE=500
ここらへんですかねぇ (常用していないのでよくわかりませんが)。

No. 3073 # 児嶋 2003/01/28 (火) 14:28:57
>>3072 68user
早速実行してみました。
結果、コマンドラインは出力されましたが、時刻までは出力されませんでした。


何とか、時刻も出力させる方法はないものでしょうか?

No. 3074 # 68user 2003/01/28 (火) 14:48:47
>>3073 児嶋
またまた誤解してました。csh は時刻を記録しないみたいですね。

というわけで、「tcsh を使う」が解でしょうか。

No. 3075 # 美春 [E-mail] 2003/01/28 (火) 14:53:19
はじめまして。
考えても考えてもわからないことが
ありますのでご教授下さい。

あるファイルに
    aaaaああああaaaa
    いbbbbbbbbbbbい
のような行があって、
各行から2バイトの文字だけを
抜き出したいのですがどうすれば
できるのでしょうか?
イメージとしては上のファイルを
このように出力したいのです。
    ああああ
    いい

どうしてもわからないので
よろしくお願いします。

No. 3076 # 山田 2003/01/28 (火) 14:57:01
>>3067 68user
私もcompress→uncompressと試してみました。
解凍後のファイルサイズも一致しており、上手くいっているようです。
とても助かりました。ありがとうございます。

実はもうひとつ教えていただきたいことがありまして・・・
cshellで文字列操作は可能なのでしょうか?
下記を解決する方法があれば教えて下さい。
Q1.指定したディレクトリからファイル名を変数に取得。
Q2.上記Q1でAAA_YYYYMMDD.txtと言う名前を取得できたとして、
        YYYYMMDDのみを切り出して、shell内で用意した日付と大小を
        比較出来るのでしょうか?

ご存知の方、教えて下さい(T_T)

No. 3077 # 児嶋 2003/01/28 (火) 15:37:21
>>3074 68user
ありがとうございました。
環境が整ったときにtcshで確認しようと思います。

No. 3078 # koko 2003/01/28 (火) 17:02:53
親プロセスで子プロセスをforkするC言語プログラムがあります。
子プロセスは複数作成され、処理が終わると自動的に消滅します。
親プロセスで現在存在している子プロセスの数を把握したいのですが、簡単な方法はありますでしょうか。
子プロセスの数だけ分かれば良いです。
子プロセス数カウンタを設け、forkでインクリメントし、子プロセスの終了を検知してデクリメントする方法もあるかと思いますが、もっと簡単な方法があれば教えていただけますでしょうか。
よろしくお願いします。

No. 3079 # 68user 2003/01/29 (水) 02:28:50
>>3075 美春
考え方を変えて、日本語以外を除くとするなら
    % sed 's/[a-zA-Z0-9]//g' < file
など。本当に日本語だけを拾いたいなら
    http://www.din.or.jp/~ohzaki/perl.htm#JP_Match
を参考に perl でやるのがよいでしょう。

>>3076 山田
> cshellで文字列操作は可能なのでしょうか?
foreach file (AAA_*.txt)
    set date=`echo $file | sed 's/^AAA_\([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\).*/\1/'`
    echo '$file -> $date'
    if ( $date < '20020114' ) then
          echo $date
    endif
end

仕事や課題を丸投げされると答える側もつまらないです。質問するなら
もっとおもしろい質問をしてください。

お金を払っていただけるなら、(お仕事として) つまらん質問にも
答えますけど。

>>3078 koko
> 親プロセスで現在存在している子プロセスの数を把握
> したいのですが、簡単な方法はありますでしょうか。
簡単、というか適当な調べ方でよいなら、ps して、親プロセスが
自分であるプロセス一覧を取得、などがあると思いますが、
ps しているプロセスは除くとか余計な処理をしなきゃいけない
と思うので、結果的にはあまり簡単じゃないと思います。

    - 親がいろんな仕事をするのなら、fork するときに
        インクリメントして、SIGCHLD を受けるたびに
        デクリメント (>>2988 を参照)
    - 親は子の終了を待つだけなら、fork するときに
        インクリメントして、wait して、wait から戻って
        きたらデクリメント。

でいいんじゃないでしょうか。

No. 3080 # koko 2003/01/29 (水) 09:47:13
>>3079 68user
やはり、ご指摘の方法が妥当なところのようですね。
この方法で対応する事とします。
ありがとう御座いました。

No. 3081 # 山田 2003/01/29 (水) 09:59:35
>>3076 山田
ご回答ありがとうございます。
>仕事や課題を丸投げされると答える側もつまらないです。質問するなら
>もっとおもしろい質問をしてください。
了解しました。
先日、ほぼ一日調査してたのですが出来なかったもので。。。
申し訳ないです。。

No. 3082 # 美春 2003/01/29 (水) 11:49:51
>>3067 68user
うまくいきました。
本当にありがとうございました。
perlの方も挑戦してみます。
度々の質問で申し訳ありませんが、
grepの正規表現で"'"(シングルクォーテーション)
を出さないようにしたいのですが、
うまくいきません。
grep '[\']' <file>
だとダメみたいです。
どうすればよいのでしょうか?
初心者の質問ですみません。
よろしくお願いします。

No. 3083 # has 2003/01/30 (木) 00:01:24
>>3082 美春
grepは行単位で処理するので、シングルクォートを含む行を表示しない、
という処理は可能です。grepに-vをつけると、条件に合わない行のみを
出力するので、

% grep -v "'" filename

とすればfilenameファイル内のシングルクォートを含まない行のみを
出力してくれます。

もしシングルクォートを文字単位で削除したいのであれば、

% sed -e "s/'//g" < filename

とすればよいと思います。

No. 3084 # 美春 2003/01/31 (金) 14:06:07
No. 3083 has
感動してしまいました。
manで調べろと怒られるかと
思ったのにご丁寧に
ありがとうございました。

No. 3085 # 山田 2003/02/05 (水) 16:11:14
こんにちは、山田です。
shellにワイルドカードを含んだ引数を文字列として渡したいのですが上手くいきません。
例えば、
aaa.sh zz*.txt

aaa.sh zz\*.txt
と渡すとローカルにある対象となるtxtファイルを全て引数としてもってきてしまいます。
aaa.sh zz'\''*'.txt
などとしてもダメなようです。
出来ないのでしょうか?
申しわけありませんが、教えて下さい。

No. 3086 # ふくし 2003/02/05 (水) 16:19:59
>>3085 山田
さん、

シェルはなんでしょうか?
zsh だと

    > echo *.txt
    aaa.txt bbb.txt ccc.txt

    > echo '*.txt'
    *.txt

のようになりました。

No. 3087 # 山田 2003/02/05 (水) 18:33:15
>>3086 ふくし
様、ご回答ありがとうございます。
cshです。
やりたいことは、
aaa.sh ZZ*.txt
と指定した時にshell内で、
set filename = arg[1]とし、
filenameに"ZZ*.txt"という文字列をセットしたいのです。

No. 3088 # ふくし 2003/02/05 (水) 20:05:51
>>3087 山田
さん

下で書いたつもりだったんですが (^^;;;
引数「ZZ*.txt」全体をシングルクォート '' で囲んだらどうなります?

No. 3089 # 山田 2003/02/05 (水) 21:20:34
>>3086 ふくし

>引数「ZZ*.txt」全体をシングルクォート '' で囲んだらどうなります?
やはりカレントの該当するファイルが引数に入ってしまいます。
arg[1]の内容が"ZZa.txt ZZb.txt ZZc.txt"というような感じです。
んー、こまっております(^^;)

No. 3090 # 68user 2003/02/05 (水) 21:48:17
>>3089 山田
    % cat hoge
    set filename='*.c'
    echo $filename

    % csh -fx hoge
    set filename=*.c
    echo *.c
    a.c b.c c.c d.c

というわけで、csh では ただの文字列として set しても、
glob 展開されます。よって、参照するたびに
    echo "$filename"
とダブルクォートで囲むか (面倒)、あるいは
    set noglob
で変数を展開しないようにする、と。

もっとよいのは perl や ruby などに乗り換えることです。

No. 3091 # ふくし 2003/02/06 (木) 02:29:54
>>3089 山田
さん、

知らぬこととはいえ失礼しました。
そんな致命的な非互換があろうとは、、。

シュバング行で
  #! /bin/sh
と書いてしまって、Bourne Shell で書き直すってのは
どうでしょうね。
コマンドを手入力するのは csh 系が、
シェルスクリプトを組むのは Bsh 系がいいって聞いた気がします。
(気のせいか? ;;;
もっぱら私はちょっとでも論理のあることは
Perl にするのでどっちも知りませんが、、。

No. 3092 # op 2003/02/07 (金) 00:33:46
始めましてopといいます。
・・・いきなり質問で申し訳ないのですが、

掲示板を作っていて
コメントを書き込んだ後に更新をすると、
前のコメントが追加されてしまいます
これを回避する為にはいったいどんなコードに
書けがよいのでしょうか?

宜しければアドバイスの程お願いします。

No. 3093 # DQN..cc [URL] 2003/02/07 (金) 00:48:48
>>3092 op
書き込み後に↓こんなHTMLを表示すればいいのでは。

<html><head><title>書きこみました。</title><meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"><meta content=5 http-equiv=refresh></head><body>書きこみが終わりました。<br><br>画面を切り替えるまでしばらくお待ち下さい。<br><br></body></html>

別のページに移動させたければ、
<meta content=5 http-equiv=refresh>
ではなく、
<meta content=5;URL=../homepage/index.html http-equiv=refresh>
としてみる。

・・・といった方法ではどうでしょう。

No. 3094 # しん 2003/02/07 (金) 13:59:17
以前にBASIC認証の質問のご回答を頂きありがとうございました。
おかげさまで認証を行うサイトへのアクセスが出来るようになりました。
現在はPOSTが行えるクライアントを作成中です。

POST及びchunkedに関する質問ですが、
あるサイトにアクセスした際に

Content-type: text/x-hdml; Charset=Shift_JIS
Transfer-Encoding: chunked
省略
postmethod="post" postdata="xxxxxxx"
省略

とのレスポンスがあり

print SOCKET "POST /$path HTTP/1.1\r\n";
print SOCKET "Host: $host\r\n";
print SOCKET "User-Agent等リクエストヘッダ"

$message = "xxxxxxx";
$len = length($message);
print SOCKET "Content-length: $len"."\r\n\r\n";
print SOCKET "$message";

にてPOSTを行っているのですが、POSTされません。
原因としてはどういった事が考えられますでしょうか。
chunkedでエンコードされ送られたデータはPOSTする際もchunkedで
エンコードして送り返さなければいけないのでしょうか。
もしエンコードしたデータをPOSTしなければいけない場合はchunkedの
エンコード方法をお教え下さい。
宜しくお願い致します。

No. 3095 # op 2003/02/07 (金) 20:13:36
>>3093 DQN..cc様
早速のレス有難う御座います♪

なるほど・・・。
確かにこういった処理をする掲示板なんどか見かけた事がありました
本来の意味はこういう事?だったのですね(多分

それと、また質問で恐縮なのですが
リフレッシュ以外にも他の方法なんかありますかね?(^^;

No. 3096 # has 2003/02/08 (土) 01:37:29
>>3095 op
ここの掲示板では書き込みのたびに書き込み内容のMD5を作成し、
キャッシュしておいた最新数件分のMD5と同一の場合には記録しない、
という方式を採用しています。

詳しくはここの掲示板のソースを参照してみてください。

No. 3097 # H-Hash [URL] 2003/02/09 (日) 01:14:35
>>3094 しん
>chunkedでエンコードされ送られたデータはPOSTする際もchunkedで
>エンコードして送り返さなければいけないのでしょうか。
そんなことは無いです。

>もしエンコードしたデータをPOSTしなければいけない場合はchunkedの
>エンコード方法をお教え下さい。
要するにデータを細切れ(例えば1024byte毎)にして、
サイズ(16進)
データ
サイズ(16進)
データ

0
とすればいいだけです。(see http://www.studyinghttp.net/rfc_ja/2616/sec3.html#sec3.6.1)

で、解決方法ですが、とりあえずHTTP/1.0で送ってみて下さい。
それでも失敗した場合は、とりあえずチャンク周りが原因ではありません。

No. 3098 # op 2003/02/09 (日) 01:44:52
>>3096 has様
MD5ですかぁ〜レベルが一気に上がったような気がしますが、
これからさっそく勉強していきたいと思います(苦笑

ほんとにhasさん、DQN..ccさん有難う御座いました。

No. 3099 # ふくし 2003/02/13 (木) 19:18:56
Linux User という本に5つのディストリビューションが一気に
付録についてるので慌てて買ったんですけど、
よく考えるとコレ(よく考えなくても)CD じゃなくて
DVD なんですよね、、。
会社で遊んでるマシンが1個あって、ただし会社のマシン管理のヒトが
バックアップしてくれないから、バックアップデバイス兼ねて
この機会に DVD-RAM を入れようかなあと思ったんですが、
Linux で読める DVD-RAM ドライブってあるんでしょうかね。
じっさいにはネットワーク経由で Debian(woody)を入れたので、
もう雑誌の付録は必要なくなったんですが、、

No. 3100 # 68user 2003/02/15 (土) 02:44:18
>>3099 ふくし
> Linux で読める DVD-RAM ドライブってあるんでしょうかね。
FreeBSD でも DVD-RAM を読み書きできるくらいですから、
できなくはないでしょうけど、具体的な機種名などは
わかりません。

検索すると DVD-RAM 対応カーネルパッチが云々などと
いうのが引っかかるのですが、Linux 事情に疎いので
それが最新の情報なのか判断できないです。

# てゆーか、DVD-RAM どころか CD-R さえ使ったことが
# ないので。

No. 3101 # bebe 2003/02/17 (月) 11:23:45
findコマンドについて教えてください。
find . -user root とするとカレントディレクトリ以下の
所有者がrootになっているファイルが引っかかるかと思い
ます。
それではなくて、所有者がrootになっていないファイルを
引っ掛けたいと思うのですが、その場合findコマンドはどの
ように使えばいいでしょうか?
宜しくお願いします。

No. 3102 # 68user 2003/02/17 (月) 19:54:30
>>3101 bebe
> 所有者がrootになっていないファイル
    % find . ! -user root
    % find . -false -user root
    % find . -not -user root
などなど。

FreeBSD 4.7-RELEASE のマニュアルには ! と -false と -not が
書いてあるのに
        % find . -not -name \*.c
        find: -not: unknown option
となってしまう。なぜだろう。ソースを見ると -not は効きそうなんだけれども。

http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/find/option.c
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&man=find&dir=jpman-4.7.0%2Fman

No. 3103 # wataru [E-mail] 2003/02/18 (火) 14:45:54
send()について教えてください。

send()にてデータを送信しようとするとperrorにて「Illegal Seek」
と返ってきます。もちろんデータも送信できていません。

この現象の原因と対処法を教えていただけないでしょうか?
socketとconnectはできています。

No. 3104 # 68user 2003/02/18 (火) 15:02:41
>>3103 wataru
> Illegal Seek
ってことは errno が ESPIPE なのでしょうけれど、手もとにある FreeBSD と
Solaris2.6/8 を見ても、send(2) が ESPIPE を返すとは書いてありませんので、
わかりません。

てゆーか、OS 名も、OS のバージョンも、エラーの起こるコード例も提示せず
質問している、あなたという人間がわかりません。

No. 3105 # wataru [E-mail] 2003/02/18 (火) 16:09:42
ご無礼大変申し訳ありませんでした。現在私はHard Hut Linux2.0
でプログラムを組んでいます。

原因のソースコードは以下の様です。

    if ((*s = socket(AF_INET, SOCK_STREAM, 0)) < 0) { // TCPでソケットを開く
        perror("socket");
        s_vMsgSnd(TSK_ER , 71 , 40);
        return -1;
    }
    syslog(LOG_DEBUG,"s = %d",*s);
    syslog(LOG_DEBUG,"port = %d",port);
    
    // 接続に必要な情報を設定する
    memset((char *) &server, 0, sizeof(server));
    server.sin_family = AF_INET;
    server.sin_addr.s_addr = dst_ip; //<GT_0010>
    server.sin_port = htons(port);

    s_vSigTimer(TIMER_START);
    alarm(TIMEOUT_SEC);
        if (connect(*s, (struct sockaddr *) &server, sizeof server) < 0) { // サーバとのコネクションを確立する
            perror("connect");
            s_vSigTimer(TIMER_STOP); return -1; //<GT_0003> add
        }
        s_vSigTimer(TIMER_STOP);
        signal(SIGPIPE,ReCNCT);
        if(usCnctNG == FLAG_ON)
            return -1;

上記の方法でconnectまで持っていきます。
その後

    while(sendbytes < MaxLENGTH){
            nSended=send(*s,psz,strlen(psz),0);
        if(nSended == -1){
            perror("SendError:"); s_vMsgSnd(TSK_ER , 71 , 57);
            s_vSigTimer(TIMER_STOP);return -1;
        }else if(counttim > 0){
            syslog(LOG_DEBUG,"+*+*+*+*time over +*+*+*+*");
            s_vSigTimer(TIMER_STOP);return -1;
        }
        psz+=nSended;
        sendbytes+=nSended;
    }

でMaxLENGTHに達するまでデータを送信します。

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