• 締切済み

「/sbin/rcS」内の情報をリダイレクトしたい

saaya_holicの回答

回答No.1

caseの構文が変です。 case 変数 in ケース1 ) 実行文 ;; ケース2 ) 実行文 ;; ~~~ * ) その他の場合の実行文 ;; esac

shi-non
質問者

補足

saaya_holicさん、ありがとうございます。 インデントを施していないため見辛かったです、すみません。 下記に記したのはインデントを施したソースになります。 ちなみにecho文(※マークのところ)のみ私が追加したもので、 それ以外は「/sbin/rcS」スクリプトの本文になっております。 (原文の323行目から330行目の辺りにecho文を下記の通りにいれております) ------------------------------------------------------------ for f in /etc/rcS.d/K*; do   if [ -s $f ]; then     case $f in echo "012 \t\t `date "+%Y/%m/%d\t%H:%M:%S"`" >> /chk.log       *.sh)  .   $f ;;       *)  /sbin/sh $f stop ;; echo "013 \t\t `date "+%Y/%m/%d\t%H:%M:%S"`" >> /chk.log     esac   fi done ------------------------------------------------------------ 以上、宜しくお願い致します。

関連するQ&A

  • bashスクリプト

    bashスクリプト #!/bin/bash if [ -f *.log ]; then  echo `tar czf $(date +"%Y_%m_%d").tar.gz *.log` fi このようなスクリプトでecho ``(バックオート)でコマンドを実行できると思うんですが, tar czf $(date +"%Y_%m_%d").tar.gz *.log←これ自体を表示できないでしょうか? いまは,以下のようにしてコマンドを実行させ,さらに表示させています. これだとあまり賢くないというか,1行でスマートに表示させたいのですが, 可能でしょうか? if [ -f *.log ]; then  echo "tar czf $(date +"%Y_%m_%d").tar.gz *.log"  echo `tar czf $(date +"%Y_%m_%d").tar.gz *.log` fi

  • 3分間シェルを実行する方法

    netstat の結果をログ出力する為、次のようにシェルを作成しましたがもう少し効率の良い方法はありませんでしょうか。 ■作成したシェルスクリプト ------------------------------------------------------------------------------- #!/bin/bash #ログの出力先 LOGFILE=/var/log/netstat.log #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 #実行コマンド date "+%Y/%m/%d %H:%M:%S" >> $LOGFILE netstat -ao >> $LOGFILE sleep 30 -------------------------------------------------------------------------------

  • tcpdumpをログファイルにリダイレクトできません

    以下の様なスクリプトをRedhat9環境下のcronで回して #!/bin/bash -x LOG_FILE=/var/log/tcpudumpPop.log if [ -f $LOG_FILE ];then touch $LOG_FILE fi /usr/sbin/tcpdump -i eth0 -a -vvv \( dst port 110 and dst host hoge.dyndns.net \) \ >> /var/log/tcpdumpPop.log & として /var/log/tcpdumpPop.log にPOPアクセスに関するログを吐かせようとしています。 # ls -l /var/log/tcpdumpPop.log -rw-r--r-- 1 root root 0 11月 30 23:42 /var/log/tcpdumpPop.log # ps ax | grep tcpdump 8253 pts/2 S 0:00 [tcpdump] 10339 pts/2 S 0:00 grep tcpdump となりまして、実験的にPOPアクセスしてみても # tail -f /var/log/tcpdumpPop.log には何も表示されません。 直接 # /usr/sbin/tcpdump -i eth0 -a -vvv \( dst port 110 and dst host hoge.dyndns.net \) とした場合にはコマンドライン上にチャンと表示されます。 どうしてリダイレクトされないでしょうか?

  • solaris8へ、rcsのインストールで困っています。

    RCSがインストールしたてなのですが、なぜか、2回目以降のチェックアウトの際に以下のメッセージが表示されて、jうまく使うことが出来ません。 同様の問題にぶち当たったかたはいらっしゃいませんでしょうか? インストールはsolarisのパッケージ形式:     rcs-5.7-sol8-sparc-local を使用、OSはSolaris 8 です。 [現象] > mkdir RCS; touch aaa > ci -l aaa > cat /etc/hosts >> aaa > ci -l aaa /usr/local/bin/diff: オプションが正しくありません -- a 使用法: diff [-bitw] [-c | -e | -f | -h | -n] file1 file2 diff [-bitw] [-C number] file1 file2 diff [-bitw] [-D string] file1 file2 diff [-bitw] [-c | -e | -f | -h | -n] [-l] [-r] [-s] [-S name] directory1 directory2 ci: RCS/aaa,v: diff failed ci aborted [その他] > where diff /usr/local/bin/diff --[*1] /usr/bin/diff   --[*2] /bin/diff --[*3] [*1]最初の状態でこれは無かったので、最初からある[*2][*3]をコピーしてみたが、どっちも意味なく同じメッセージが出て終了してしまいます。

  • shにてエラー出力

    Solaris上でshスクリプトからログファイルへのエラー出力を 2007/05/07 16:06:43 エラー内容 形式で出したいと考えています。 v_date=`date '+%Y%m%d%H%M%S'` f_name=/hoge/fuga.log ${v_date} >> ${f_name} echo "エラー内容" >> ${f_name} のような書き方で考えていますがうまくいきません。 どなたかご教示よろしくお願いします。

  • Solaris10での自動起動設定

    こんにちは。 Solaris10での起動時のコマンドの自動実行について調べています。 Solaris10の場合、SMFというものが導入されているそうですが、従来の方法も使えるとのことなので、まずは従来方式で試しています。 そこで不明点が2つほどあります。 1つは、起動時のランレベルなのですが、調べると、inittabに書いてあるとの情報が多いのですが、実際ところ、inittab内容は以下のようになっていまして、 ap::sysinit:/sbin/autopush -f /etc/iu.ap sp::sysinit:/sbin/soconfig -f /etc/sock2path smf::sysinit:/lib/svc/bin/svc.startd >/dev/msglog 2<>/dev/msglog </dev/console p3:s1234:powerfail:/usr/sbin/shutdown -y -i5 -g0 >/dev/msglog 2<>/dev/msglog どうにも起動時のランレベルと実行されるスクリプトがわかりません。 もう1つ、起動スクリプトの引数なのですが、例えばK16apacheを見ると、 case "$1" in start|startssl|sslstart|start-SSL) : : restart) : : stop) : : *) echo "Usage: $0 {start|stop|restart}" exit 1 ;; esac という感じになっているのですが、この$1に入ってくる値の一覧が見つかりません。 Webの情報では、「start」,「stop」,「restart」,「status」の4種類ということになっていますが、このスクリプトを見ると、他にもあるようです。実際、どう対応しておけばいいのでしょうか? 以上です。なにか情報などお持ちの方いらっしゃいましたら、よろしくお願いします。

  • Diskpart のリダイレクトの質問です

    コマンド プロンプト画面で Diskpart モード時の画面出力をリダイレクトしてテキスト ファイルに残したいのですが、上手く行きません。次のコマンドで Log.txt ファイルに画面出力がリダイレクトされるはずなのですが、記録が全く残りません。   Diskpart /s Script.txt > Log.txt 何度トライしても成功せず困っています。支援をお願いします。なお、テストのために使用した Script.txt ファイルは、次のようになっています。   List Disk   List Volume   Exit

  • 特定のパラメータを含む時、出力ログを分けたい

    リクエストに、「id_num」というパラメータが含まれていた時 出力ログを分けたいのですが、うまく出力されません。 #アクセスログ(例) 111.222.333.4449 - - [01/Jul/2009:12:34:56 +0900] "GET /index.php?a=st&t=menu&id_num=dq001&ui=s5650 HTTP/1.1" 200 125 "-" "DoCoMo/2.0 P905i(c100;TB;W24H15)" "xxxxxx" "-" "-" http.confは、以下のように設定を行っています。 #リクエストに「id_num」が含まれているもの抽出 SetEnvIf Request_URI "id_num" idnumlog #標準ログ(PCアクセス) CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log.d/pc/pc.%Y%m%d 86400 540" combinedpc #「id_num」が含まれているログのみ(モバイルアクセス) CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/site_id.d/mob/mob.%Y%m%d 86400 540" combinedmobile env=idnumlog SetEnvIf Request_URIの書き方が悪いのでしょうか? よろしくお願い致します。

  • OS停止・リブート時のrcスクリプト

    いつも参考にしています。 OS停止・リブート時のrcスクリプトについてご教示下さい。 あるアプリの実行シェルを/usr/local/aaaa/start.shに配置し、 /etc/rc3.d/と/etc/rc5.d/配下で下記コマンドを実施し、リンクを張りました。 ln -s /usr/local/aaaa/start.sh S80aaaa この設定でOS起動時にaaaaのアプリを起動する事は出来ました。 また、/etc/rc6.d/と/etc/rc0.d/配下で下記コマンドを実施したのですが、OS起動時に停止していないように見えます。 (/var/log/messagesを見ても停止する様子が確認できません。手動でシェルを実行した場合は/var/log/messagesにログが残ります) ln -s /usr/local/aaaa/stop.sh K10aaaa ここでのstart.sh/stop.shは単純にアプリの起動コマンド・停止コマンドを書いてあるだけのものです。 /etc/rc6.d/K10aaaaaを直接手動で実行すればアプリの停止は可能です。 同じように設定しているのになぜ停止のほうだけうまく動かないのかが分かりません。何かアドバイスがあればお願いします。

  • RubyProgramによるExcel処理

    お世話になります。 Rubyに関して詳しい方がいらっしゃれば、ご教示頂きたく思います。 Excelの対象セルの値が一致した場合に、そのセルの値をコピーし、 指定のExcelファイルの任意のセルにペーストしたいと考えております。 環境:WindowsXP、ruby-1.8.4-i386-cygwin ・対象Excel 列1    列2 ああああ  1 いいいい  2 うううう  3 -> "ああああ"が一致した場合に値"1"を、以下、作成されるExcelの   任意のセルにコピーする。 ・作成Excelイメージ t = Time.new create_inf = t.strftime("%Y%m%d%H%M") log_a = "chk_file_log" log_b = "(" log_c = ")" log_d = ".xls" out_log = ("#{log_a}#{log_b}#{create_inf}#{log_c}#{log_d}") chk_value_log = File.open(out_log,"w") chk_value_log.print "test\n" chk_value_log.close Rubyにて、対象セル指定とかって可能なのでしょうか。 可能であれば、追加ツールのインストールなしで、プログラムで処理したいと考えております。 よろしくお願いいたします。