68user's page 掲示板

Prev< No. 2614〜2680> Next  [最新発言に戻る] [過去ログ一覧]
No. 2614 # kouhei [E-mail] 2002/04/10 (水) 11:46:46
申し訳ないです。下の質問わかりにくいですね。
例えばindex.htmlをインポートするとindex.html,vとなってしまう為
ブラウザーでindex.htmlを表示できないという事です。
宜しくお願いします。

No. 2615 # 68user 2002/04/10 (水) 12:48:27
>>2614 kouhei
目的は、履歴 (index.html,v) を表示することですか? それともコンテンツ
(index.html) を表示することですか?

No. 2616 # 68user 2002/04/10 (水) 12:59:54
>>2615 68user
追加。

もし後者だとしたら、リポジトリを直接ブラウザで見ようとして
いるのはなぜですか?

No. 2617 # kouhei [E-mail] 2002/04/10 (水) 13:07:10
素早いレスありがとうございます。
目的はコンテンツ(index.html)を表示したいということです。
参考にトップページのソースを拝見させていただきました。
1行目に<!--$ID:index.html,v 〜 があるというこはindex.htmlを
管理しているという事ですよね。これはチェックアウトした物を表示
しているのですか。
私がやりたいのはインポートしたindex.htmlを表示したいという事です

以上、宜しくお願いします。

No. 2618 # kouhei [E-mail] 2002/04/10 (水) 13:27:09
追加。
もしかして普通はこんな事しませんか。
テスト用サーバでcommitと同時に画面に反映されたらテストが楽に
なると思ったので。動作確認ができたら本番サーバにリリースする
というような事を考えていました。
実現できるのでしょうか。

No. 2619 # 68user 2002/04/10 (水) 15:37:20
>>2618 kouhei
> テスト用サーバでcommitと同時に画面に反映されたらテストが楽に
> なると思ったので。動作確認ができたら本番サーバにリリースする
> というような事を考えていました。
運用の問題になりますが、commit しないとテストできないというのは
面倒ではないですか?

普通、ちょっと作ってはブラウザで確認、不具合を修正し、確認し…と
修正・確認を繰り返して、まぁ問題ないだろうというときになったら
commit するものだと思います。

よって、
    - CVSROOT が /home/user/cvsroot
    - テスト環境を置くディレクトリが /home/user/public_html/
    - 本番環境を置くディレクトリが /usr/local/www/data/
だとしたら、
    % cd /home/user/public_html
    (ここで修正・確認を繰り返す)
    % cvs commit
    % cd /usr/local/www/data/
    % cvs update (本番環境に反映。あるいは再度 checkout しなおしてもよい)
とするのがよいと思います。

CVSROOT/loginfo をいじれば、commit した瞬間に本番環境へ反映させる
ことは不可能ではありませんが、常に本番環境に即時反映されるのも困る
場合があるんじゃないでしょうか?

また、本番環境への自動反映であれば、cron で定期的に更新するという
手もあります。loginfo で凝ったことをするより、cron で小回りのきく
単純なシステムを作った方がいいかもしれません。

No. 2620 # kouhei 2002/04/10 (水) 18:23:41
ありがとうございます。
チェックアウト先をWindowsのローカルにと考えていたのが
悪かったようです。Unix上にチェックアウトしてSambaで編集すれば
良いのですね。開発がサーブレットとjspとオラクルだったのもので
気軽にローカルでテスト環境を作るというのが難しかった為、サーバに
戻してテストしようと考えていました。
cronは便利そうですね。使った事ないですが勉強しようと思います。
以上、ありがとうございました。

No. 2621 # 68user 2002/04/10 (水) 22:16:27
>>2620 kouhei
> 開発がサーブレットとjspとオラクルだったのもので気軽にローカルで
> テスト環境を作るというのが難しかった為
なるほど。

でも、開発を各マシン上で行えると便利ですよ。
    開発環境は各マシンで
        Windows+JBuilder+Tomcat+PostgreSQL 用 JDBC ドライバ
        (テスト用サーバで PostgreSQL が稼働)
    テスト & 本番環境は
        UNIX+Tomcat+Oracle
てな感じで やっているところを見たことがあります。

Oracle と Tomcat を違いではまらないように、開発者は SQL を
直接書かず、DB 担当者が SQL を一括管理していましたが、そのかわり
    「今から開発マシン落としま〜す」
    「なんだ開発できねぇじゃねーか」
とかいうことがなくなりますし、同じファイルを同時にいじくって
しまう危険もないですね。

まあ、ある程度の規模にならないとメリットも出てこないので、
kouhei さんの環境でもそうするべきかどうかはわかりませんが、
参考まで。

No. 2622 # あやの 2002/04/11 (木) 11:36:21
2つのファイルの比較について、
hogeとfooという2つのファイルが場合、
この2つのファイルから、同一の内容)行を出力するコマンドは
どのようなものがありますか?

No. 2623 # あやの 2002/04/11 (木) 11:38:54
2つのファイルの比較について、
hogeとfooという2つのファイルがある場合、
この2つのファイルから、同一の内容の行を出力するコマンドは
どのようなものがありますか?

