68user's page 掲示板

Prev< No. 1316〜1338> Next  [最新発言に戻る] [過去ログ一覧]
No. 1316 # たかぽん 2000/11/06 (月) 15:08:26
UNIXの/var/adm/crashディレクトリについての質問です。
最近仕事でHP−UNIXを使用しているのですが、/var/adm/crash
ディレクトリに、「core〜」、「bounds」のディレクトリが作成されて
しまい、/var の領域が100%になってしまいます。
「core〜」については、削除しても良いと本に載っていたのですが、
「bounds」については、削除してよいか分からないです。
どなたかご存知の方いらっしゃいましたら、お教えください!
よろしくお願いします!

No. 1317 # 68user 2000/11/06 (月) 15:47:58
HP-UX は知りませんが、マニュアル savecore(1M) には
> savecore saves the core image in the file
> dirname/hp-core.n and a copy of dumpsystem, which contains the
> namelist, in the file dirname/hp-ux.n. The trailing n in the path
> names is a number that increases by one every time savecore is run in
> that directory. This number is kept in the file dirname/bounds, which
> is created if it does not already exist.
とあるので、消してもいいんでないでしょうか。

No. 1318 # みーたん 2000/11/06 (月) 16:04:29
「SSLプログラミング」に関する質問です。

サーバー・クライアント間でSSL通信を行っている状態のものに、
「プロキシプログラム」なるものを両者の中間に介在させた場合
について・・。

サーバー・クライアントの「メッセージのやりとり」をログファイル等に
出力したいのですが、当然この両者は「暗号」によるデータのやりとりを
している為に「メッセージ」に関しては???と言った状態です

この暗号を「解読」と言った事は出来ないものでしょうか?

No. 1319 # いえろーばっくす [E-mail] 2000/11/06 (月) 16:04:44
どうも。いえろーばっくすです。
68user様、windowの件ありがとうございました。
今やってみたところちゃんと閉じることができました。
ボタンの表示もちゃんと直りました。
これからもいろいろと質問することがあるかもしれませんが、
どうぞよろしくお願いします。

No. 1320 # M.K 2000/11/06 (月) 19:25:00
はじめまして。

日付,時間,なまえ,・・・
日付,時間,なまえ,・・・
日付,時間,なまえ,・・・

といったようなログから当日分のみを抜き出し他のファイルに保存する。
といったようなバッチを作りたいのですが、
UNIX初心者でさっぱりわかりません。どなたか教えていただけませんか?

No. 1321 # 68user 2000/11/06 (月) 21:22:52
@みーたんさん
盗聴できるかということならば、無理です。なぜなら SSL は
公開鍵と秘密鍵を使うから。盗聴によって公開鍵を盗めても、
秘密鍵はクライアント・サーバそれぞれが保持していますので、
データは守られます。
# という説明でわかってもらえるかしら。

@M.K さん
sh スクリプトで書きたいとか、perl を使いたいくらいは
書きましょうよ。こちらがサンプルを書いても、「いえ、
そうじゃなくて…」という返事はもらいたくないので。

まぁ 一言でいうと、date コマンドで現在日時を取得し、それを
キーとして grep です。date と grep のマニュアルを読みましょう。

No. 1322 # HAMA 2000/11/07 (火) 01:08:55
はじめまして。

当方cshシェル環境にてUNIXを利用しております。
その環境設定で「カレントディレクトリをプロンプトに追加」というのがありますが、
ディレクトリの移動によって「今現在どこに居るか」というのを表示させたいのです。

set prompt = "`whoami`@`hostname -s`[\!][`pwd`]%"

のように `pwd` をつけてもsourceコマンドによって.cshrcを再有効に
した時点でのカレントディレクトリが格納されたまま変化してくれません。

ディレクトリの移動に応じてプロンプト上に表示されるカレントディレクトリを
逐次変化させるためにはどの様に.cshrcを書き換えれば良いのでしょうか?
`pwd`の部分を$cwdとかに変えてもダメだったし...ほとほと困っております。

