68user's page 掲示板

Prev< No. 3066〜3100> Next  [最新発言に戻る] [過去ログ一覧]
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 さえ使ったことが
# ないので。

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