No. 2624 # あやの 2002/04/11 (木) 16:34:01
下記で同じ質問をしたところ、回答をいただいて解決しました。
http://www.parkcity.ne.jp/~chaichan/qanda/qa2652.htm

No. 2625 # 名無しさん 2002/04/11 (木) 20:11:06
マルチポストですか・・・>あやの

No. 2626 # kouhei 2002/04/12 (金) 10:49:47
お世話になってます。すみませんがもう一つ質問させてください。
CVSでコミットと同時にメールで複数人に通知したいのですが、設定がよくわかりません。
一応、以下の内容をloginfoに加えればメールは送られるのですが
コミットに1分以上、時間がかかってしまい使えません。
ALL (echo ""; id; echo %{sVv}; date; cat) | mail メールアドレス

パールを使う以下の方法も試したのですがパールの中でエラーが出てしまいます。
DEFAULT /usr/local/lib/cvs/contrib/log %s -m メールアドレス -f $CVSROOT/CVSROOT/commitlog

エラー内容は 〜/user/local/lib/cvs/contrib/log line 172. です。
-----------------------------------------------------------
/user/local/lib/cvs/contrib/log
-----------------------------------------------------------
close(OUT);
die "Write to $logfile failed" if $?;

close(MAIL);
die "Pipe to $mailcmd failed" if $?; ← 172行目
-----------------------------------------------------------

環境はLINUXです。
メール自動送信の方法をご伝授して頂けないでしょうか。
宜しくお願いします。

No. 2627 # 68user 2002/04/12 (金) 11:15:54
>>2626 kouhei
> コミットに1分以上、時間がかかってしまい使えません。
> ALL (echo ""; id; echo %{sVv}; date; cat) | mail メールアドレス
普通に考えると、commit に時間がかかる場所は mail コマンド以外には
考えられないので、まずはコマンドラインから
    % mail メールアドレス
で試してみるべきでしょう。

> パールを使う以下の方法も試したのですがパールの中でエラーが出てしまいます。
こちらも
    % Mail -s 'CVS update: $modulepath メールアドレス

    % /usr/local/lib/cvs/contrib/log %s -m メールアドレス -f $CVSROOT/CVSROOT/commitlog
などをコマンドラインから実行して、再現するかどうか試しましょう。

うちでは
    http://www-vox.dj.kit.ac.jp/nishi/cvsbook/ の mailto-committers.pl.txt を