参考までに、現在の.cshrcの内容を書いておきます。

alias dir 'ls -alF'
alias less 'jless'

setenv LANG japanese
setenv EDITOR vi
setenv PAGER less
setenv BLOCKSIZE K
setenv EXINIT 'set showmode'
setenv LESSCHARSET japanese

set prompt = "`whoami`@`hostname -s`[\!]%"

なお、FreeBSD3.4R上での環境です。
どうかよろしくお願いします。

No. 1323 # つかさ 2000/11/07 (火) 05:27:26
C言語を覚えたいのですが
どなたかC言語を教えに来ていただけませんでしょうか。
兵庫県姫路市
ho-muzu@mui.biglobe.ne.jp
メールください。

No. 1324 # rosegarden 2000/11/07 (火) 07:43:30
> ディレクトリの移動によって「今現在どこに居るか」というのを表示させたいのです。

とりあえず、こんなんでどうでしょうか? テストは tcsh でやったので、
断定的なことは言えませんが、古い csh と互換性のある構文を使っています。

alias sp 'set prompt=`whoami`@`hostname -s`\[`pwd`\] '
alias cd "cd \!* ; dirs -l ; sp"
alias pushd "pushd \!* ; sp"
alias popd "popd ; sp"

ポイントは set prompt の alias をシングルクォートで囲むところですかね。
あと、cd, pushd, popd のごとに prompt の set をするということですね。
4.1-RELEASE 以降だと /bin/csh は tcsh なので、もっと簡単に出来ます。
たしか %/ とかいうのを使えば、良いだけだったと思います。

No. 1325 # HAMA 2000/11/07 (火) 09:18:00
rosegardenさんへ>

>ポイントは set prompt の alias をシングルクォートで囲むところですかね。
>あと、cd, pushd, popd のごとに prompt の set をするということですね。

なるほど。cdコマンドを使うたびにset promptするんですね。
ためしてみたところ、確かに出来ました。

>たしか %/ とかいうのを使えば、良いだけだったと思います。

これは知りませんでした。tcshの利用が可能なマシンがあるので
試してみましたが、ホントですね。うーん、こっちの方が簡単だなぁ。

でもメインのマシンはシェルの変更を許可してくれないので、
alias方式で行きます。どうもありがとうございました。

No. 1326 # 68user 2000/11/07 (火) 10:15:40
> でもメインのマシンはシェルの変更を許可してくれないので
僕は sh・csh のような非人間的なシェルを使うのは耐えられない
ので、そういうときは勝手に tcsh を入れて、~/.cshrc に
    if ( ${?tcsh} == 0 ) then
        exec /usr/local/bin/tcsh
    endif
などと書いてます。

前にちょっとはまったことを書いておきますと、これをするなら
~/.cshrc に setenv TERM vt100 などと書いてはいけません。
普通にログインするときはいいのですが、もし端末がない場合
(rsh を使う場合など) は、tcsh が端末があると勘違いして
入力待ちになってしまい、rsh が効かなくなるからです。

Solaris などで、デフォルトだと TERM=kterm になってしまい、
さらに /etc/termcap に kterm のエントリがないため、vi や
emacs を実行すると文句を言われるので仕方なく setenv TERM vt100
と書いている人もいると思いますが、それをするなら
    if ( ${?TERM} ) then
        setenv TERM vt100
    endif
と書けばいいです。これなら rsh のときは TERM が設定されません。

No. 1327 # FTPについて調べている者 2000/11/07 (火) 13:01:58
はじめまして。今UNIXにおいてのプロセス間通信として、
FTPをモデルとして調べていて、ここのHPにたどりつきました。
ものすごく参考になってます。で、聞きたいことがあります。
聞きたいことは、FTPクライアントのプログラムでのことですが、
C言語版での、GET及びPUTなのですが、GETの場合は、Perl同様に
soketより手に入れたデータをfopen関数を用いてのそのデータをGetしたファイルと同じ名前で保存することでGETされるのですか?PUTも同様ですか?
また、FTPサーバーでは、LESTやGETやPUT
のプログラム上では、どのような動きをしてるのでしょうか?
自分なりには、イメージがあるのですが自信がないので教えてもらい
たいです。
こちらの勝手なお願いですが、今週中までに返事を掲示板のほうでいただけると大変助かります。

