|
おはようです。 自作の掲示板ですか?スゴイですね。 .htaccessを見させてもらいました。 htmlやhtmでもSSIが実行できるようになっているみたいですが、 どこかに「サーバの負担が大きくなるから止めた方が良い」みたいな ことが書いてありました。 #いちいちチェックするからでしょうか? あまり気にしなくて良いものなんでしょうか? #どんな風に表示されるのかな、ワクワク^^ |
|
いえ、自作ではなく http://www2e.biglobe.ne.jp/%7es-hasei/wwwboard.htm のやつです。他のサイトで設置を頼まれたのですが、 念のためこちらで動作チェックをしてます。ですから、 > #どんな風に表示されるのかな、ワクワク^^ いたって普通です(^^; > どこかに「サーバの負担が大きくなるから止めた方が良い」みたいな > ことが書いてありました。 まぁたしかに全ての*.htmlに検索かけてしまうんで、 貧弱なマシンでは .shtmlにした方がいいんでしょうね。 でも、このサーバはCPUが6個、メモリ1Gというふざけた マシンなんで(笑)、負荷についてはあんまり考えてません。 それより問題なのはセキュリティでしょうけど、 もしコマンド実行されてもnobody権限だし、 まぁいいか、という投げやりな姿勢です。 あと、BBS設置した理由に、 UNIXの部屋を作ってから質問やツッコミが2つしか 来てないので、非常にさみしい。 というのがあります(^^; だって結構アクセスしてもらってるのに、リアクションが ないとさみしいなぁ…と、モニタの向こうの人に向かって言って みたりして。 |
|
こんにちは http://www.sega.co.jp/music/bbs/ http://www.sega.co.jp/cinema/bbs/ http://www.sega.co.jp/gamesoft/bbs/ 一応ご参考までに。 (掲示板の趣旨とは違いますので消して下さってけっこうです。) |
|
はじめまして何時も「unixコマンド」を拝見して勉強させて頂いております。 出来れば「逆引き」メニューなど作っていただければ有り難いのですが? あつかましい事を申しました(^^;今後ともよろしく御願いしますm(_ _)m |
|
どもども>竹内@竹内靖工務店さん えっと、逆引きメニューというのは「機能→コマンド名」 という意味でしょうか? それともコマンド名をひっくり返して(muleならelum) 並べることですか?(違うか(^^;) |
|
その3つだけでいいですか?>calさん 1週間以内に落としますが、それより先に削除されてたらゴメン。 |
|
はじめまして、素人です。(-_-; LINUXというのはUNIXの中のひとつというような事を聞いたのですが、同時にわりと独自性の強いものとも聞きました。アプリケーションの互換が無くなるほどの差があるのでしょうか? (改行無しテストも兼ねる(^-^;) |
|
はじめまして、R-Nouveau!さん。かっこいい名前ですね。 > アプリケーションの互換が無くなるほどの差があるのでしょうか? 互換性という言葉を出すなら、何と互換性が高いか、という ことを考えなくてはなりませんね。 まずUNIXにはBSD系とSystemV系があります。 前者はFreeBSD、NetBSD、BSDI、SunOS4(昔のSunOS)、 後者はSolaris、HP-UX、AIXなどほとんど商用OSです。 で、LinuxはBSD系とSysV系のいいとこ取りです。 # 悪く言えばどっちつかずですけど。 というわけで、LinuxのコマンドはSysV系、BSD系、 Linuxオリジナル、の3つが混ざってます。 別の観点から見ると… OS開発者とは別の人が作っているコマンド(例えば muleとかnetscape、procmail、nkf、perl、apache、 tcsh、sendmailなど他にもたくさん)は、動作・ オプションに違いはありません。 その作成者はどの環境でも同じように動くことを望んでいる のですから、当然といえば当然です。 上と同じ理由で、GNUが開発/配布しているコマンド (bash、flex、gcc、fingerなど)も互換性は高いです。 また昔からあるコマンド(lsとかcat)も、結構共通点があります。 んが、OS開発者が自ら作っているコマンド、つまりOSに深く 関わるコマンド(ppp、pkg_add、natd、ps、cron、mount、 ktraceなど)はかなり違います。 それから、ソースレベルでの互換性という点では、 インクルードファイルやライブラリの有無/仕様の違い/ などが原因で、少し大きめのプログラムだと、一発で コンパイルできないことも多いです。 でも、わかっている人がソースやMakefileをいじると 大抵の場合なんとかなります。 # わかってない人がいじってもどうにもならない。 ですから、FreeBSDではportsやpackage、Linuxでは (よく知りませんが)ディストリビューションごとに rpmとかを用意して、わかってない人でも一発で インストールできるようにしてるわけです。 …というふうに、「アプリケーションの互換性」と 曖昧な聞き方をされると、こんなに長くなってしまう のでした(笑) |
|
よろしくお願いします。&ありがとうございます。 |
|
こんばんわ。賑わってますね^^ もう既に付いていけないくらいの話題になってます(汗) そうですか、6気筒1万ccのマシンなんですか。 そんな良いマシン、前の仕事でも使った事なかったなあ。 error.cgi、参考にさせてもらいます。 でも、いつ反映できるかは謎ですが(笑) |
|
RefererなのかReferrerなのか、いづれ決着をつけましょう・・・・・・・・・ って、ほさいぬさんが言ってました。 |
|
お招きにあずかり、参上致し…あ、あれ?誰もよんでないって? こりゃまた、失礼しました〜〜、って年代モノのギャグはどっかにやっといて、と。 取り敢えず、某所でここのCGIが必要になりそうなんで頂いていきます(笑) 問題が発生すればレポート出しますんで、その時には宜しくお願いしますね。 まぁ、仕事もあるんで、すぐに設置できる状態ではなさそうなんだけど… |
|
g2を見てみる…いきなり一行目でつまずく(笑) >#!/usr/local/bin/perl -w の-wってなんでせう?何かのオプションかなぁ…まぁいいや まさか1行目からつまずくとは思わんかったけど(笑) 次 >push(@INC,"/home/usr4/a5/i/a5i050/public_html/cgi-bin/"); >push(@INC,"/home/95s/j5306050/bbs"); またつまずく(爆) push?perlってpush使えるのか? でもpop無い様な…、いいやこれも、次いこう次。 >$nocgi = 1; ん〜、なんかのフラグにしてんのかな、だとしたらなんなのでせうか? 例のごとく次へ >require 'timelocal.pl'; >require 'environment.pl'; ライブラリか、timelocal.plの方はどっかのサーバーにあるだろうから適当にDLしてくればいいか。 ほんとにいいんでしょうか>お師さん 問題はenvironment.plのほう。 同じようにDLしてみる…やばい、これは結構書き直しがいりそう… 時間もかかりそうなので、こいつに関してはまた後日。 >$proxy = 'http://www.cs.gunma-u.ac.jp:8080/'; こいつはプロキシのアドレスですな。 まぁ適当なプロキシサーバー見つけてきて代入すればいいですよね。 >$base_dir = "$home/test00"; 以下3行 コメントがあるので分かりやすい… が、$homeが問題。 environment.plに記述があるので、そこから書き換えないとだめですねぇ >$erase_span = 2; 変数の名前から想像するに…過去ログを残す日にちかな? 2って事は3日分残るって事でいいんでしょうか。 ってことで、g2理解するのにはまだまだ時間がかかりそうです。 68user師匠、ここまでの解説を御教授くださいませ。 |
|
>cal殿 ログは保護しました >肉殿 JavaScriptって全てreferrerなんですか? うーん、納得いかん。 >ROL殿 -wはperlにwarningを吐かせるオプションですな。 requireってのは、ファイルをインクルードする命令です。 だから、「require 'environment.pl';」の変わりに、 environment.plの内容をそのまま貼っておいてもいいです。 で、requireする場合、どのディレクトリからファイルを 探すかを決めるために、perlは@INCを参照するわけです。 ちなみに localtime(&timelocal(0,0,0,$day,$mon,$year)-60*60*24); で&timelocalを使うためだけにrequireしてます。 # timelocalはlocaltimeの逆変換をする関数です。 $nocgi は environment.pl でチェックしてる変数です。 うちのCGIはnobody権限でないと動かないようにしてる んですが、g2はCGIじゃないので自分の権限で動かす必要が あります。ですからそのチェックをすり抜けるための 変数です。とっぱらってください。 environment.plで使ってるのは、$nkf、$home、$httpdownだけ だと思うんで、上のところ全部削除して、 $home = "/home/rol"; $nkf = "/usr/local/bin/nkf"; $httpdown = "/home/rol/bin/httpdown"; とでも書いておけばいいでしょう。 timelocal.plはperlについてくると思うんですが、 なければあげますので言ってください。 あと if ( -f "$log_dir/$date.tgz" ){ system("mkdir -p $main_dir/"); print "extract $log_dir/$date.tgz\n"; system("$tar zxf $log_dir/$date.tgz -C $main_dir"); } これは、既にその日作ったアーカイブがあれば展開してます。 デバッグ時に一度落としたファイルを何度も落とすのは 時間の無駄ですから。 > 変数の名前から想像するに…過去ログを残す日にちかな? そのとおりです。 > 2って事は3日分残るって事でいいんでしょうか。 あい。変なプログラムですね(笑) |
|
まぁ簡単なプログラムだから、原理を理解したら 自分でスクラッチから書き起こすのもいいと思います。要は 1. 1_index.shtmlをGET 2. 1_index.shtmlからリンクされている*_ALL.shtmlをGET 3. 次のvolをGET(GETできなかったらおしまい) 4. tar zxvf 1998-xx-xx.tgz *.shtml(アーカイブを作成) 5. その日のリンクを作成 してるだけです。例えば5なんかは、SSIを使って 現在置いてある全てのアーカイブをリアルタイムで リストアップしてもいいですし。 |
|
昨日のおさらい (申し訳ないですが、しばらくお付き合い頂けると助かります) -wオプション なるほど。もし、このオプションをとった場合、どういう不都合が考えられるのでしょう? まぁこのスクリプトもある程度理解できるぐらいの知識はあるつもりなんですが Perlの仕様じたいは詳しくないので教えてください。 push なるほど。requireでインクルードしてくるファイルが2つあるのでpushも二つある訳ですな。 では、前のpushと後のpushとが、それぞれどちらのrequireに対応するんでしょうか? やっぱり先のpushがenvironment.pl、後のpushがtimelocal.plですか? timelocal.pl お手数をおかけして申し訳ないですか、下さい(笑) environment.pl ん〜、3つの代数ぐらいなら確かにスクリプト本体に組み込んじゃった方が早いですね。 そこは適当に書き換えときます…が、ここで新たな問題が発生。 $homeはディレクトリなんで分かりやすいんですけど、 $nkfこれが問題。これはファイルだと言うとこまでは理解できるんですが(サブルーチン内でオープンしてますから) このファイルってなんなんでしょう? ただのテンポラリとして使用しているんでしょうか? 後で出てくるサブルーチンをみても理解できないです(T_T) $httpdown…そもそもHTTPDOWNが何をするアプリケーションなのかが理解できてません(笑) if ( -f "$log_dir/$date.tgz" ){ system("mkdir -p $main_dir/"); print "extract $log_dir/$date.tgz\n"; system("$tar zxf $log_dir/$date.tgz -C $main_dir"); } つまり、このスクリプトでは、ダウンロードしたファイルを圧縮している訳ですよね。 ちゅうことはtarが必要な訳なんですが、UNIX自身をほとんど触った事の無い私には 正直言って手に余る部分です。 ってことで、この部分は全面的に改良して、非圧縮でやるとこを目標としときます。 で、本日のお勉強 get_today_time ここでの問題点は二つ。 1つはライブラリですが、これはライブラリがあれば解決できるので、正確には問題にならない。 2つめ…2000年問題!!! これ…独力でナントでもなるわ(笑) localtime()でとってきた$yearが98以下の時には $year+=1900; ではなく $year+=2000; にしちゃえば、百年間は大丈夫だからねぇ。 もっとも根本的な解決にはなってないが、それはシステムが対応せんとどうしようもないもんね。 このあたりUNIXの仕様は今後変わる予定ってのはあるんでしょうか? あぁ、やっぱりラクダ本買わないとだめだな… |
|
訂正 ocaltime()でとってきた$yearが98以下の時には>ocaltime()でとってきた$yearが98未満の時には 謹んで訂正致します。m(__)m |