くだらない質問はここに書き込め!Part 56
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001名無しさん@お腹いっぱい。
2008/09/07(日) 23:12:26くだらない質問はここに書き込め!Part 55
http://pc11.2ch.net/test/read.cgi/unix/1205161256/
UNIX板は 2ch のサポートセンターではありません
批判、要望は→ 2ch批判要望 http://ex21.2ch.net/accuse/
NGワード
* UNIXって何? → http://pc11.2ch.net/test/read.cgi/unix/998779290/l50
* UNIXとLinuxの違いは何? → http://pc11.2ch.net/test/read.cgi/unix/1024558135/l50
* 2ch閉鎖の危機をUNIX板が救ったという話{は本当? | を知った。有り難う! | のflashはどこ?}
禁止事項
* 既出・内容なし・マルチポスト・アスキーアート各種・ネタage・宿題の丸投げ
注意事項
* 荒らしは無視が鉄則
* Unixと関係ない質問/話題は、よけいな相手をせず適切な板に誘導
* 転んでも泣かない
* ひろゆきのギャグには笑うこと
質問する前にググること http://www.google.co.jp/
0831名無しさん@お腹いっぱい。
2009/02/25(水) 03:18:51anacron
0832名無しさん@お腹いっぱい。
2009/02/25(水) 03:20:461は、リモートの/etc/rc.confをreadして、ローカルの/etc/hostsをwriteする
2は、ローカルの/etc/rc.confをread/writeする
そもそも何も競合してないが?
0833名無しさん@お腹いっぱい。
2009/02/25(水) 03:29:07たすかりました。ありがとうございます。
0834名無しさん@お腹いっぱい。
2009/02/25(水) 06:47:37/etc/rc.confに対して、時間帯によって異なる編集をする、っていうのが気になる。
もしかしてrc.confを編集すれば起動されてるデーモンとかの状態が変化すると
勘違いしてないか? いくら編集しようが、次の再起動まで反映されないんだが、、
0835名無しさん@お腹いっぱい。
2009/02/25(水) 08:08:200836>>828
2009/02/25(水) 12:16:50/etc/hostsではなくて/etc/rc.confの間違いでした。orz
0837名無しさん@お腹いっぱい。
2009/02/25(水) 12:28:59> 自分が心配に思っているのは、、2の追記を行っている最中に、
> 別のプロセスが1のscpを実行することにより、
> 追記した内容が上書きされることはあるのではないかと心配しています。
追記している最中じゃなくても、
あとから書けば当然上書きされるだろ。
scpしてんだから。何が心配だかわからん。
同時書込みでファイル内容の一貫性が失われるのが心配なら、
まず消してから、O_CREAT | O_EXCLでopen(2)するのが常套手段。
0838名無しさん@お腹いっぱい。
2009/02/25(水) 13:14:21当然、排他処理しなければいけない。
0839名無しさん@お腹いっぱい。
2009/02/25(水) 13:54:33> 同時書込みでファイル内容の一貫性が失われるのが心配なら、
別ファイル名で作っておいてrename(2)するのが最近のイディオム。
0840>>828
2009/02/25(水) 22:05:30>rename
プロセスAがファイルを書き込んでいる途中に、プロセスBがrenameしても、ファイルの整合性はたもたれるのでしょうか?
0841名無しさん@お腹いっぱい。
2009/02/25(水) 22:40:37いつから最近になってんだ???
つか
sed "sedscript" file >同じfile
が出来る奴の気がしれん!!!
のと, 同じだと思う
0842名無しさん@お腹いっぱい。
2009/02/26(木) 08:26:460843名無しさん@お腹いっぱい。
2009/02/26(木) 10:30:32「消してから O_CREAT | O_EXCLでopen(2)」
と、rename(2) の違いを理解していない。
「消してから O_CREAT | O_EXCLでopen(2)」方式では、
ファイルが存在しない瞬間が発生する。
一方、rename(2)では、ファイルが存在しない瞬間が発生しないことを
保証している。
だから、元の質問に戻ると、
一旦別ファイルにscpしてから mv -f すればいいということになるな。
0844名無しさん@お腹いっぱい。
2009/02/26(木) 11:20:070845名無しさん@お腹いっぱい。
2009/02/26(木) 19:08:06ファイルオープン時大抵排他指定しているはずだから
プロセスBのリネームは却下されると思う。一般論なので自信無
0846名無しさん@お腹いっぱい。
2009/02/26(木) 19:20:53嘘書くな。
>>840 については、プロセスAがファイルを書き込んでいるのとは無関係に
プロセスBのrename(2)が成功する。
結果のファイル内容は、プロセスBのものになり、
プロセスAの書き込みはすべて廃棄される。
0847名無しさん@お腹いっぱい。
2009/02/26(木) 19:22:49素人は引っ込んでろ。
0848名無しさん@お腹いっぱい。
2009/02/26(木) 19:38:35Windows臭
0849名無しさん@お腹いっぱい。
2009/02/27(金) 05:21:56>プロセスAの書き込みはすべて廃棄される。
これホント?
0850名無しさん@お腹いっぱい。
2009/02/27(金) 06:24:14素人は引っ込んでろ。
当たり前のこと何度も聞き返すんじゃないよ。
0851名無しさん@お腹いっぱい。
2009/02/27(金) 06:52:30同一ファイルをリネームするのかと思った。
0852名無しさん@お腹いっぱい。
2009/02/27(金) 10:39:50テストしてみた。
0853名無しさん@お腹いっぱい。
2009/02/27(金) 10:45:31意味を理解できない素人は引っ込んでろ。
0854名無しさん@お腹いっぱい。
2009/02/27(金) 11:29:18ほんとに素人は困るなw
while :
do
echo hoge
sleep 1
done > file &
echo HAGE > file2
mv -f file2 file
cat file
HAGE
何度やっても
cat file
HAGE
上のwhileループはまだ書き込み延々実行中。
でも file の中身は HAGE。
0855名無しさん@お腹いっぱい。
2009/02/27(金) 11:44:57とか煽るから馬鹿がいつまでも粘着するんだよ。諭してやれよw
FreeBSDでもmv(1)はrename(2)を使ってる。
http://svn.freebsd.org/viewvc/base/release/7.1.0/bin/mv/mv.c?revision=186660&view=markup
rename(2)は"to"を「削除」する。
http://www.freebsd.org/cgi/man.cgi?query=rename&apropos=0&sektion=2&manpath=FreeBSD+7.1-RELEASE&format=html
後はUNIXのfile descriptorの振る舞いを知っていれば>>846は自明。
0856名無しさん@お腹いっぱい。
2009/02/27(金) 17:04:090857名無しさん@お腹いっぱい。
2009/02/28(土) 15:58:21あった場合に記事をメールで転送することはできますか?
0858名無しさん@お腹いっぱい。
2009/02/28(土) 16:03:28INNにnews2mailが付属してなかったっけ?
0859名無しさん@お腹いっぱい。
2009/02/28(土) 22:00:04大学のローカルなニュースグループに対してやりたいんだけど
その方法でできますか?
0860名無しさん@お腹いっぱい。
2009/03/01(日) 01:59:430861名無しさん@お腹いっぱい。
2009/03/01(日) 12:34:07調べて見たんですけどよくわかりませんでした。
詳しい説明などがされているサイトがあったら教えてください。
0862名無しさん@お腹いっぱい。
2009/03/01(日) 16:32:32おk
0863名無しさん@お腹いっぱい。
2009/03/01(日) 20:48:38と思ったオレはおっさん
0864名無しさん@お腹いっぱい。
2009/03/01(日) 20:57:40もう少し詳しく聞きたいです。
0865名無しさん@お腹いっぱい。
2009/03/01(日) 21:48:30imかpygをcronから叩けば?
0866名無しさん@お腹いっぱい。
2009/03/02(月) 00:06:57>>860
>>863
>>865
質問に答えてくれてありがとうございました。
今の自分では理解できそうもないのであきらめます。
0867名無しさん@お腹いっぱい。
2009/03/02(月) 07:26:22atomicという言葉は、どのようなところで意識することでしょうか?
具体的な事例で、atomicでないからこれは失敗する、みたいな話が聞きたいです。
0868名無しさん@お腹いっぱい。
2009/03/02(月) 07:38:24rename(2)は、atomicな操作でファイルを置き換える。
もし、rename(2)の代わりにunlink(2)とlink(2)でファイルを置き換えていたら、
置き換える瞬間にその名前のファイルが存在しない瞬間ができてしまう。
常にファイルが存在することが前提のアプリケーションが誤動作する。
0869名無しさん@お腹いっぱい。
2009/03/02(月) 07:57:35atomic = all or nothing
0870名無しさん@お腹いっぱい。
2009/03/02(月) 08:05:500871名無しさん@お腹いっぱい。
2009/03/02(月) 09:06:070872名無しさん@お腹いっぱい。
2009/03/02(月) 09:20:47ファイルロックなら、ファイルの普通の作成で排他しようとするとか。
while [ -f filename ]
do
:
done
touch filename
0873名無しさん@お腹いっぱい。
2009/03/02(月) 10:29:19例えば ls >txt1.txt
としていてでかいディレクトリー指示して
定期的にtxt1.txtのサイズをみつつ
途中でmv txt1.txt txt2.txt
としても最初のプロセスは破棄されず
txt1.txtはないままtxt2.txtがえんえんと膨れ上がり無事終了となる。
0874名無しさん@お腹いっぱい。
2009/03/02(月) 10:40:41常識で考えて
ls >txt2.txt &
mv txt1.txt txt2.txt
0875名無しさん@お腹いっぱい。
2009/03/02(月) 11:20:25問題を間違えてるよ。
>>873 が書いてるのはそれで正常。
問題にしてるのは、
ls > txt1.txt
としてかいディレクトリーを延々と出力させてる途中に、
別のファイル txt2.txt を、
mv -f txt2.txt txt1.txt
とやると、ls の出力は破棄されて(正確にはリンクカウント0のファイルに一旦なるが)
mvした 元txt2.txtの内容で txt1.txtが出来上がる。
間違っても、mv のあとに、txt1.txtの上に ls の出力がマージされたりしない、
ということを言ってるの。
0876名無しさん@お腹いっぱい。
2009/03/02(月) 11:23:21だから >>873 みたいなことを言い出す。
ファイル名だけじゃなく、ファイルデスクリプタ的に
どのファイルをオープンしているかを考えれば自明なこと。
0877名無しさん@お腹いっぱい。
2009/03/02(月) 19:30:46そもそも「プロセス1がアクセスしているときにプロセスBがリネームするとプロセス1が中断される実例」
として載せているんだからこれが「正しい事実」
プロセス1はもしも連続したプログラムの場合txt1.txtをオープンできなくなっている。
つまり「好ましくない」状態だといえる。
ユーザーないしはアプリケーションは「ファイル名」を探索してそれを操作する。
操作の最中に同一プロセスが複数のアクセスをしようとしたとき
ファイル名が変わっていたらアクセスできない。
つまり「求められる仕様」として間違っているといえるわけだ。
ただしあくまでできの悪いコマンドラインプログラムの実装の問題であって
回避できるっていっているわけだ。
ファイルディスクリプタの概念などプログラマーの妄言
そこにあるのは「ディレクトリー内のファイル名のリスト」と「ファイル本体」だということをわかってない。
0878名無しさん@お腹いっぱい。
2009/03/02(月) 19:42:030879名無しさん@お腹いっぱい。
2009/03/03(火) 22:52:280880名無しさん@お腹いっぱい。
2009/03/03(火) 22:56:550881名無しさん@お腹いっぱい。
2009/03/04(水) 00:43:28ばか
-mtime -3h
だばか。-つけなきゃいけないんだ。
0882名無しさん@お腹いっぱい。
2009/03/05(木) 09:07:44みんなでスタックオーバーフロー行って
質問しまくろうぜ
英語で。
0883名無しさん@お腹いっぱい。
2009/03/07(土) 03:55:13自力で修復は無理なんだろうか
0884名無しさん@お腹いっぱい。
2009/03/07(土) 09:40:26アホか。
0885名無しさん@お腹いっぱい。
2009/03/07(土) 09:46:480886名無しさん@お腹いっぱい。
2009/03/15(日) 14:05:47jless-358-iso262 で第四水準の漢字が見れた人はいますか。
補助漢字は見えるのですが第四水準が <8F> <A1> <A1> などとなってしまいます。
マニュアルや readmde でも第四水準(JIS X 0213:2000 plane 2) が見えるようには
書いてありますが、、、
0887名無しさん@お腹いっぱい。
2009/03/16(月) 20:48:55良く分からんけど japanese00-ujis にすると見られたりしない?
0888名無しさん@お腹いっぱい。
2009/03/16(月) 21:37:24UNIX導入の時、ken thompson と dennis M.ritchie の書いた
マニュアルが付いてきたって書いてあるんだけど、
具体的な本の名前って何なのかな?
書籍化されてないとか?
0889名無しさん@お腹いっぱい。
2009/03/16(月) 21:41:48DECのマシン(かどうか知らんが)を買ったらそれが付いてきた、と。
0890名無しさん@お腹いっぱい。
2009/03/16(月) 22:05:33つまり取説って所かあ。
ぜひ読みたい。
0891名無しさん@お腹いっぱい。
2009/03/16(月) 22:50:320892名無しさん@お腹いっぱい。
2009/03/17(火) 00:36:05K. L. Thompson and D. M. Ritchie,
The UNIX Programmer's Manual,
Bell Laboratories, 1978.
ペーパーバックあるぞ。買え。(テキストファイルも昔見たことあるんだけどな)
この辺も読んでない奴が多いけど、読め。
・UNIX Programmer's Supplementary Documents, Volume 1 (PS1)
PS1:1 The C Programming Language- Reference Manual
・UNIX Programmer's Supplementary Documents, Volume 2 (PS2)
PS2:1 The Unix Time - Sharing System
PS2:3 Unix Programming - Second Edition
本物のUNIX:/usr/doc/{ps1,ps2,usd}は宝庫。
0893名無しさん@お腹いっぱい。
2009/03/17(火) 12:02:44The UNIX Programmer's Manual そのものはなさげだが。
0894名無しさん@お腹いっぱい。
2009/03/17(火) 13:26:340895名無しさん@お腹いっぱい。
2009/03/17(火) 13:30:260896名無しさん@お腹いっぱい。
2009/03/17(火) 13:58:02ここにある奴?
ttp://cm.bell-labs.com/7thEdMan/
0897名無しさん@お腹いっぱい。
2009/03/17(火) 14:02:370898名無しさん@お腹いっぱい。
2009/03/17(火) 22:27:48どっちがむずかしいですか?
UNIXをするために勉強できるツールみたいなのがあれば教えていただきたいです。
0899名無しさん@お腹いっぱい。
2009/03/17(火) 22:35:010900名無しさん@お腹いっぱい。
2009/03/17(火) 22:48:25何年勉強したらできるようになりますか?
C言語がわからなくてもやってくうちに覚えていきますか??
0901886
2009/03/17(火) 23:22:40japanese00-ujis でもだめでしたが、README.iso.jp によれば
- 自動判別だけでは都合の悪いこともあるため、最上位ビットが
立ったコードの判別方法を順々に変更するためのキーを用意し
ています。'@' キー、機能名は "rotate-right" です。
と書いてありましたので、'@' キーを5回押して "noconv" となった
第四水準の漢字が読めるようになりましたが、条件によりレイアウトが
崩れる場合があります。
% echo -n '8fa1a1' | xxd -r -p | less
で一度試してみてください。
0902名無しさん@お腹いっぱい。
2009/03/18(水) 00:18:13> C言語がわからなくてもやってくうちに覚えていきますか??
そんなの本人以外に分からないよw
>>898
本買え。
0903名無しさん@お腹いっぱい。
2009/03/18(水) 00:35:41おお、助かります。メモメモ
0904名無しさん@お腹いっぱい。
2009/03/18(水) 01:14:58(1)UNIXやLinuxはどんな言語で書かれているのか? →Cとか?
(2)UNIXやLinuxを使うのに学ぶべき言語は何か →英語とか?
(3)どちらでもない
0905名無しさん@お腹いっぱい。
2009/03/18(水) 01:55:030906名無しさん@お腹いっぱい。
2009/03/18(水) 11:14:570907名無しさん@お腹いっぱい。
2009/03/18(水) 11:34:26UNIX95の仕様書を嫁
0908名無しさん@お腹いっぱい。
2009/03/19(木) 00:33:06色々と考えてみたんですが、思いつくのは
1、windowsにvirtualboxなどで仮想化して、unixをインストールする。
2、自宅の開発用サーバにsshでアクセスしてシェルで作業する。
3、ライブCDを使う。
他に方法があれば、是非教えていただきたいです。
0909名無しさん@お腹いっぱい。
2009/03/19(木) 01:18:270910名無しさん@お腹いっぱい。
2009/03/19(木) 01:36:36x_Serverを使って他所のUNIXを丸ごと持ってくる
俺はその方法で普段使ってるけど
ネットカフェにそれがインスコできるかは知らん
0911名無しさん@お腹いっぱい。
2009/03/19(木) 02:25:05自分のPCを開く。
0912名無しさん@お腹いっぱい。
2009/03/19(木) 08:59:42(ディスクの状態を元に戻すツールを使ってる)
そういう所なら USBかLiveCDで起動できるかもしれないけど、店としては
想定外だろうなぁ。
0913名無しさん@お腹いっぱい。
2009/03/19(木) 09:00:220914名無しさん@お腹いっぱい。
2009/03/19(木) 11:03:510915名無しさん@お腹いっぱい。
2009/03/19(木) 11:45:070916名無しさん@お腹いっぱい。
2009/03/19(木) 15:04:52urlencode-default-coding-systemをutf-8にすればいいみたいですが、
urlencode-exceptional-charsの扱いが大雑把すぎるので、
それが問題になるようなら、w3で定義されている
url-hexify-string
url-unhex-string
を使った方がいいように思います。
urlencode-exceptional-charsに
$ - _ . ! ~ * ' ( ) ,
を加えるのもいいですが。
0917名無しさん@お腹いっぱい。
2009/03/20(金) 11:20:38それのアクセスログで、どんなワードが検索されてるかを見たいだけなので、
デコードがしたいのですが、どうもうまくいきませんもうちょっと考えてみます。
0918名無しさん@お腹いっぱい。
2009/03/20(金) 12:42:51for url in sys.stdin:
print urllib.unquote_plus(url.decode('utf-8')),
0919名無しさん@お腹いっぱい。
2009/03/20(金) 18:03:36やたら悪いです。同じカーネルソースからconfig内容を変えただけ、ビルドディレクトリはmake O=hoge
って感じで別にしてます。もちろん使用コンパイラは同じものです。
cache hit 622
cache miss 30629
今もコンパイル中ですがほぼ終わりかけている状態でキャッシュヒットが1個・・・
カーネルコンパイル前にその都度binutilやlibtoolを最新のsnapを入れているとか原因しているのでしょうか?
それともカーネルコンパイルにはccacheは適さないとかあるのでしょうか?
いかんせんこのヒット率だとccacheを使わない方が早い^^;;
0920名無しさん@お腹いっぱい。
2009/03/20(金) 20:36:08同じソースかどうか調べているのに、
# http://ccache.samba.org/
config変えたらあかんやん。
ほとんどの.cのgcc -Eの結果変るでしょ。
0921名無しさん@お腹いっぱい。
2009/03/21(土) 00:43:28回答どうもです。
何分ソースも読めない素人が勝手にいじってるもので^^;; gcc -Eでもググって調べたりしたけど今の所コンパイルの
前処理としか理解できない位のレベルで・・
configを変えるとダメなのですね。多少の変更くらいならそれに関連しないコンパイルはなんかキャッシュが利用出来る
のかななんて思ってました。
あ、でも確かにカーネルのconfigだと全体に影響しそうなのがありますね・・
0922名無しさん@お腹いっぱい。
2009/03/21(土) 06:28:22このあいだ、こんなことがありました。
WindowsPC上でTeratermを使ってサーバにアクセスし、人がつくったコマンドを実行していました。
ところが急用が出来きたため、帰宅する必要がありました。
現在の勤務現場では、帰宅時にPCを落として帰るという決まりがあります。
しかし、コマンドは実行中ですので、PCを落とすわけにはいきません。
しょうがないので、PCを落とさないで帰ったところ、次の日に始末書を書かされました。。
そこで質問なのですが、実行中のコマンドはそのままにして、PCを落とすことは出来るのでしょうか?
ちなみに、サーバ側のOSは、FreeBSD5系です。
0923名無しさん@お腹いっぱい。
2009/03/21(土) 08:04:45PCは電源を落さない方が寿命が伸びる。
わずかとは言え、起動・シャットダウン・起動後の作業準備にかかる時間節約のため
PCはビル停電の時以外落さないというのがうちのルールだけど。
0924名無しさん@お腹いっぱい。
2009/03/21(土) 08:38:33出来る。
0925名無しさん@お腹いっぱい。
2009/03/21(土) 09:01:300926名無しさん@お腹いっぱい。
2009/03/21(土) 09:38:01電源断になっても作業としてレジュームできるようにした方が良い。
そんな長時間生きているコマンドなんておかしいのだから
繰り返しスクリプトで処理してんでしょ。
つまり出来る出来ないは作業者の仕様次第
自分の仕様が足りないなら周辺にサポートを期待するのが「仕事」というもの
0927名無しさん@お腹いっぱい。
2009/03/21(土) 09:45:05寿命が落ちるのは頻繁にオンオフ繰り返した場合。
起動時にスクリプトかセッションで即使える状況にできるので
トイレにいっている間にでも準備は完了するだろうし、予約起動の手もある。
終了も「電源ボタンオフ」でポペポペいいながら丁寧に落ちてくれるから作業時間はゼロ
FreeBSDだと微妙だけど「休止」という手もあるし
たかだか1分の待ち時間のために一晩中つけてるなんてコストの無駄。
大丈夫ですか?オタクの会社といいたくなる。
0928名無しさん@お腹いっぱい。
2009/03/21(土) 09:51:13Windows側からの接続を切断しても、コマンドは実行中のままに出来るよ
もちろん、あとからそのセッションに接続すれば元の画面が表示される。
0929名無しさん@お腹いっぱい。
2009/03/21(土) 10:31:27>>922
http://pc11.2ch.net/test/read.cgi/unix/1148721522/
0930名無しさん@お腹いっぱい。
2009/03/21(土) 11:15:59そりゃサーバの電源を落とされると困ることは多いなw
レス数が900を超えています。1000を超えると表示できなくなるよ。