• ベストアンサー

シェルについて

シェルの作成方法がわかりませんので教えてください。 シェルを実行することにより、 secureログファイルの「disconnect」という文字列を待ちます。 「disconnect」という文字列が出力されたら、 別のシェルを実行するというシェルを作成したいと考えています。 1.このようなシェルは作成することが可能でしょうか?   もし、可能でしたら例文を書いて頂ければ幸いです。 2.別のシェルを実行した後、   当初の「disconnect」という文字列を待つ状態に戻りと思いますが、可能でしょうか?   もし、可能でしたら例文を書いて頂ければ幸いです。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#20112
noname#20112
回答No.2

it2007様 ちょっと回答が違うかもしれませんが参考にしてください。 要約すると、ログファイルにdisconnectと言う追記がされた場合 あるシェルを実行する。 この場合ログファイルの内容からdisconnectと言う 文字列を探し、if文で分岐処理をすれば良いと思います。 例bsh #!/bin/sh tail secure | grep disconnect ・・・この辺文字列検索は色々あります if [ $? -eq 0 ] then 別なシェルを実行 else exit fi

it2007
質問者

お礼

ご回答ありがとうございました。

it2007
質問者

補足

ご回答ありがとうございます。教えて頂いた方法でいけると思います。 ここからは別件となりますが、お時間がありましたらご教授ください。 securelogの現在時刻から5分以内のdisconnectのログをgrep等のコマンドを利用し抽出することは可能でしょうか? (シェルを利用する形になりますか?) よろしくお願いします。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

私は使ったことが無いのでお勧めはできませんが ログ監視ツールで実現できるかもしれません。

参考URL:
http://www.atmarkit.co.jp/fsecurity/rensai/iprotect06/iprotect02.html
it2007
質問者

お礼

なるほどぉ。参照URLをよくみて検討致します。 ご回答ありがとうございました。

関連するQ&A

  • シェルスクリプトで標準出力を捕捉

    お世話になります。 bashで作成したシェルスクリプトからjavaを実行して、標準出力にログが表示され続けるのですが、 このログから特定の文字列を捕捉して、その文字列が表示された場合に 実行を止めたいといった処理を行うにはどうすればよいのでしょうか。 ずっと流れ続ける標準出力から特定の文字列を捕捉できるかというのが質問になります。 パイプを使えば実現できるのでしょうか。 わかりにくい質問ですみませんがお願いいたします。

  • Kシェルのリダイレクト

    Kシェルのリダイレクト シェル初心者で申し訳ございませんが、ご教授いただけたら幸いです。 やりたいこと  xxx.kshの実行ログを出力したい。 出力したいログは、以下コマンド実行時に標準出力されるログをファイルへ落としたい。 尚、実際の実行コマンドは、ksh -xは入力しません。 $ ksh -x ./xxx.ksh 上記コマンドを実行すると、詳細なログが表示されるのですが、ファイルへ落としたいと思います。 分かりづらいかも知れませんが、宜しくお願い致します。

  • Cシェルについて

    Cシェルについて #! /bin/csh ##! /bin/csh -vx setenv NOHUP '/usr/bin/nohup' set AAA_CSH = $NOHUP' XXX.sh file.txt &' ($AAA_CSH >> /dev/null) >>& err.log シェルスクリプトを作成して上記のとおりnohupでXXX.shを実行するように記述します。 エラーがあった場合、err.logに出力するように作成したつもりなのですが、 XXX.shがなかったとき、 「/usr/bin/nohup: XXX.sh:そのようなファイルまたはディレクトリはありません。」 と標準出力されてしまいます。 このエラーメッセージをerr.logに記述するようにしたいのですが、 どうしたらよいでしょうか? よろしくお願いいたします。

  • cronでの文字化け

    RedHatLinux Enterprise Linux 4ESを使用しています。 rootではなユーザでcrontabを使用しており、 シェルファイルを呼び出し定期的に実行しています。 シェルファイルでは環境変数の設定を行い、 Javaのクラスファイルを実行しています。 Javaのクラスファイルで、稼動ログを出力(日本語)しています。 この時の稼動ログの出力ですが、 「Javaファイルの実行」「シェルファイルからの実行」ですと、 文字化けせずに出力されるのですが、 cronからの実行ですと、文字化けしてしまいます。 cronからの実行時に文字化けをしないようにする方法はあるのでしょうか? なお、JavaはShift-JISで作成しています。

  • シェルスクリプト

    Apache centos6.6 シェルスクリプトの質問です。 shファイルを作りたいです。 home/user/log の中にある access_logとerror_logをgzに圧縮したいです。 条件は1日前のログです。 圧縮した後gzのファイルしか残らないのですが、次のアクセスログとエラーログはちゃんと出力されますか? どうかお願いします

  • シェルでの強制終了

    通常で実行すると永遠と実行結果を出力するコマンドを、シェル内部にて実行して 内容をログに吐き出したいのですが停止方法がわかりません。 (ctrl+cと同じ事をシェル内部でやりたい。) #!/bin/sh prstat -t | awk '{print $2, $5}' > prstat.log 宜しくお願いします。

  • シェルスクリプト

    シェルスクリプトに関しては、まったくの初心者です。 OSは、SolarisとLinuxですが、シェルスクリプトを利用して下記のような自動実行プログラムを作りたいのですが、どなたかご教授下さい。 一台のWWWサーバのログ(例:access.log)を、1日に一回(出来ましたら朝の5時)に別サーバに送信するプログラムなのですがいかがでしょうか?このとき、出来れば送信先のファイル名は、送信した日付(例:20020222.log)にしたいです。説明不足かも知れませんが、ひとまずこれでお願いします。

  • Bシェルで、ファイル内にある文字列があるかどうかチェックする方法

    Bシェルプログラムで、指定したディレクトリ内の全てのファイル内に、ある文字列があった場合、そのファイルを別のあるディレクトリに移動させる。というプログラムを作成したいのです。 指定したディレクトリ内のファイル名を取るとこまではわかったのですが、文字列を検索する術がよくわかりません。 ヒントでも何でも教えてください。 よろしくおねがいします。

  • unixのシェルで

    シェルを実行して、ファイルAの内容と、引数Aを連結してファイルBを作成したい場合にはどうしたら良いですか? 例> 実行するシェル : test.csh ファイルAの内容 : 123456 引数A : 9 作成したいファイルBの内容 : 1234569 123456と9の間にSPACEは入れないようにしたいのですが、どうしても入ってしまいます。 よろしくお願いします。

  • シェルでリダイレクトができない

    bashを使っているのですが、 シェルの中で、 ./実行ファイル hoge1 hoge2 > hoge.txt という感じで二つの引数を使って動作する実行ファイルの標準出力を、リダイレクトしたいです。 ですが、テキストに出力をリダイレクトできません。 こんな感じの書き方でリダイレクトできないもんなんでしょうか? 教えて欲しいです。 よろしくお願いします。