68user's page 掲示板

Prev< No. 3064〜3086> Next  [最新発言に戻る] [過去ログ一覧]
No. 3064 # 68user 2003/01/24 (金) 06:26:56
>>3059 山田
> zipに制限があるのは確認したのですが、compressは確認していません。
> tarで試してみます。
おっと、tar と書いたのは指がすべりました。compress の
間違いでした。

要は、OS の制限として 2GB 以上のファイルを扱えない仕様
なのか、compress や zip の制限なのかを明らかにしましょう、
ということです。

そういうのには興味がなくて、とにかく圧縮したいのなら
split して zip なり gzip なり compress なりすればよい
でしょう。

>>3061 has
> OSの種類については
> % uname -s
Linux カーネルが 2GB over ファイルに対応したのは最近の
ことだし、Solaris なら 7 以降 (2.6 なら -largefile
オプションで可能らしい)、uname -a でバージョンまで
聞き出すのがよいかと思います。


>>3060 山岸 信一
補足すると、コンピュータにとってはプログラム (実行可能なもの) も
データ (例えばテキストファイルとか画像ファイルとか) も、ただの
ファイルとしか見えません。

なので人間が「このファイルは実行可能である」と教えてやらないと
コンピュータはプログラムを実行できないわけです。

で、UNIX では実行権限 (x) が「このファイルは実行可能な
プログラムである」という印なわけです。

ここらへんは OS によって異なり、例えば Windows だと拡張子が
.exe や .com の場合、「このファイルは実行可能なプログラムである」
という印になるわけで。

> NTTの.COM.MASTER *はパスして現在**
これですか。
      http://biz.ocn.ne.jp/master/c027_02.html
いろんな資格があるもんですねぇ。


>>3061 has
> それはそうとこの板、回答者がすっかり68user一人になってしまったので、
> たまには私も口を出せそうな話題にはお邪魔しようかと思います。
当然ながら誰が回答してもよい掲示板ですので、よろしく>みなさま

>>3062 has
> こっちは再編集機能つけて無いんすね…。
これまで作った掲示板で再編集機能を付けたことないっすよ。
ちょっと突っ込まれると内容を変えたり、削除したりする人が
いるので、「掲示板に編集・削除機能は不要」というのが
僕の考えだったりします。

No. 3065 # Yo 2003/01/26 (日) 10:38:44
はじめまして。
UNIXリファレンスを利用させて頂いています。

一つご教授願いたいことが出来まして投稿させていただきます。
環境は以下の通りです。
・一台のUNIXサーバに対して複数台のWindowsサーバが接続している
・UNIX上のシェルからリモートシェルによってWindows上のbatコマンドを実行(Windowsサーバは全て同一ディレクトリ構成・かつ同一batコマンドを実行)
上記条件において、Windowsサーバをパラで動作させたいのです。
一台目のWindowsのbatコマンドの終了を待つことなく次のWindowsのbatコマンドを実行、といった風にしたいのです。
(現状、一台目の処理が終了したら二台目・・・となっています。)
UNIX側では全Windowsサーバのbatコマンドの終了(rshの終了)を待ってから次の処理に進みます。

そのような実装は可能なのでしょうか。
分かりにくい質問内容かも知れませんが、ご存知の方がおられましたら宜しくご教授お願い致します。

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

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

のようになりました。

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