• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シェルスクリプトで、サーバー監視)

シェルスクリプトでサーバー監視:条件分岐とロードアベレージによる制御方法

このQ&Aのポイント
  • シェルスクリプト初心者でもわかる方法でサーバーの監視を行い、ロードアベレージによって条件分岐させる方法を解説します。
  • サーバーのロードアベレージが1から2の範囲であればトップを保存し、2を超える場合はサーバーを再起動します。ロードアベレージが1以下の場合はログを保存します。
  • 上記のスクリプトにはエラーがありますが、正しい記述例も提供します。複数のif文を正しく終了させるためにはどのように書くべきかをご説明します。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

あと、[ コマンドでの大小比較は、-gt -ge -lt -le です。 < や > の文字はリダイレクトです。 私が書くなら、 #!/bin/sh AVERAGE=`cat /proc/loadavg` case "$AVERAGE" in 0.*) uptime >> ./top.log ;; 1.*) top -b -n1 >> ./top ;; *) shutdown -r now ;; esac

r-linux
質問者

お礼

す、すごい!! ありがとうございます。 テスト完了です!!バッチ氏ですね!! これからいろいろ組み込んでみたいと思います。

その他の回答 (1)

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>ifが2つ入ってるので正しい記述が必要だと思うのですが、 1つだったら上記の記述で正しい。 と理解されています? でしたら誤りかと。 shのシェルスクリプトでのif文は if list; then list; [ elif list; then list; ] ... [ else list; ] fi です。(man shより) fiで閉じるかたちになるハズです。

r-linux
質問者

お礼

shとかbashとか違いがあるのかもわからず使っております。。。 ネットから拾い集めてがんばってるしだいですわ。 ifとかelseとかもっと勉強しまーす ありがとうございましたっ♪

関連するQ&A