おはようです。 自作の掲示板ですか?スゴイですね。 .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 |
> ってことで、この部分は全面的に改良して、非圧縮でやるとこを > 目標としときます。 ん〜、圧縮しないと1MB近くになりますよ。 > なるほど。requireでインクルードしてくるファイルが2つあるので > pushも二つある訳ですな。 ちゃいます。timelocalはシステム標準のディレクトリ (/usr/local/lib/perl5/とか/usr/share/perl/など)に あるので、そのままrequireするだけでOKです。 pushが2つあるのは、このCGIをwww.cs.gunma-u.ac.jpと www.cc.gunma-u.ac.jpのどちらでも動作させるためのものです。 # まぁあれは僕の環境に合わせるための記述なので、 # 深く考えなくてもいいです。 > timelocal.pl というわけで、サーバがUNIXならまずそこに置いてあると 思うのですが、一応 http://X68000.startshop.co.jp/~68user/tmp/timelocal.pl に置いておきます。 > nkfこれが問題。 nkfはコマンドです。まず http://X68000.startshop.co.jp/~68user/unix/prgmemo.html#nkf を読んで、nkfの機能を知ってください。 で、DOSで A:\>type hogehoge | more などとパイプを使ったことあります? これは more < hogehogeと等価ですよね(多分…DOSは忘れた)。 それと同じで、 % nkf -e < hogehoge は % cat hogehoge | nkf -e (UNIXのcat=DOSのtype) と同じです。 つまり、落としたファイルはSJISなので、nkfを使って EUCに変換しているわけです。 # ところで、open(IN,"hoge|")とかopen(OUT,"|hoge") # という意味はわかりますか? httpdownについてはまた後で書きます。とりあえず、 UNIXで実際にhttpdownを動かしてみるのが一番わかりやすい ことは確かです。 それからtarですけど、 tar zxf hoge.tgz = lha e hoge.lzh tar zcf hoge.tgz *.shtml = lha a hoge.lzh という説明ではダメでしょうか。一応 http://X68000.startshop.co.jp/~68user/unix/prgmemo.html#tar も読んでください。 > 2つめ…2000年問題!!! ふふ…、いまだに2000年問題が残ってたら、強者揃いの UNIXハッカー連中がよってたかって直しにかかるでしょう。 localtimeが返す年は西暦-1900です。2000年なら100を返します。 なんで-1900かっていうと、やはり昔は2000年問題が残っていたので、 それとの整合性を取るためでしょうね。 あと一部のUNIXには2038年問題があります。1970年1月1日からの 経過秒数が、2038年あたりでlongでは表現できなくなるので。 > あぁ、やっぱりラクダ本買わないとだめだな… 別に質問するなって言ってるわけじゃないですけど (僕がお願いしたんだし)、-wなどマニュアルを見れば 載っていることは手元のラクダ本を調べた方が早いですよ。 僕に聞くと1日かかることも、ラクダ本があれば数分で 片付きます。 あと、過去ログ閲覧用スクリプトも設置する必要がありますが、 そこには s|$&|<a href="$toppage_url">$link_message</a>|; s|\Q$&\E|$tmp|; if ( m|<a href=.*?noteky_base\.cgi.*?>(.*?)</a>| ){ などが出て来ます。 $&、\Q〜\E、.*?など、ラクダ本がないとかなり困ることに なると思いますので、購入されることをお勧めします。 一応perl5のマニュアルは http://www.bekkoame.or.jp/~syunji/perl/man/index.html にありますが、最初は本で読む方がいいんじゃないかと 思います。 |
昨日のおさらい… >ん〜、圧縮しないと1MB近くになりますよ。 BIGのサーバーレンタルは50MBもらえるので 容量的には問題ないですね、というか、画像なしでどうやってこの容量をうめるかが問題だな(笑) >nkf 了解しました。 今までそういった文字コードの変換には「jcode.pl」を使ってたんですよ。 このコマンドがあれば「jcode.pl」いらないな。 そのわりにはCGIの本にはこれで文字コードを変換するようになってるんだけど、 なぜそんなことが必要なんだろう? nkfって特殊なコマンドなんでしょうか? ># ところで、open(IN,"hoge|")とかopen(OUT,"|hoge") ># という意味はわかりますか? 「パイプ」とか「リダイレクションパイプ」ですよね。 一応本読んでますけど、自分が作るCGIでは使った事ないんですよ。<へぼプログラマー この例だと、ファイルハンドルINやOUTにパイプを結び付けているってとこまではわかります。 open(OUT…)の場合、今後ファイルハンドルになにか出力すると、hogeにそのデータがわたされる…であってますか? >tar 説明が非常にわかりやすいです(笑) ただ、こういったプログラムをレンタルサーバー上で動かしてもいいのかなと思っちゃたりするんですけど… いいのかな?>サポートに連絡してみよう。 >ふふ…、いまだに2000年問題が残ってたら、強者揃いの >UNIXハッカー連中がよってたかって直しにかかるでしょう。 ぎゃぁぁぁぁぁ! めっちゃ恥ずかしい…(笑) そうなってたのかぁ、勉強になるなぁ(笑)<UNIXについての知識の少なさを露呈してますな(爆) >購入されることをお勧めします。 今日は忙しくて本屋に行く暇もなかったので、明日買ってきます。 ってわけで、今日はここまで。 仕事が忙しいの…(涙) |
> BIGのサーバーレンタルは50MBもらえるので まぁ今のところ他に使い道がないなら圧縮しないのも いいでしょう。 > そのわりにはCGIの本にはこれで文字コードを変換するように > なってるんだけど、なぜそんなことが必要なんだろう? nkfはただのUNIXコマンドなので、CGIの本の範疇を越えている ということでjcode.plを使っているんでしょうね。 僕はnkfの方が慣れてるのと、nkf使った方が多分速いから 使ってるだけですので、代わりにjcode.pl使ってもいいですよ。 > サポートに連絡してみよう。 どちらかと言えば(あくまでも「どちらかと言えば」ですけど) CPUパワー喰うので、嫌がるところは嫌がるでしょう。 んが、僕は 「CGIはperlの中で完結しなければならないということは ない。UNIXのコマンド使って何が悪い」 という人なので、僕的には完全にOKです。 > 「パイプ」とか「リダイレクションパイプ」ですよね。 です。openの最初や最後に|を付けると、コマンドとして 解釈されてそのコマンドが実行されるわけです。 |
BIGのサーバーどうやらnkf使わせてもらえないみたい。 しかも実験の結果、「system」もだめみたいです。 あかん、結構書き直しですな…(苦笑) |
> しかも実験の結果、「system」もだめみたいです。 え〜そんなことは…。もしsystemがダメならperlからは 子プロセス生成できないってことですよ。CGIとして動かすなら #!/path-of-perl $|=1; # これ大事。 print "Content-type: text/plain\n\n"; system("/bin/ls"); でうまくいくはずです。 > BIGのサーバーどうやらnkf使わせてもらえないみたい。 じゃあソース持ってってコンパイルしませう(70%本気)。 |
はじめまして。ミーという者です。 FreeBSDについてちょっと質問があるんですが、 私のパソコンでpppとやって、termでモデムとお話をしようとすると、 そこのところが御亡くなりになります。 あまり良く分からないので詳しく状況を書けないのですが、 考えられる原因を教えていただきたく思いまして、書きました。 よろしくお願いします。 |
ども、68userです。 僕もよく知らないんですが、 ppp ON X68000> term Working in interactive mode Entering terminal mode. Type `~?' for help. となったら、C-cもC-zも効かなくなるんですけど、 「そこのところが御亡くなりになります」 というのは、このことでしょうか? 「Type `~?' for help.」とある通りに、「~?」とタイプすると、 簡単なヘルプが表示されます。そこにも書いてありますが、 term modeを抜けるには「~.」と打ちます。packet modeに 戻るには、「~p」です。 で、 ppp ON X68000> term Working in interactive mode Entering terminal mode. Type `~?' for help. at(とタイプする。ここは表示されない) OK(と表示されたら、少なくともモデムは認識されているはず) atdt電話番号(とタイプする。ここは表示されない) CONNECT … とするらしいです。僕の環境ではこれでモデムが電話をかけて くれるんですが、手動でユーザ認証させる方法を知らないので、 ここまでしかわかりません。 あとは、環境(アナログモデム/ISDN)、ログの内容(/var/log/ppp.log)、 /etc/ppp/ppp.conf、/etc/ppp/ppp.linkupの内容などがわからないと なんとも言えないと思います。 |
>あとは、環境(アナログモデム/ISDN)、ログの内容 >(/var/log/ppp.log)、 >/etc/ppp/ppp.conf、/etc/ppp/ppp.linkupの内容などがわからな >いとなんとも言えないと思います。 そうでしたね。すみません。 ですが、ppp.confは、サンプルをデバイス部分だけかえているんですよ。 ppp ON mee>term Working in interactive mode Entering terminal mode. Type"~?"for help は出ます。 この時点で何も打てなくなります。 でないだけかと思って at [Enter] と打ってみても反応しません。 とりあえず、もう一回自分で調べてみます。 ありがとうございました。 |
やってみると、 ~. ~? は実行できました。~?は文字が化けていましたが... ただ、at は反応しません。モデムってカーネルの再構築必要なんでしたっけ? |
モデムは、sioデバイスで認識されます。なお、PCのシリアルポートも sio?で認識されます。僕の場合は、dmesgで sio0 at 0x3f8-0x3ff irq 4 on isa sio0: type 16550A sio1 at 0x2f8-0x2ff irq 3 on isa sio1: type 16550A となっていますが、sio0がシリアルポート、sio1がモデムです。 この場合、/etc/ppp/ppp.confには set device /dev/cuaa1 と書けばいいです。 PCによってはシリアルポートが2つ付いてる場合がありますが、 デフォルトのカーネルコンフィグは device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr device sio2 at isa? disable port "IO_COM3" tty irq 5 vector siointr device sio3 at isa? disable port "IO_COM4" tty irq 9 vector siointr となっているので、モデムが認識されません。 disableを削ってカーネルの再構築をするか、ブート時に boot: -cv で、sio2をenableにするといいでしょう。 # PCのBIOS設定で、シリアルポートを殺すこともできます。 # 僕のマシンはシリアルポートが2個なのですが、BIOSで # 1つ殺してあります。 pppのtermモードとは別に、cuで調べることもできます。 モデムが認識されてるなら、 % cu -l cuaa1 Connected. at(と入力) OK atdt電話番号(と入力) CONNECT 9600/ARQ/V34/LAPM/V42BIS で、モデムが電話をかけてくれます。 % cu -l cuaa0 % cu -l cuaa2 などとして、モデムが認識されているか確認してみてください。 もしsio?のいずれもモデムを認識していなかったら、PnPの問題ですかねぇ。 モデムカードの型番を元に、http://www.jp.freebsd.org/で調べてみると いいと思います。 |
ありがとうございました。 試してみると sio1 が type 16550A とでないで、たしか開けなかったと思います。 (sio0はちゃんと16550Aでした。) さっそく試してみます。 |
あの....非常に言いにくいのですが、 実はフロッピーディスクの使い方を知りません。 ひぃぃぃぃ。本当に素人なんです。 あの....フロッピーの使い方をある程度教えてもらえませんか? (もちろんFreeBSDでです。さすがに、Winでは使えます。) あ〜、恥ずかしかった... |
http://www.jp.freebsd.org/~yuki/FreeBSD/search.html から、「QandA」を対象に「フロッピー」をキーワードに検索すると 情報が得られますよ。 MS-DOSフォーマットのフロッピーならここ。 http://www.jp.FreeBSD.ORG/%7Eryuchi/QandA/HTML/640.html ufs(UNIX方式のフォーマット)のフロッピーならここ。 http://www.jp.FreeBSD.ORG/%7Eryuchi/QandA/HTML/350.html まずはQandAで探してみる癖を付けると、効率良く探しものが できると思います。 あと、一応僕もQandA projectに参加してますので「ここが わかりにくい」など意見を言ってくだされば、できるだけ 反映するように努力します。 |
なるほど。 フロッピーが使えました。 あの検索を使えばいいんですか。 ありがとうございました。 モデムは認識してくれないようだから ひとまず休憩としようと思っています。 つぎはgccです。 GNU GCCでしたっけ?これだとWin32のが作れるんですよね。 検索してみました。 良く分かっていないんですがね |
ちょうどFreeBSD-users-jpで同じ質問が流れてました。 # 上の名前のリンクから辿れます。 結論としては、 FreeBSDのGCCを使ってWin32アプリを作れないことはないけど、 普通はやらない。Win用のGCCを使うか、Visual C++を使った方が簡単。 ってところでしょうか。 |
初めて利用させていただきます。よろしくお願いします。 passwdコマンドを実行すると、ユーザーが存在しないという メッセージが返ってきて、パスワードを変更することができません。 passwd: user-name dose not exist /etc/passwdにもユーザはいるし、fingerでも確認できます。 passwdコマンドが壊れているのでしょうか? |
ども、初めまして。 OSはFreeBSDですか? だったら/etc/master.passwdが本当の パスワードファイルなので、そちらをまず確認されてはいかがでしょう? それから、passwd実行時には/etc/pwd.db、/etc/spwd.dbも同時に 参照されると思うので、そちらも壊れていないかチェックした 方がいいかもしれません。といっても、これらはテキスト形式では ないので、/usr/sbin/pwd_mkdbを使って作成しなおす、という ことになりますでしょうか。 |
追加。rootになって、 # pwd_mkdb /etc/master.passwd で、新しい/etc/pwd.dbと/etc/spwd.dbが、 # pwd_mkdb -p /etc/master.passwd で、新しい/etc/passwdが作られます。 FreeBSDなら、ですけど。 |
OSをきちんと明記してませんでした。すみません。 Solaris2.5.1です。 shadowファイルを、encryptして書きなおすという方法が あるようなんですが、 passwdコマンドの解決にはならないので、 どうしたものかと思っています。 |
OSをきちんと明記してませんでした。すみません。 Solaris2.5.1です。 shadowファイルを、encryptして書きなおすという方法が あるようなんですが、 passwdコマンドの解決にはならないので、 どうしたものかと思っています。 |
Solarisですかぁ…。僕はSolarisは全然知らないので、 ちょっと お力にはなれないと思います。すみません。 |
始めまして。 質問は、はじめてですがいろいろ拝見させていただいています。 そこで質問なのですが、 tarフォーマットのFDをwindowsNT上でMS-DOSフォーマットに 変換する事はできるのでしょうか? 方法や、そのようなソフトなどが有れば教えていただきたいのですが よろしくお願いします。 |
ども、こんにちは。 tarフォーマットのフロッピーは、フォーマットという概念はなく、 データがベタで書かれたものだと思います。 こういうベタで書かれたものは、UNIXなら % dd if=/dev/fd0 of=hoge % cp /dev/fd0c hoge % cat /dev/fd0c > hoge で取り出せます(ご存知かもしれませんが念のため)。 Win環境でUNIXのブートフロッピーを作る場合などは、rawrite.exeなど 使ってフロッピーにベタで書き込みますが、この逆のことをしてくれる ツールがあればいいのだと思います。 で、そういうツールはあるか、というと…わかりません(^^; rawrite.exeに読み出しモードがあるか調べるとか、Winのtarの マニュアルを調べてみる、とか…。 またまたお役に立てませんでしたね。 |
はじめまして UNIXのデータを、Windows95のパソコンで整理することはできないでしょうか? 私は、印刷会社に勤務して、パソコンのオペレータをしております。 で、勤め先なのですが、UNIXをOSとする組版機(業務用のワープロですね) を使って、印刷の版下を編集・制作しています。 ところが、社内にUNIXの分かる人間が皆無で、これまでに蓄積した膨大なデータを 効率的に管理する方法が分かりません。 一応、組版機同士はLANで結ばれ、ハードディスクやMOなども、導入されており、 編集の段階では使っているのですが、作成後のデータの管理には、役に立っていないよう です。 このため、編集後のデータはフロッピーディスクに保存して、手書きの台帳で管理して います。 すでに、何千枚ものフロッピーが、保管されているのですが、未だに、月百枚ペースで 3.5インチのFDが増え続けています。 何とかしたいと思うのですが、残念ながら、私もUNIXは全く素人です。 で、思い立ったのですが、UNIXのデータが書き込まれたFDを、ウィンドウズの パソコンで読み込み、ハードディスクに保存する方法はないものでしょうか? とりあえず、FDの読み書きと、ハードディスクへの転送ができれば良いのです。 ネットワークの構築も、プリンタの接続もいりません。 原始的な使用法とは思いますが、それだけでも大助かりです。 まことに恐れ入ります、どなたか糸口だけでもご教示下さい。 よろしく、お願いいたします。 |
ども、ごぶさたです。 遂に胃カメラ飲むとこまでいってしまったROLです。 いや、きいてはいたけど苦しいもんですね、あれは…(涙) さてさて、例のスクリプトの件ですが、 telnetで調べた結果サーバー側にnkfとtarはあることが判明。 サーバーの管理者から使用許可をいただきました。 あとはhttpdownなんですが、きちんとインストールするのであれば 使用してかまわないとのことでしたので、 httpdownをインストールして、スクリプトはそのまま使う方向にかえました。 というか、openで他のサーバーのファイルを開こうとするとエラーを起こすみたいなんですけど httpdownを使ってるのって、これのからみなんでしょうか? |
1. 「組版機同士はLANで結ばれ」ということで、そのLANにWinマシンを繋げて、 FTPでファイル転送する(ほんとはファイルサーバでデータを共有できれば いいんでしょうけど)。 2. 「ハードディスクやMOなども導入されており」ということで、UNIXで作ったMOを Winマシンで読む。 3. 「ハードディスクやMOなども導入されており」ということで、(UNIX上から) MOに編集後のデータを保存しておく。 あたりでしょうか…。 1なら、ケーブル繋げてWinマシンにIPアドレスとネットマスク設定して、(もし必要なら) DNSサーバのIPアドレス入力するだけでOKかと思います。 2だとUNIXで作ったMOのフォーマットがufs(UNIXフォーマット)か、DOSフォーマットか、 あるいはそれ以外か、というところで引っかかるかもしれませんね。 3がお手軽かと思うんですが、ちょっと文面からはわかりませんが、MOやHDDでなく フロッピーで保存しなければならない事情があるんでしょうね。 > すでに、何千枚ものフロッピーが、保管されているのですが、未だに、月百枚ペースで > 3.5インチのFDが増え続けています。 うーん、それは大変ですねぇ(^^; 数千枚のFDをコピーするのは嫌だなぁ。 でも本当に困っておられるなら、ソフト屋やネットワーク屋に金を払って、 UNIXとWinマシンでデータを共有できるようにするとか、UNIXあるいはWin上での 台帳管理ソフトを作ってもらう、ってのをお勧めしますよ。 # ↑不況を知らない学生の発想かも。社会に出ると上司に # 「そんなものに金は出せん。君がなんとかしろ!」 # とか言われるのでしょうか(^^; |
> というか、openで他のサーバーのファイルを開こうとするとエラーを > 起こすみたいなんですけどhttpdownを使ってるのって、これのからみなんでしょうか? えっと、ちょっと状況がよくわかりませんが、 とりあえずhttpdownの使い方を説明します。 level 1 (1段階リンクをたどる) httpproxy http://proxy.hogehoge.com:8080/ (proxyを使うなら) reportlevel 2 (なくてもいいです) start http://www2.sega.co.jp/bbs/t/test/1_index.html (落としたいURL) という内容のhttpdown.cnfというファイル(ファイル名はなんでもいいですが)を 作って、コマンドラインから % httpdown httpdown.cnf とすると、カレントディレクトリ以下に www2.sega.co.jp/bbs/t/test/1_index.html が作成されます。それに相当することをg2で行っているのが、 sub download { open(OUT,">$base_dir/sega2.def"); print OUT "level 1\n"; print OUT "httpproxy $proxy\n"; print OUT "reportlevel 2\n"; print OUT "start http://www2.sega.co.jp/bbs/t/test/$_[0]\n"; close(OUT); system("$httpdown $base_dir/sega2.def > /dev/null"); } openで読めるのは、そのサーバ上にあるファイルだけですから、 こうやって一度ファイルを落とした後にopenして読み込むわけです。 その前に、httpdownのコンパイルは終りましたか? http://www.mechatronics.mech.tohoku.ac.jp/~kumagai/bins/kuma/httpdown-3.13.tar.gz を落して、UNIX上で、 % gzip -dc httpdown-3.13.tar.gz | tar tvf - でアーカイブの一覧が見られます。 % gzip -dc httpdown-3.13.tar.gz | tar xvf - で展開です。そしたらhttpdown313というディレクトリが出来ているはずなので、 % cd httpdown313 % make とすると、コンパイルが始まって、そのディレクトリにhttpdownというコマンドができます。 もしコンパイル中にエラーで止まってしまったらMakefileを修正すればいいでしょう。 # その場合、uname -aの結果とmakeした結果全てを見せてください。 > 遂に胃カメラ飲むとこまでいってしまったROLです。 会社に入るとやっぱりストレス溜るんでしょうか… お大事に… |
makeの結果こういうメッセージが出ました。 エラーですね -------- gcc -c http.cc gcc -c parse.cc gcc -c flist.cc gcc -c httpdown.cc gcc -c url.cc gcc -c ftp.cc gcc -c makedef.cc gcc -c match.cc gcc http.o parse.o flist.o httpdown.o url.o ftp.o makedef.o match.o -o httpdow n -lresolv ld: cannot open -lresolv: No such file or directory make: *** [httpdown] Error 1 ------------ でMakefileの内容です ---------- # makefile for httpdown # please use c++ compiler CC = gcc # # linker library options # # default(SunOS 4.1.1-JL 1 sun4c) LIBS= -lresolv # SunOS 5.5 Generic sun4c sparc # LIBS= -lnsl -lsocket -lresolv # SunOS 4.1.4 2 sun4m # LIBS= -lresolv -l44bsd # AIX # LIBS= # Linux # LIBS= # HP-UX # LIBS= # if some errors with 'gethostname' occured, try to comment out # next line. # GETHOSTNAME = -DNEED_GETHOSTNAME # if debugging (for core dump analysis) # DEBUG = -g # compile option COPT = $(GETHOSTNAME) $(DEBUG) OBJS = http.o parse.o flist.o httpdown.o url.o ftp.o makedef.o match.o httpdown: $(OBJS) $(CC) $(COPT) $(OBJS) -o httpdown $(LIBS) urlget: urlget.o url.o ftp.o http.o $(CC) $(COPT) urlget.o url.o ftp.o http.o -o urlget $(LIBS) http.o: http.cc http.h url.h $(CC) $(COPT) -c http.cc ftp.o: ftp.cc ftp.h url.h $(CC) $(COPT) -c ftp.cc url.o: url.cc url.h $(CC) $(COPT) -c url.cc parse.o: parse.cc httpdown.h $(CC) $(COPT) -c parse.cc flist.o: flist.cc http.h httpdown.h $(CC) $(COPT) -c flist.cc makedef.o: makedef.cc $(CC) $(COPT) -c makedef.cc httpdown.o: httpdown.cc httpdown.h http.h url.h ftp.h $(CC) $(COPT) -c httpdown.cc urlget.o: urlget.cc $(CC) $(COPT) -c urlget.cc match.o: match.cc match.h $(CC) $(COPT) -c match.cc ---------- ここまでくるとワシには何がなんやらさっぱり(笑) |
Makefileの LIBS= -lresolv を LIBS= に変更して もっかいmakeしてください。 > ここまでくるとワシには何がなんやらさっぱり(笑) C言語はソースコードをコンパイルするとともに、既に コンパイル済の部品(=ライブラリ)を組み合わせて(=リンクして) バイナリを作成するんです。 そのコンパイル済の部品の名前が、OSごとに少しずつ違う わけです。例えば -lresolv は /usr/lib/libresolv.aが あることを期待しているんですが、ROLさんとこのサーバには そのファイルがなかったのでエラーになったわけっすね。 |
>openで読めるのは、そのサーバ上にあるファイルだけですから、 >こうやって一度ファイルを落とした後にopenして読み込むわけです。 あ、やっぱり。 openって他のサーバーのファイルは開けないのか。 おかげで、httpdownの役割というか重要性も理解できました。 あとは各ディレクトリの設定をやり直すだけで取りあえず動くはず… でも、この脱力感はなんでしょうね? 過去ログをとるスクリプトを理解することが目的になってしまってるような気がする。 っていうか、あそこの現状を見るに、過去ログそのものの 存在の意義を見出せなくなってきている自分に気がついた… |
お師さん、こんにちは。 「その他」での書きこみを見て、ふと気がつくと… 何故か手元にFreeBSD 2.2.Jの箱が… と、いうわけで、性懲りも無くまた手をだしてしまい ました。まあ、ゆっくりとやっていきますです。 で、さっそく質問ですが…(^^; Xの画面(解像度)の事なんですが、僕の設定では 1280*1024でちょうどXの画面がディスプレイのワクに ばちっとはまるようになっているのですが、解像度を 変えると(800*600等)画面がディスプレイのワクから はみでてしまいます。ただ、カーソルを画面のワクの ほうへ動かせばスクロールするので使用するのには 別に問題はありませんが、「解像度が変わっても ディスプレイのワクにばちっとはまんねーかなぁ」 とふと思ったので、ちょっとお聞きしたかっただけです。 お師さんの画面ではそういう問題はありませんでしたか? |
あ…2.2.6Jだった。6を落としてしまった。 失礼しました。 それでは。 |
> 解像度を変えると(800*600等) これは、Ctrl-Alt-`+'などで解像度を変更した場合ですか? もしそうなら、ルートウィンドウサイズはそのままで、画面の 一部分を拡大しているだけなので、無理なんじゃないかなぁ。 あるいはウィンドウマネージャの再起動でなんとかなるかも しれませんが…。 後から試してみます。 > あ…2.2.6Jだった。6を落としてしまった。 高級なパッケージをお持ちで(笑) > でも、この脱力感はなんでしょうね? 興味のないことを無理にやってても つらいだけなのは 十分理解できますので、やめちゃってもいいですよ。 こんなの義務でも何でもないんだし。 どーでもいいことやってても、それはただの時間の浪費です。 どうなさるかは おまかせします。 |
なるへそ。なんとなくわかった(ような)気がします。 >これは、Ctrl-Alt-`+'などで解像度を変更した場合ですか? そうです。だって、設定ファイル(でしたっけ)等の いじりかたがまだよくわからないので、お手軽にでき る方法しかやってませんのですよ。 でも後は自分でなんとかなると思います。 (でもいつになることやら。過去ログのリジェクトログ 付きの文を無理やり見る方法を教えてもらった時は 教えてもらってからできるまで○ヵ月かかってたしなぁ… あ、やべっ!また怒られちゃう(^^;) ご教授どうもでした。 |
>どーでもいいことやってても、それはただの時間の浪費です。 >どうなさるかは おまかせします。 ん〜、取りあえずスクリプトが動くようになるまで、 がんばってみるつもりです。 ただ、スクリプトがマトモに動いたからといって、 ログをとるかどうかはそのときの気分次第っていうことで(笑) だってすでに目的と手段が入れ代わってるんだもん(爆) |
> だってすでに目的と手段が入れ代わってるんだもん(爆) A4集計を始めた理由 1. httpクライアントが書けたから。 2. POST形式のデータ送信方法がわかったから。 3. こんなことができるんだぞ〜と自慢したかったから。 最初から動機が不純でした(笑) |
UNIXでの日本語環境のことしりたいです! |
どもども、ROLっす。 g2のその後ですが、スクリプト自身は動いてるようなんですが test-logディレクトリに1998-12-19.tgzと testbbs-log.htmlの2ファイルはできてます。 でも、できてるだけ。 容量がそれぞれ1kと0K。 どうやらhttpdownでうまく落とせてない模様。 おっかしいなぁ??? プロキシがおかしいのかな??? プロキシってどこのでも問題ないですよね? |
$base_dir = "$home/test00"; # 作業用ディレクトリ が存在しないのではないでしょうか。別のディレクトリ名に していただいてもOKです。 $home/test00/sega2.def にhttpdown用の設定ファイルを作って、httpdownは $home/test00/www2.sega.co.jp $home/test00/www2.sega.co.jp/bbs $home/test00/www2.sega.co.jp/bbs/t $home/test00/www2.sega.co.jp/bbs/t/test と再帰的にディレクトリを掘っていきます。 ぱかぽこさん: > UNIXでの日本語環境のことしりたいです! 「UNIXでの日本語環境」と言っても ・FreeBSDかLinuxか、あるいは その他のUNIX系OSか、 ・Linuxなら、どのディストリビューションか などで結構違いますので、これだけではなんとも… |
User Agent統計を見て… HI-UXは、僕です(^^;。 なんでも日立のHI…なのかどうかは知りませんが、 とにかく日立が関係してるようです。 そんだけしか知らない…(汗) また、ブラウザのchimeraも僕です(たぶん) なんかいろいろ試したかったもんで。 いや、だからなんだってわけじゃあないんですが。 |
&init_work; # ディレクトリ作成 & tarball展開 exit; としてテストを実行してみたところ、サーバーからエラーがかえってきています。 その状態では確かにtest00はできてます。 なので&init_work;の後半部分 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"); } が問題なんでしょうね…多分。 で、ここの if ( -f "$log_dir/$date.tgz" ){ の-fが何なのかが全然分かってないので、手がつけられないんですが… |
> とにかく日立が関係してるようです。 どうもです。早速更新しました。 > が問題なんでしょうね…多分。 事前に ~/test00 と ~/public_html/test-log をmkdirして おけば大丈夫だとは思うんですが、どうでしょう。 > の-fが何なのかが全然分かってないので 本買いましょ〜。 ファイルが存在するかどうかのチェックです。/hoge/file というファイルが存在すれば、-f "/hoge/file" は真に なります。 # 他には # -f ファイルがあるか # -d ディレクトリがあるか # -r 読み込み権限があるか # てな感じです。あと20個くらいはあったはず。 既にその日のアーカイブが存在する →少し前にg2を実行した →いちいち全部落とすのは時間がかかる →事前に展開しておけば、時間の節約 というわけで、動作チェックをしている場合は # if ( -f "$main_dir/$1" ){ next; } の行のコメントをはずすと、既にあるファイルは落とさなく なるはずです。 今日の分をもちまして過去ログ作成は終了しますので、 あとはROLさんにまかせたっ。ではではでは。 |
すんません、お師さん。原因はそれじゃないみたいです。 ちょこちょこかえて、「$base_dir/www2.sega.co.jp/bbs/t/test/」ディレクトリが出来るとこまでは確認しましたが、 「test00」内に「sega2.def」と「sega2.def~」が出来てます。 で、$base_dir/www2.sega.co.jp/bbs/t/test/内に何もダウンロードされてません。 「sega2.def」の中身を見ると 「reportlevel 2 start http://www2.sega.co.jp/bbs/t/test/1_index.shtml >following lines are automatically generated by httpdown E http://www2.sega.co.jp/bbs/t/test/1_index.shtml」 ってなってます。 これはつまりHTTPDOWNが巧く働いてないって事ですよね? これはなんでなのかわかんないっす。 もういいかげん、いやになられたとは思いますが、すみませんが ご教授くださいませ。 |
sega2.defの内容を level 1 start http://www2.sega.co.jp/bbs/t/test/1_index.shtml にして試してみてください。 # コマンドラインから % httpdown sega2.def それでもダメなら level 1 httpproxy http://hoge.fuga:8080/ start http://www2.sega.co.jp/bbs/t/test/1_index.shtml と、適切なproxyを設定してやるとどうなりますか? |
追加 それぞれ出来たsega.defの内容です。 sega2.def~ 「level 1 httpproxy http://www.cs.gunma-u.ac.jp:8080/ reportlevel 2 start http://www2.sega.co.jp/bbs/t/test/1_index.shtml」 sega2.def 「level 1 httpproxy http://www.cs.gunma-u.ac.jp:8080/ reportlevel 2 start http://www2.sega.co.jp/bbs/t/test/1_index.shtml >following lines are automatically generated by httpdown E http://www2.sega.co.jp/bbs/t/test/1_index.shtml」 実はproxyを2、3変えて実験してみたんですが、 同じ内容しか出来ないのでオリジナルの g2の「httpproxy http://www.cs.gunma-u.ac.jp:8080/」に してみた結果がこれです。 やっぱり、CGIを動かすサーバーのPROXYを設定したほうがよいのでしょうか?HTTPDOWNには…? |
えっと、www.cs.gunma-uのproxyには、外部の人は接続できないはずです。 いつも使っているproxyを設定してください。 もしサーバ上から % telnet www.sega.co.jp 80 GET / HTTP/1.0(リターン) (もいっかいリターン) として、HTMLが出力されるならproxyは必要ないはずですが、 もしダメなら適切なproxyを設定する必要があります (外部のポート80宛のパケットは通さない設定なのでしょう) |
% telnet www.sega.co.jp 80 GET / HTTP/1.0(リターン) (もいっかいリターン) 実行したらHTMLが出力されました!!! ってことで、変数の定義の所の $proxy =以下と &download内の print OUT "level 1\n"; print OUT "httpproxy $proxy\n"; の2行を削除して、やってみます!!! |
はじめまして。 えっと、学校の端末でzipを解凍することはできないんですか? そもそもunixではzipはだめなのですか? おしえてください |