|
こんにちは。質問があります。 標準出力と標準エラー出力を画面に出力しつつ エラー出力のみをファイルに保存したいのですが shと標準的なUNIXのコマンドを使って実現可能な ものなのでしょうか。 これまでに試したのは以下のような方法です。 --- test.sh --- #!/bin/sh echo stdout echo stderr 1>&2 --- [その1] $ ./test.sh 2>error.log エラーが画面出力されないので× いざとなれば別の仮想端末で $ tail -f error.log としてもいいのですが。 [その2] $ ./tesu.sh 2>&1 | tee error.log エラー以外の出力も保存されるので× |
|
>>2549 CZ http://www.ainet.or.jp/~inoue/memo/sh-fd.html などを読みつつ 考えた結果、 % (./test.sh > /dev/tty) 2>&1 | tee error.log と、サブシェルを使わないとできないんじゃないか、という 結論になりましたがどうでしょう。 |
|
>>2550 68user さん なるほど。 ttyでstdoutを出力してしまえば, stderrが後に残るというわけですね。 (正しい表現が分かっていませんが。) ありがとうございました。 |
|
こんにちは。 今日、こちらのページをみて、suidというものを使えば、 とあるCGIを「nobodyじゃない権限で実行させたい」と いう願いがかなうということがわかり、早速試してみました。 まず、こちらにサンプルでおいてあるwhoami.cgiをそのまま設置して パーミッションをrwsr-xr-xとしたところうまく動きました。 その後、自作のCGI(nobodyでは動かしたことがあるもの)を同様に nobodyでないユーザで動かそうと思ったら「Internal Server Error」 となってしまいました。 それで、うまくうごいた実績のあるwhoami.cgiを改造しながら原因を探した ところ、どうやら「require 'jcode.pl';」を書いてしまうと 「Internal Server Error」となってしまうということがわかりました。 require 'jcode.pl';行をコメントアウトすれば動きます。 なんとか、この一行を含んでいるものも、setuidして動かすことは出来ない ものでしょうか。 なにかよい方法がございましたらご教示ください。 宜しくお願い申し上げます。 |