No. 1328 # たん 2000/11/07 (火) 14:41:10
初歩的な質問ですが,
AIXを触り始めたのですが,
telnetでrootのログオンを許容しているのを
やめたいのですが,
設定ファイルがわかりません。
どのファイルにその設定が書いてあるのでしょうか?

あと,tcshをmakeするとEUCコードで作成されてしまいますが
AIX用(SJIS)での作成方法もご存知の方,お教え願います。

よろしくお願い致します。

No. 1329 # 68user 2000/11/07 (火) 15:55:40
> telnetでrootのログオンを許容しているのをやめたいのですが,
AIX は管理したことも使ったこともありませんのでわかりません。
init, pam, login, tty, ttys などのマニュアルを探してみてください。
    FreeBSD なら /etc/ttys
    Solaris なら /etc/default/login
    Linux なら /etc/security
あたりなので、/etc の下に片っ端から grep かけてみる
のもいいでしょう。
    cd /etc; egrep -i 'secur|root|login' * */* */*/*


> soketより手に入れたデータをfopen関数を用いてのその
> データをGetしたファイルと同じ名前で保存する
そうです。C でも perl でもやることは同じです。

> FTPサーバーでは、LESTやGETやPUT
> のプログラム上では、どのような動きをしてるのでしょうか?
コマンド用コネクションから RETR hoge が送られてきたら、
データコネクションを確立し、hoge のファイルを fopen して
データコネクションに hoge の内容を流します。

コマンド用コネクションから LIST/NLST が送られてきたら、
データコネクションを確立し、/bin/ls の結果 (別に ls を
使わなくてもいいけど) をデータコネクションに流します。

> 自分なりには、イメージがあるのですが自信がないので
> 教えてもらいたいです。
自分なりのイメージを書いた上で、それが合ってるか間違ってるか
たずねるのがスジというものでしょう。

No. 1330 # かりり 2000/11/08 (水) 04:44:11
質問というか、ご意見頂きたいです。
掲示板が荒らされたなら、制限したり削除できますが
メールが大量に届いたり本文が最悪なタグの羅列だった場合
どうすればいいんでしょうか?明日も変なメールきそうで
カナリ、不安です。これって警察に言えたりするものなのでしょうか?
迷惑防止条例とか。

http://www.alles.or.jp/~tll/toc/hino.html

No. 1331 # ppa 2000/11/08 (水) 11:56:14
Perlの質問です。

2000/10/01の三日まえを表示したいのですが
どのようにやれば良いでしょうか?

宜しくお願いします。

No. 1332 # 68user 2000/11/08 (水) 13:28:05
> 2000/10/01の三日まえを表示したいのですが
Time::Local で time_t 形式に変換し、3日分の秒数を引いてから、
再度 localtime で年月日の形式に戻します。
    use Time::Local;
    $time = timelocal(0,0,12,1,10-1,2000-1900);
    $time -= 60*60*24*3;
    ($sec,$min,$hour,$day,$mon,$year) = localtime($time);
    printf "%4d/%02d/%02d",$year+1900,$mon+1;


> メールが大量に届いたり
メールが何通届いていて、それぞれサイズはどれだけか、という
ことは、メール本文を取得する前に調べることができます。
また、これはメールサーバにもよりますが、あるメールの先頭
何行のみを取得、ということもできます。そういう機能を持つ
メーラーを探してみてはどうでしょうか。
    % telnet メールサーバ名 110
    USER your_user_name
    PASS your_password
    LIST (メール一覧とサイズ表示)
    TOP 1 3 (1通目のヘッダと本文3行のみを表示)
    QUIT (終了)

> 本文が最悪なタグの羅列だった場合
Windows はよく知らないんですが、HTML メールが送られて
きたら、HTML として開くか plain text として開くかを
確認してきませんか? 聞いてこないなら、まともなメーラーに
かえましょう。

No. 1333 # M.K 2000/11/08 (水) 14:13:23
68userさん > こないだは説明が足りずに済みません。助かりました。
またしても質問なんですが、
sh スクリプトで2つのファイルの内容が完全に一致した場合に
aというファイルに 日付,"一致"(文字列)を出力して、
一致しなかった場合には 日付,"不一致"(文字列)を出力したいんですが
全然わかりません。よろしかったら教えてください。

No. 1334 # 68user 2000/11/08 (水) 15:21:31
ファイルの比較には cmp か diff を使います。一致
したかどうかはコマンドの戻り値を見ればよいですが、
sh なら $? で参照できます。あとはマニュアルを
よく読んでみてください。

No. 1335 # as 2000/11/08 (水) 16:35:03
No.1269で、超初心者さんがやってたのと同じように、CGIからexpectスクリプト
を呼び出して、他のマシンにtelnetしてパスワードを変更するシステムを作って
いるんですが、telnetで戻ってきた文字が一部うまくexpectに渡されないようで
途中で止まってしまい、上手くいきません。

そこで$|=1にして出力を見たら、以下のところで止まっている事が分かりました。

spawn telnet server
Trying xxx.xxx.xxx.xxx ...
Connected to server.xxx.xxx.
Escape character is '^]'.

”Escape character is '^]'.”の後に、CRLFが来るんですが、それから先が上手
くexpectに渡されていない(?)ようです。

HTTPdがCRLFだから止めてしまっているんでしょうか?
それってHTTPdの仕様なんでしょうか?
exec 'expect';の後のprint文はexpectのtimeout後に出力されます。

どこで止めてしまってしまっているかを調べる方法や解決方法など、アイディア
がありましたら教えてください。

No. 1336 # 68user 2000/11/08 (水) 22:25:40
僕は expect 使ったことありませんのでわかりませんが、せっかく
perl を使っているんですから、Net::Telnet モジュールでやって
みてはいかがでしょう。
    use Net::Telnet;
    $t = Net::Telnet->(Timeout=>10, Prompt => '/\w+?@\w+?: /');
    $t->open('hostname');
    $t->login('yourname', 'password');
    @lines = $t->cmd("/bin/ls -l");
    print @lines;
    $t->close();
言うまでもないかもしれませんが、Prompt のところは適切に
変更しないと動きません。詳しくは perldoc Net::Telnet をどうぞ。

No. 1337 # 68user 2000/11/08 (水) 23:17:49
うーん、むずかしい…。全然理解してないことがよくわかった。
すごく汚くて変な書き方ですがこんな感じ。

    use Net::Telnet;
    $username='yourname';
    $oldpasswd='secret1';
    $newpasswd='secret2';
    $t = new Net::Telnet (Timeout => 5, Prompt => '/\w*? /', Dump_Log => 'telnet-log');
    $t->open("localhost");
    $t->login($username, $oldpasswd);
    $t->prompt('/Old password:/');

    $t->cmd("/usr/bin/passwd");

    $t->print("$oldpasswd\n");
    ($prematch,$match) = $t->waitfor('/[a-zA-Z ]+:/');
    print "[$prematch] [$match]\n";

    $t->print("$newpasswd\n");
    ($prematch,$match) = $t->waitfor('/[a-zA-Z ]+:/');
    print "[$prematch] [$match]\n";

    $t->print("$newpasswd\n");
    ($prematch,$match) = $t->waitfor('/[a-zA-Z ]+:/');
    print "[$prematch] [$match]\n";
    $t->close();

適当に $match の結果に応じて、パスワードが違うやら、
新しいパスワードが短いやら出力すればいいのかな。
expect の方がすっきり書けるような気も。

No. 1338 # 68user 2000/11/08 (水) 23:42:20
やっぱ僕がやるとしたら pw コマンドの wrapper 作って、
それを root に suid するなぁ。passwd の挙動を
全て把握するのは厳しい。

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