- ベストアンサー
- 困ってます
【Linux運用】ロードアベレージの現在値の取得
有識者の方々。お世話になります。 現在のロードアベレージを取得したいと思います。 以下のコマンドで確認する他に良い方法はありますでしょうか? カンマなど不要な部分は削除して数値のみ取得したいと考えております。 # uptime | awk '{print $9}' |sed -e "s/,//g" ■実行結果 [ec2-user@ip-172-31-31-141 ~]$ uptime 00:01:44 up 19:14, 1 user, load average: 0.00, 0.00, 0.00 [ec2-user@ip-172-31-31-141 ~]$ uptime | awk '{print $9}' |sed -e "s/,//g" 0.00 よろしくお願いいたします。
- QA-Linux
- お礼率37% (14/37)
- Linux系OS
- 回答数1
- ありがとう数11
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- 【Linux運用】 iowait値のみ取得する方法
Linux有識者の皆様 [ec2-user@ip-172-31-31-141 ~]$ vmstat procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 140708 40932 294144 0 0 18 13 16 40 0 1 99 1 0 vmstatでwa(iowait)列の値だけを取得したいと思います。(上記の場合1だけ取得したい。) 次のコマンドで取得できましたが、ほかに良い方法はありますでしょうか。 ■結果 ------------------------------------------------------------------------------ [ec2-user@ip-172-31-31-141 ~]$ vmstat | awk '{print $16}' | grep -v "wa" 1 ------------------------------------------------------------------------------ ご教授のほどよろしくお願い申し上げます。
- ベストアンサー
- Linux系OS
- UNIXのuptimeコマンドのload averageの単位は何?
たぶんunixならば同じだと思いますが、Solaris(2.6)の場合の uptimeコマンドをたたくと、load averageがでてきますが、 その単位はなにか知っていたら教えて下さい。 secとか、msecとか・・。 例) % uptime 10:42pm up 56 days, 5:15, 15 users, load average: 0.00, 0.00, 0.00 ここ --> load average: 0.00, 0.00, 0.00
- 締切済み
- その他(OS)
- load averageが0.50を超えた時だけメール送信
LINUXでtopコマンドのロードアベレージが0.50を超えた時に top.logファイルに内容を記述してさらにメールを送る。 0.50を超えない場合には何も残さないというスクリプトを 作りたいのですが、うまくいきません。 ifの書き方などが悪いのでしょうか #!/bin/sh AVE=`top -b -n1 |sed 'y/,/ /' |awk '{if(1>=NR){print $(NF-2)}}'` if [ $AVE > 0.50 ]; then echo ----------------------------------------------------------------------------- >> ./top.log top -b -n1 |awk '{if(5>=NR){print}}' >> ./top.log echo ----------------------------------------------------------------------------- >> ./top.log printf "USER PID %%CPU %%MEM VSZ RSS TTY STAT START TIME COMMAND\n" >> ./top.log ps aux |sort +4r |head -10 >> top.log echo ----------------------------------------------------------------------------- >> ./top.log echo ----------------------------------------------------------------------------- >> ./top.log mail -s load_average root < top.log else echo ok fi 今はとりあえず0.50を超えない時はOKと出力されるように してますが、何もログを残さずメールも送らないように したいのです。どなた様か教えてくださいませ!
- ベストアンサー
- その他(プログラミング・開発)
- スクリプト中に日本語を表示させたい。
現在top監視スクリプト作成中なのですが、内容に日本語を 含めたくとも文字化けしてしまいます。 #!/bin/sh AVE=`uptime | sed 's/[.,]//g' | awk '{print $(NF-2)}'` if [ $AVE -gt 100 ];then echo "`date +%m/%d/%a/;` `uptime`" >> ./top.$$ top -b -n1 |awk '{if((5>=NR)&&(2<=NR)){print}}' >> ./top.$$ echo ----------------------------------------------------------------------------- >> ./top.$$ printf "USER PID %%CPU %%MEM VSZ RSS TTY STAT START TIME COMMAND\n" >> ./top.$$ ps aux |sort +4r |head -10 >> ./top.$$ >> ./top.$$ CPU負荷平均率が$AVEを超えました。 >> ./top.$$ fi 文字コードを指定するnkfを試しても文字化けは変わらず。 どうしたら文字化けせずにログを保存できますでしょうか
- 締切済み
- その他(プログラミング・開発)
- ロードアベレージが高いのですが、CPUもディスクIOも低く、これはどう
ロードアベレージが高いのですが、CPUもディスクIOも低く、これはどういったことが原因なんだろうと悩んでいます。 topやsar等の結果は以下の感じです。 VPSサーバーでapache mysql phpが動いていて、mysqlはほとんど使っていなくて、apacheが原因ということはわかっています。 apacheのプロセスがたくさん作られています。PV等からもうスペック不足だなとは思っていて近々サーバーを引っ越すのですが、 これの原因をつきとめてすっきりさせたいところです。http.confをいじれば解決する問題なのでしょうか? 本やブログなどを読んでもロードアベレージの原因はCPUかディスクIOであると書かれていてそう思っていたんですが、この状態だと納得できません。よろしくお願いします。 load average: 10.78, 18.97, 20.37 Cpu(s): 2.9%us, 1.8%sy, 0.0%ni, 95.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1572864k total, 587936k used, 984928k free, 0k buffers 06:20:01 PM CPU %user %nice %system %iowait %steal %idle 06:30:01 PM all 5.53 0.00 3.37 0.01 0.00 91.10 06:40:01 PM all 3.40 0.00 2.12 0.00 0.00 94.48 03:20:01 PM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad 06:40:01 PM 776820 796044 50.61 0 0 0 0 0.00 0 06:50:01 PM 709144 863720 54.91 0 0 0 0 0.00 0 07:00:01 PM 914668 658196 41.85 0 0 0 0 0.00 0
- ベストアンサー
- その他(ITシステム運用・管理)
- ザウルスのLinuxでSEDのスクリプトファイルを使いたい
ザウルス(SLC1000)のターミナル(qpe-embeddedkonsole-ja Ver 1.6.0)で、 SED(sed-ja/GNU sed Ver. 3.02)のスクリプトファイルが使えず困っています。 ----- in.txt ----- 12345 abcde ------------------ +++++ s.sed +++++ 1q +++++++++++++++++ 上記ファイル内容で、ターミナル上で bash-2.05$ sed -e "1q" in.txt は問題なく出力されますが、 bash-2.05$ sed -f s.sed in.txt では、 sed: file s.sed line 1: Extra characters after command と出ます。スクリプトファイルでも["]記号が必要かも知れないと思い s.sed を下記のように変えると +++++ s.sed +++++ "1q" +++++++++++++++++ sed: file s.sed line 1: Unknown command: ”" ” と出ます。 初歩的な何か抜けているのだと思いますが抜け出せずに居ます。 宜しくお願いいたします。 以上
- ベストアンサー
- その他(ソフトウェア)
- シェルスクリプトで、サーバー監視
まだまだスクリプト初心者なので、教えていただきたいのですが、 条件分岐させるifがあると思うのですが、 「サーバーのロードアベレージが1から2の時にトップを保存して、 2を超える時はサーバーを再起動させる。1以下の場合はログ保存する。」 というスクリプトを書きたいのです。 #!/bin/sh AVERAGE=` awk '{gsub(/[.]/,""); print $1}' /proc/loadavg` if [ $AVERAGE > 100 && $AVERAGE < 200 ] ;then top -b -n1 >> ./top if [ $AVERAGE -gt 200 ] ;then shutdown -r now end uptime >> ./top.log 上記のままだとerror: unexpected end of fileと エラーが出てしまいます。ifが2つ入ってるので 正しい記述が必要だと思うのですが、 どうしたらよいでしょうか
- ベストアンサー
- Linux系OS
- LinuxのOS稼動時間(uptime)を変更する方法を探しております
お世話になります。 ◆質問 現在、社内試験において、 OSが起動してからの連続稼動時間を、変更する方法を探しております。 通常は、uptimeコマンドを実行すれば、OSが起動してからの起動時間が表示されますが、 この時間を365日起動後、497日起動後にする方法がございますでしょうか? ------------------------------------------------------------------------ 15:19:31 up 3 days, 23:23, 2 users, load average: 0.00, 0.00, 0.00 ------------------------------------------------------------------------ ※なお、実際にその日まで待つことは、試験の日数上できません。 ※環境は下記の通りとなります。 ◆実行環境 マシン: ML115 G5 OS: Red Hat Enterprise Linux ES release 4 (Nahant Update 6) ◆備考 インターネットで、「/proc/uptime」に秒数が 書き込まれて(?)いることはわかりました。 「/proc/uptime」をviで編集をしてみましたが、 エラーとなり、値を書き換えることができませんでした。 ※システムファイルを操作することはよくないと思いますが実行してみました。 --------------------------------------------------------------- 警告: 読込んだ後にファイルに変更がありました!!! 本当に上書きしますか (y/n)?y "/proc/uptime" E667: fsync に失敗しました 警告: 原本ファイルが失われたか変更されました ファイルの保存に成功するまでエディタを終了しないでください! -------------------------------------------------------------- どうか、よろしくお願いいたします。m(_ _)m
- 締切済み
- Linux系OS
- IPアドレスの置換について
お世話になっています。 sedコマンドにて既存のIPアドレスの各オクテットの末尾の数字を任意の数字に置換したいのですがいい方法はあるでしょうか? 置換前のIPアドレスは取得できるのですがその後の置換方法がうまくいかずご意見いただけばと思います。 sed -e 's/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/各オクテットの末尾を1にしたい /g' test.log
- 締切済み
- Linux系OS
質問者からのお礼
ありがとうございました。 とても勉強になります。