使っています。
    - CVSROOT に jcode.pl を cvs add。
    - CVSROOT に mailto-committers.pl を cvs add。
    - CVSROOT/checkoutlist に
            mailto-committers.pl
            jcode.pl
        を追加し、commit。
    - CVSROOT/mailto-committers.pl を以下のように変更
                --- CVSROOT/mailto-committers.pl 2001/04/05 07:05:28 1.1
                +++ CVSROOT/mailto-committers.pl 2001/04/17 04:12:00 1.8
                @@ -1,23 +1,24 @@
                  #!/usr/bin/perl
                  #
                -# $Id: mailto-committers.pl,v 1.1 2001/04/05 07:05:28 mat Exp $
                +# $Id: mailto-committers.pl,v 1.8 2001/04/17 04:12:00 mat Exp $
                  # Copyright (C) 1998 Hajime BABA. All rights reserved.
                  #
  
                -require 'jcode.pl';
                +require '/MASTER/cvs/CVSROOT/jcode.pl';
  
                -$cvs = "/usr/bin/cvs";
                -$rcsdiff = "/usr/bin/rcsdiff";
                -$sendmail = "/usr/sbin/sendmail";
                +$cvs = "/usr/local/bin/cvs";
                +$rcsdiff = "/usr/local/bin/rcsdiff";
                +$sendmail = "/usr/lib/sendmail";
  
                  sub parse_args {
                          my(@tmp, $tmp);
  
                - $CVSROOT = ENV{'CVSROOT'};
                + $CVSROOT = $ENV{'CVSROOT'};
                + $CVSROOT =~ s/.*://;

                          print $ARGV[0], "\n" if $debug;
                          $ARGV[0] =~ s/ - New directory//go;
                @@ -49,6 +50,7 @@
                  sub set_header {
                          my(@h, $file, @tmp, $date);
  
                          open(HISTORY, "$tail -$files $CVSROOT/CVSROOT/history |") || die;
                          @h = <HISTORY>;
                          close(HISTORY);
                @@ -84,8 +86,8 @@ sub todate {
                  sub mail_notification {
                          my($file, $fullname, $old, $new, $tmp);
  
                - open(MAIL, ">> /tmp/commitlog");
                + open(MAIL, "| $sendmail -odb -oem -t");
                          print(MAIL "$subject");
                          print(MAIL "$header");

    - loginfo に
            DEFAULT $CVSROOT/CVSROOT/mailto-committers.pl %{sVv} $USER メールアドレス
        を追加し、commit。

No. 2628 # kouhei 2002/04/12 (金) 14:06:41
mailto-committers.plの方法を試しましたが結果は同じで1分以上待ってから送信されます。
%mail メールアドレスは普通に送信されました。
もう少し調べてみます。

No. 2629 # john 2002/04/13 (土) 23:20:13
はじめまして、メールサーバの管理をしているのですが、
最近サーバがpopユーザ数に対応しきれず、
pop.lockがかかってメールが取れない事が頻繁に発生しています。
popデーモンはqpopperをつかっています。

そこで、このロックの解除方法で疑問があります。

qpopperが起動すると、まず、/var/mai/.user-id.popファイルにコピーを作成。
無事にコピーが終わると、/var/mai/user-idはサイズ0に切り詰められる。
POPサーバーは、このコピーと、解析した結果を元にクライアントとやりとりします。
  
ネットで調べると、.user-id.popファイルを削除する方法をよく見かけますが、
途中でセッションが切れてロックファイルが残ってしまったような場合、
この方法では受信し切れなかった分のメールはなくなってしまうのでしょうか?
ほっとけば30分でロックファイルはなくりますが、
これもただ強制的にロックファイルを削除しているだけなのでしょうか?

また、popのプロセスをkillする方法もありますが、この場合のロックファイルは
どう処理されるのでしょうか?

ご指導、宜しくお願いします。

No. 2630 # 68user 2002/04/15 (月) 07:54:54
>>2629 john
一口に qpopper と言っても、2.5x 系、3.x 系、4.0.x 系 などがあります。
ちゃんとバージョンを書きましょう。

> qpopperが起動すると、まず、/var/mai/.user-id.popファイルにコピーを作成。
> 無事にコピーが終わると、/var/mai/user-idはサイズ0に切り詰められる。
> POPサーバーは、このコピーと、解析した結果を元にクライアントとやりとりします。

4.0.3 では、
    認証完了
    → user-id.lock 作成
    → user-id を .user-id.pop にコピー
    → user-id を 0 バイトに
    → user-id.lock 削除

でした。「pop.lock」ってどのことを指してますか? あるいは本当に
「pop.lock」というファイルがあるのでしょうか?

No. 2631 # 小僧 2002/04/15 (月) 21:40:53
お世話になります、小僧です。
質問をさせてください。

あるシェルをバックグランドで実行させ、
その後Window を閉じる、という処理を行おうとしています。

過去ログなどを参照した結果、実行コマンドは
nohup ???.sh &
でいいと思うのですが、終了のさせかたに疑問が残ります。
と、言うのも logout コマンドは受け付けてくれるのですが、
exit コマンドは 1 回目は受け付けてくれません。
( 2 回叩くと exit してくれます・・・)

本で調べた結果、exit は「シェルスクリプトを終了」し、
logout は「ログインシェル」を終了させると書いてありましたが、
この意味するところがわからなく、困っています。

この 2 つのコマンドの違いが分かるか方がいらっしゃいましたら、
アドバイスをお願い致します。

−−−
OS は AIX 4.3
シェルは ksh
調べた本は「UNIX クイックリファレンス」
です。

宜しくお願い致します。

No. 2632 # 68user 2002/04/16 (火) 16:31:53
>>2631 小僧
> logout コマンドは受け付けてくれるのですが、
> exit コマンドは 1 回目は受け付けてくれません。
それはまた謎な話ですね。
    % nohup sleep 100 &
    % exit
でも再現しますか?

単に (nohup を実行せずに)
    % exit
だと?

また、「受け付けてくれない」とはどういう状況を指してますか?
何かエラーメッセージは出ますか?

No. 2633 # 小僧 2002/04/16 (火) 17:25:42
>>2632 68user
お世話になります、小僧です。
早速の返信、ありがとうございます。

68user さんが記述されているコマンドを実行してみました。
以下、結果です。

---------- Start
# nohup sleep 100 &
[1] 37802
# nohup の出力を nohup.out に送信します。

# exit
実行中のジョブがあります。

---------- End

情報が足りなかったのですが、
「受け付けてくれない」というのは
"実行中のジョブがあります。"メッセージが
表示されて、終了されないことを指しています。

ちなみに、上記の状態でもう一度「exit」を実行すると、
上手く画面が消えてくれます。

宜しくお願い致します。

No. 2634 # 68user 2002/04/16 (火) 19:33:09
>>2633 小僧
> "実行中のジョブがあります。"
それはシェルが
    「実行中のジョブがあるけど、本当に exit で抜けてよいのか?」
と親切に聞いてくれているのです。

これはただの警告であって、抜けようと思えばいくらでも抜けられます。
二度目の exit は
    「警告したにもかかわらず再度 exit しようとした」
ということで、今度は抜けることができます。

FreeBSD や Solaris では、端末を持たないコマンド (?) をバック
グラウンドで実行している場合は、素直に exit させてくれるん
ですけど、AIX はそうではないようですね。

No. 2635 # 小僧 2002/04/17 (水) 10:06:41
>>2634 68user
お世話になります、小僧です。

早速の回答、ありがとうございました。
別に exit と logout のコマンドが
違う訳ではなかったのですね。

今後も宜しくお願い致します。

No. 2636 # Yasuo Y 2002/04/17 (水) 10:58:30
はじめまして。検索していてここに辿り着きましたよろしくお願いいたします

SunOS 5.7 cshでファイルをテープにバックアップする時に
tarでやっているのですが、ファイル数が多くなって出来なくなって
しまいました(argument too long)

echo /パス/ | xargs tar cvf
としても、だめみたいです(xargsは外部コマンドでした)。

ファイル数を減らすという他に何か良い方法はないでしょうか。
お忙しいところ誠に恐縮ですが、宜しくご教示ください

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

No. 2637 # 68user 2002/04/17 (水) 22:11:21
>>2636 Yasuo Y
> echo /パス/ | xargs tar cvf
> としても、だめみたいです(xargsは外部コマンドでした)。
xargs tar cvf /dev/XXX ですよね?

で、「だめ」とはどういう意味ですか? 少なくとも Argument too long は
出ないはずですが。

ただしこの場合、
    % tar cvf /dev/XXX file1 file2 file3 ....
    % tar cvf /dev/XXX file1500 file1501 file1502 ....
    % tar cvf /dev/XXX file4000 file4001 file4002 ....
と複数回 tar が実行されますが、それでいいのですか?

解決策は tar の -I オプションじゃないかと思います。

No. 2638 # 68user 2002/04/17 (水) 22:15:04
>>2635 小僧
> 別に exit と logout のコマンドが違う訳ではなかったのですね。
違いますよ。logout はログインシェルを終了させるとき、exit は
シェルを終了させるときに使います。ログインシェルというのは、
    Login:
    Password:
というような認証の直後に起動したシェルのことです。

No. 2639 # Yasuo Y 2002/04/18 (木) 11:13:39
>>2637 68user
68Userさん、ありがとうございます。
tar cvf /dev/XXX -I /パス名1 -I /パス名2 -I /パス名3
として実行してみたのですが、変な文字がコンソールにいっぱい出てきて
すぐ止めました。
それから、Argument Too Longも相変わらず出ています。
せっかく教えていただいたのに解決できませんでした……。
たくさんあるファイルをテープにバックアップしている
ところは、一体どうやってやっているんでしょうか??

No. 2640 # 68user 2002/04/18 (木) 11:35:29
>>2639 Yasuo Y
> tar cvf /dev/XXX -I /パス名1 -I /パス名2 -I /パス名3
man tar しました? -I の意味を調べました?

あと、別解としては、
    % echo * | xargs tar rvf /dev/XXX
かなぁ。うまくいくかどうかはわかりませんが。

No. 2641 # あき 2002/04/19 (金) 10:57:34
はじめまして
UNIXについて質問なのですが、a.txt と b.txt というファイルがあり
aの中には abcdefg という内容があり bの中には hijklmn という内容があります。そこで a の中に b の内容をコピーしたいのですが、どのようにコピーしたらよいのですか、教えてください。
行のコピーの仕方ってあるんですか?

No. 2642 # Yasuo Y 2002/04/19 (金) 19:22:04
>>2640 68user
とりあえずうまくいってるようです。
Cシェルの実行中に出てきたエラーメッセージなのですが
Argument Too longは、他のところで出ているもののようでした。
どうもお騒がせしました。

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

No. 2643 # ある厨 2002/04/19 (金) 21:49:30
ども初めまして。
http://x68000.startshop.co.jp/%7E68user/cgi-bin/<script>alert("----")</script>
のエラーページでいま話題のクロスサイトスクリプティングの脆弱性を確認出来ました。
たぶん、error.cgiの原因と思われます。
私も利用させてもらっていますがperlのことは分かりませんので
Fixされるようお願いします。

No. 2644 # 名無しさん 2002/04/19 (金) 23:32:37
>>2643 ある厨
なるほど。外部からの情報をちゃんとチェックしてないな。
ふむふむ。賢い

No. 2645 # 68user 2002/04/23 (火) 01:51:41
File System full で、しばらくこのサーバにアクセスできない状態に
なってました。

>>2643 ある厨
> のエラーページでいま話題のクロスサイトスクリプティングの脆弱性を確認出来ました。
ご指摘ありがとうございます。< > を &lt; &gt; に置換するようにしました。
あと、Host: ヘッダにも全く同じ脆弱性がありましたので直しました。

http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/error.cgi

>>2641 あき
いまいちやりたいことがわかりません。例をあげて説明して下さい。

No. 2646 # knockout 2002/04/23 (火) 13:09:04
はじめまして。
UNIXを始めたばかりの初心者なんですが、
あるフ゜ロク゛ラムから、その日の日付の入ったファイル名を持つファイル
自動生成させたいのですが、
どうもうまく出来ないんです。

というのも、僕はdateの情報をcutもしくは、date +%y%m%d"などで、
その日の日付を抜き取り、変数に入れた後、
touch $[変数名] と、そんな感じでやってみたんですが、
これって、パイプを使っても変数の中に日付って入らないですよね?

出来れば、[日付入りファイル名]の作り方を教えて頂けませんか?
ぜんぜん違うアプローチでその方法があるならそちらでも一向に構いませんのでm(__)m

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

No. 2647 # 68user 2002/04/23 (火) 13:25:36
>>2646 knockout
言語は何ですか。

No. 2648 # knockout 2002/04/23 (火) 14:16:58
返答どうもです。
ksh見たいです(w

No. 2649 # knockout 2002/04/23 (火) 14:22:24
返答ありがとうございます。
えっと、「echo $SHELL」と入力して、
/usr/bin/ksh
と出ますので、kshですね。
すいません、こんなふざけた返答で(^^;

No. 2650 # 68user 2002/04/23 (火) 14:28:07
>>2648 knockout
    nowdate=`date +%y%m%d`
    echo $nowdate
と `` を使います。

パイプを使うこともできなくはありませんが、無駄に長くなります。
複数行を処理する必要がないなら `` でよいでしょう。
    date +%y%m%d | while read line
    do
        echo $line
    done

No. 2651 # knockout 2002/04/23 (火) 14:32:05
出来ました!!
なるほど``ですね。
早速、ホンチャンのプログラムに組み込んできます。
ありがとうございましたm(__)m

No. 2652 # knockout 2002/04/23 (火) 14:54:14
度々すいません。
えっと、さっきの返答してもらった最後の記述
        date +%y%m%d | while read line
        do
                echo $line
        done
は、何を行っているんでしょうか?
僕の解釈ではdateで表示したのを、変数lineに代入、
その後がいまいち理解が、
echo $lineは分かるんですけどね、
doとdoneを使っている意味が
はっきり分からないんです。
それぐらい調べろっていわれそうですが、
どうか一つ宜しくお願いします(^^;

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

No. 2653 # H.M [E-mail] 2002/04/23 (火) 17:53:18
はじめまして。LINUXをはじめたばかりのものです。
c言語用FTPクライアントのプログラムを
ダウンロードしたのですが、
実行方法がいまいちわかりません。
他のサイトでサーバ、クライアントのファイルは
それぞれで実行すればよかったのですが、
今回の分はFTPサーバを自分で作らなければ
ダメなのでしょうか?
かなり初歩的な質問だと思いますが
教えてください。

No. 2654 # 田中 [E-mail] 2002/04/23 (火) 20:28:04
リンク先があるかどうか知るにはどうすればいいですか?
具体的には他人に書き込んでもらったアドレスの、
例えばhttp://www.a.com/a/a.gifの絵があるかどうか知りたいのです。
それと、絵の大きさも知りたいです。
それで大きすぎたら表示しないようにしたいのですが。
よろしくお願いします。

No. 2655 # apex 2002/04/24 (水) 12:07:31
はじめまして、apexと申します。
今、Cシェル(OSは、ソラリス8)で、簡単なプロセス管理ツールを作成しています。
この時、以下のことでうまく動作せず悩んでおります。
もし、おわかりになれば教えてください。

1:Cシェル内で、rootユーザになる方法。
            要するに、パスワードをシェル内に記述して、コマンドラインに渡せ  るかどうか?

2:awkにて、プロセスを切り出す方法
            「ps -ef | grep ABC」からABCを認識させ、ABCプロセスが存在しな   ければ、起動する。
                この時、ps-efコマンドを実行した時の、第2パラメータが      ”root”で、第9パラメータが”ABC”であるものを切り出したい。

以上、お手数ですが、よろしくお願いします。

No. 2656 # sys [E-mail] 2002/04/24 (水) 13:40:11
>>2655 apex
1についてですが、
expectというコマンドがあれば、これを使ってみてはどうでしょうか。
ここにサンプルがありますね。
http://www.math.s.kobe-u.ac.jp/~kodama/tips-expect.html

No. 2657 # 68user 2002/04/24 (水) 17:57:37
>>2652 knockout
> doとdoneを使っている意味がはっきり分からないんです。
while 〜 do 〜 done でひとまとまりのループです。なぜループを使うかと
言うと、複数行の出力を1行ずつ取り出して処理しているからです。


>>2653 H.M
> c言語用FTPクライアントのプログラムをダウンロードしたのですが、
> 実行方法がいまいちわかりません。
    http://X68000.startshop.co.jp/~68user/net/c-ftp-1.html
ですか? このページに書いてある通りに実行すれば、引数で指定した
FTP サーバに接続しにいくはずですが…。


>>2654 田中
> 具体的には他人に書き込んでもらったアドレスの、
> 例えばhttp://www.a.com/a/a.gifの絵があるかどうか知りたいのです。
リンクチェッカやダウンローダを使います。

> それと、絵の大きさも知りたいです。
ヘッダを解析します。各種ライブラリやコマンドを使ってもいいです。

> それで大きすぎたら表示しないようにしたいのですが。
if 文で判断します。

# 環境も何もわからないと、この程度のことしか言えません。


>>2655 apex
> パスワードをシェル内に記述して、コマンドラインに渡せるかどうか?
できなくはないです。
>>2573 68user
を参照。

が、コマンドラインからだと (端末を握っている場合、という意味) うまく
いかないので、やめといた方がよいでしょう。sudo や expect を使うのが
一番いいです。

> この時、ps-efコマンドを実行した時の、第2パラメータが”root”で、
> 第9パラメータが”ABC”であるものを切り出したい。
    ps -ef | awk '$2=="root" && $9=="ABC" {print}'
    ps -ef | awk '$2~/^root$/ && $9~/^ABC$/ {print}'
あたりでしょうか。

No. 2658 # 田中 [E-mail] 2002/04/25 (木) 12:35:59
2654番の田中です。
お答え有難うございました。
言葉足らずですいません。
perlでcgiを勉強しながら製作中です。
でもう一度、
リンク先があるかどうか知るにはどうすればいいですか?
具体的には他人に書き込んでもらったアドレスの、
例えばhttp://www.a.com/a/a.gifの絵が存在するかどうか
知りたいのです。
それと、絵の容量も知りたいです。
それで大きすぎたら表示しないようにしたいのですが。
よろしくお願いします。

No. 2659 # 68user 2002/04/25 (木) 23:36:37
>>2658 田中
> リンク先があるかどうか知るにはどうすればいいですか?
wget などのダウンローダやリンクチェッカを使います。現在のサーバに
それらのソフトが入っていなければインストールします。あるいは
libwww などの perl モジュールをインストールするのもよいでしょう。
それもできないなら、
    http://www.studyinghttp.net/Hyd_HTTP.html
がお勧めです。

> それと、絵の容量も知りたいです。
「容量」とはファイルサイズのことですか? 前の質問では「大きさ」と
あったので縦横のサイズかと思ったのですが。

ファイルサイズなら Content-Length ヘッダを見ます。Content-Length
ヘッダが付かない場合もあるので、その際は実際にダウンロードして
そのサイズを調べる)。

縦横のサイズなら、file コマンドや ImageMagick 付属の identify
コマンドを使います。
    % file hoge.jpg
    hoge.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), 72 x 72
    % identify hoge.jpg
    hoge.jpg JPEG 25x40 DirectClass 8-bit 912b 0.0u 0:01

> それで大きすぎたら表示しないようにしたいのですが。
「表示」というのも曖昧です。一度サーバ側にダウンロードしてから
表示させるのか、あるいは <img src="..."> を出力するだけなのか。

どちらにせよ、ファイルサイズなり縦横のサイズなりを if 文で
判断すればよいでしょう。

No. 2660 # 68user 2002/04/26 (金) 00:01:47
>>2658 田中
また無駄な回答をしてしまった。
    http://script.lovely.to/bbs/infolng.cgi?print+200204/02040010.txt
もうこないでね。

No. 2661 # しなくろ 2002/04/28 (日) 01:38:21
大学でUNIXを勉強しているのですが…
ただ教授の命令どおりにコマンドを入力して実行しているだけで、
何をやってて何をするためにUNIXを勉強しているのか分かりません。

大体パソコンをかまうのにも慣れてない自分は、
「この〜〜〜を、〜〜〜して」  ※〜〜〜→聞きなれない英語
といわれ続けちんぷんかんぷんです。

どうしたら上手くUNIXを学べれるのでしょうか?
もしアホでも分かるお勧めの本とかあれば紹介していただきたいのですが…

No. 2662 # 68user 2002/04/28 (日) 12:20:59
>>2661 しなくろ
興味がなければ学ばない。でも単位を落とさないように暗記だけする。
ってのがいいんじゃないでしょうか。興味がわかないことを勉強しても
時間の浪費にしかならないと思います。

興味はあるけどわからないって場合は…どうしたもんでしょうかねぇ。

No. 2663 # ある厨 2002/04/29 (月) 23:15:47
Fixども。
設定完了しましたのでお礼まで。

No. 2664 # なは 2002/04/29 (月) 23:26:36
はじめまして。とても参考になります。

telnetのところでWindowsではtelnetでホームページはみれないのでしょうか?

No. 2665 # 68user 2002/05/02 (木) 00:06:53
>>2664 なは
> telnetのところでWindowsではtelnetでホームページはみれないのでしょうか?

http://x68000.startshop.co.jp/~68user/net/win-telnet.html では
どうでしょうか。

と言っても Windows 2000 の telnet.exe では設定方法が違う
んですけどね。

No. 2666 # a-jmj 2002/05/03 (金) 09:59:32
perlについてですが、無名のハッシュ又は配列のレファレンスに、配列要素を追加する方法を教えてください。ついでに配列の参照の仕方も教えもらえると有りがたいです。

以下のソースは変数を@line_0 .. 9までと変数を9個使っていますが、これを$line_{0} .. {9}と一つの変数にさせたいと思っています。

while (<IN>) {
  local($date) = (split /<>/)[0];
  push (@{'line_'.$date},$_);
}
foreach (0..9) {
  foreach $line (@{'line_'.$_}) {
    print $line;
  }
}

No. 2667 # 68user 2002/05/03 (金) 12:24:15
>>2666 a-jmj
ん〜、$line_{2} で 2 行目のデータが得られればいいのですか?
そのとき得たいデータは日付 ($date) と行全体?

No. 2668 # a-jmj 2002/05/03 (金) 13:20:04
説明不足ですいません。
1<>aaaa<>
1<>bbbb<>
2<>cccc<>
というデータがあったとしたら、
$line_{1}[0] = '1<>aaaa<>'
$line_{1}[1] = '1<>bbbb<>'
$line_{2}[0] = '2<>cccc<>'
といった風にしたいのですが、以下のソースではエラーが出てしまいます。
open(IN,"file");
while (<IN>) {
    local($date) = (split /<>/)[0];
    push (@line_{$date},$_);
}
colse(IN);
これをする目的は下のように全体のデータを何度も回転させたくないので、
データを分別しときたいのです。
open(IN,"file");
@lines = <IN>;
colse(IN);
foreach (0..9) {
  print $_;
  foreach $line (@lines) {
    my($i,$data) = split /<>/,$line;
    print $data if ($i == $_);
  }
}

無名のリファレンスを使いたい理由としては、@{'line_'.$date}といった感じの変数を使いたくないのと、効率を考えたらリファレンスが使えないことです。

No. 2669 # 68user 2002/05/03 (金) 17:19:29
>>2668 a-jmj
こんな感じでしょうか。

    open(IN,"file");
    while (<IN>){
        chomp;
        local($date) = (split /<>/)[0];
        push(@{$line_{$date}}, $_);
    }
    close(IN);
    
    foreach $date (sort keys %line_ ){
        foreach (@{$line_{$date}}){
            print "$_ ";
        }
        print "\n";
    }

実行結果:
    1<>aaaa<> 1<>bbbb<>
    2<>cccc<>

No. 2670 # a-jmj 2002/05/03 (金) 20:44:32
どうもありがとうございます。
ええそうです、求めていたのはこれです。
無名も普通のリファレンスみたいに使うのですね。
なかなかリファレンスを詳しく書いた資料がないものですね。
実際の運用には8桁の日付で、分別させているのですが、以前の方法でしたら、
use strict;を使おうにも変数名が不規則なうえ、指定してやらなければ成らな
い変数が膨大な数になってしまうことが問題でした。
その他に良い分別方法があったら教えていただけたら、幸いです。

No. 2671 # 68user 2002/05/03 (金) 23:30:27
>>2670 a-jmj
> その他に良い分別方法があったら教えていただけたら、幸いです。
データ構造を変えていいなら、各行に一意の番号を付けて
    $data{123}{DATE} = '20020101';
    $data{123}{NAME} = 'hoge';
    $data{123}{MAIL} = 'foo@bar';
などとするのが好みです。

データ構造を現行のままにするなら案の通り
    $data{20020101}[0] = '1<>aaaa<>'
とするのも悪くないでしょう。

あるいは最初に <> を解析しておいて
    $data{20020101}[1]->{NAME}
といった形でアクセスできるようにするという手もあります。以下サンプル。

        my %data;
        open(IN,"file");
        while (<IN>){
                chomp;
                my ($date,$name,$mail,$content) = split /<>/;
                my %hash;
                $hash{NAME}=$name;
                $hash{MAIL}=$mail;
                $hash{CONTENT}=$content;
                push(@{$data{$date}}, \%hash);
        }
        close(IN);

        foreach $date (sort keys %data ){
                print "$date: ";
                foreach my $ref_hash (@{$data{$date}}){
                      print "$ref_hash->{NAME} $ref_hash->{MAIL} $ref_hash->{CONTENT} ";
                }
                print "\n";
        }

        print "おまけ: $data{20020101}[1]->{NAME}\n";


    データファイルの内容:
        20020101<>名前1<>メールアドレス1<>発言内容1
        20020101<>名前2<>メールアドレス2<>発言内容2
        20030203<>名前3<>メールアドレス3<>発言内容3

    実行結果:
        20020101: 名前1 メールアドレス1 発言内容1 名前2 メールアドレス2 発言内容2
        20030203: 名前3 メールアドレス3 発言内容3
        おまけ: 発言内容2


ただし、perl でちょっと凝ったリファレンスを使い出すと、とてつもなく
ソースが汚くなるので、クラスを使いたくなるかもしれません。そして
クラスを使い出すと、perl の OO に嫌気がさして ruby を使い出すかも
しれません。

なので、ほどほどのところでやめておく方がいいのかも。

No. 2672 # Shino [URL] [E-mail] 2002/05/07 (火) 00:59:24
始めまして。C-CGI システム構築をHTMLのタグレベルで実現するツール
の紹介ページが shino.server-club,net/index.htm にあります。皆様の
御参考になればとCMまがいの書き込みを致しました。

No. 2673 # 名無しさん 2002/05/07 (火) 18:02:44
>>2672 Shino
こんなもので金が取れると思ってるの??

なんか最初からあやしげな臭いがプンプンしてたけど、やっぱり。。
http://shino.server-club.net/cgi-bin/DS.cgi?COMMAND=Html&HTML=../../../../../../../etc/passwd
注:Referer。

汚染チェックしてね。

No. 2674 # Shino [E-mail] 2002/05/07 (火) 23:47:36
名無しさん様、大変失礼を致しました。

No. 2675 # ふくし [E-mail] 2002/05/08 (水) 00:27:08
おひさしぶりですみません。質問です。
よく、インターネット(Web、メール)で
(いわゆる)半角カナを使ってはいけないといわれますが、
この理由が、
・インターネットは ASCII 以来、7ビットしか通さない伝送路が
    使われてきたので、7ビットコードを使うのが望ましい
・日本の場合 ISO-2022-JP が標準
・ISO-2022-JP は、4つの面に(いわゆる)半角カナ以外の
    コードが割り当てられている。
・つまり、ISO-2022-JP には半角カナが「ない」
・ないものは使ってはいけない
という風に覚えていましたが、
UNIX の mule や Windows の xyzzy で ISO-2022-JP を指定して
(いわゆる)半角カナを入れるときの、
「ESC)I がエスケープシーケンスで(いわゆる)半角カナ」
というコード系は、何に規定されているものなのでしょうか。
こんなの、ちょっと調べろよって話だと思うんですが、
調べ方が悪いのかこれだ、という情報に当りません、、。

No. 2676 # 68user 2002/05/08 (水) 01:05:41
>>2675 ふくし
> 「ESC)I がエスケープシーケンスで(いわゆる)半角カナ」
> というコード系は、何に規定されているものなのでしょうか。
何にっていうのは、どの規格で定められているかってことですよね。

http://www2d.biglobe.ne.jp/~msyk/charcode/jisx0201kana/ には
    JUNET方式のエンコーディング方式を素直に拡張すれば、この
    エンコーディング方式になる。
とありますが、何をどう素直に拡張すればこうなるのか (僕の知識
不足のため) 理解できません。

http://www.kanzaki.com/docs/jis-mail.html には
    RFC1468には記載されていませんが、定義からESC ( I が7ビットの
    カタカナを指示(designate)するエスケープシーケンスとなるので、
とありますが、どこをどう読めば ESC ( I が 7bit カタカナを指示する
ことになるのか これまた (僕の知識不足のため) 理解できません。

わかったら僕にも教えて下さい。

No. 2677 # 68user 2002/05/08 (水) 01:27:53
>>2675 ふくし
> よく、インターネット(Web、メール)で(いわゆる)半角カナを
> 使ってはいけないといわれますが、
おっと、見逃してた。ここで「web」を挙げているのは誤りです。

インターネット (≒ TCP/IP) は 8bit を通します。FTP も HTTP も
8bit through です。過去 7bit しか通さない実装が多かったのは
SMTP で、7bit しか通らないところに日本語を通そうという苦肉の
策が、後の ISO-2022-JP につながる JUNET コードです。

よって、web で半角カナ使用禁止という話はありません。もちろん web で
    Content-type: text/html; charset=ISO-2022-JP
としているならば半角カナは使えませんけれども。

ちなみに、個人的には半角カナは嫌いでしたが、2ch で AA を見てると、まぁ
半角カナもいいかなと思い始めていました。が、半角カナは EUC-JP と
Shift_JIS でバイト長が違うため、項目長を事前に決めておかなければ
ならない DB では何かとトラブルの元です。よって、やっぱり半角カナ
嫌いに戻ってしまいました。

No. 2678 # ふくし [E-mail] 2002/05/08 (水) 01:29:20
そっかー。68user さんもわからないと聞いて
少なくともつまんない質問ではなかったとわかって
なんかホッとしました(^o^)
マルチポストになりますが、別所で聞き、なにかわかったら
また書きます。ありがとうございます。
他の方も、なにかありましたらご教示ください。

No. 2679 # へにか [URL] 2002/05/08 (水) 08:16:13
>>2675 ふくし
>>2676 68user
お久しぶりです。
http://euc.jp/i18n/charcode.ja.html
によると、
>終端文字と文字集合の対応は登録制になっており、 ECMAという組織が登録簿を管理して います。
(略)
>・94文字集合
(略)
>I
> JIS X 0201カタカナ
>J
> JIS X 0201ローマ文字
とあります。
先にECMAが決めたのか、誰かが既に決めたのをECMAが登録したのかは、
わかりませんが。

No. 2680 # 68user 2002/05/08 (水) 22:39:05
>>2679 へにか
なるほどなるほど。
    http://www.ecma.ch/ecma1/STAND/STANDARD.HTM
のどれかにその記述があるのでしょうか。PDF しかないようなので
中身は見ていませんけれども。

ちなみに G0 とかロッキングシフトなども理解してないんですが (どこの
解説を読んでもよくわからん)、初心者向けの解説がどこかにないもので
しょうか。

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