ディスク使用量監視スクリプトの実行エラーの解決方法

このQ&Aのポイント
  • ディスク使用量を監視するためのスクリプトを実行したところ、[: -lt: unary operator expectedというエラーメッセージが表示されて成功しませんでした。
  • スクリプトの実行時に発生した[: -lt: unary operator expectedエラーを解決する方法を教えてください。
  • ディスク使用量監視スクリプトを実行した際に発生した[: -lt: unary operator expectedエラーへの対処法を教えてください。
回答を見る
  • ベストアンサー

ディスク使用量監視スクリプトについて

あるサイトから下記スクリプトを拾ってきました。 #!/bin/sh # 監視パーティション partition=/dev/mapper/VolGroup00-LogVol00 # ディスク使用率閾値(%) shikii=80 # 通知先メールアドレス mailaddress="hogehoge@hoge.jp" srvname=`hostname` subject="$srvname Disk space alert" maildata=`hostname && date && df -h` used=` df -h | grep $partition | awk '{ print $5 }' | sed -e '$s/.$//' ` if [ $used -lt $shikii ] then echo ok else mail -s "$subject" $mailaddress << MAILDATA $maildata MAILDATA fi 実行したところ[: -lt: unary operator expected と帰ってきて成功しません。 お分かりなる方教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • OKwebb
  • ベストアンサー率44% (92/208)
回答No.1

partition /dev/mapper/VolGroup00-LogVol00 が長くて dfコマンドで改行されてしまう為、grep しても何も値が 取得できないんだと思う。 df -h | grep /dev/mapper/VolGroup00-LogVol00 | awk '{ print $5 }' で何か取得できます? 結果、比較できないってエラーになってると思います。 解決策じゃなくてすみません。

winmax
質問者

お礼

回答ありがとうございます。 どうやらその様ですね、/dev/hda1 で実行するとちゃんと値が帰ってきます。 ありがとうございました。

関連するQ&A

  • partion imageを使用したCentos5のバックアップ

    partion imageを使用しCentos5のバックアップをしたいのですが、 partion image を起動すると、  hda1    ext3fs      101.94Mib  hda2 -unknown-      76.59 Gib  sda1 fat16           62.35Mib と表示され、hda2のファイルシステムが、-unknown-になってしまい、バックアップが実行できません。 Centosを起動しdf -h を実行すると  /dev/mapper/VolGroup00-LogVol00    74G ・・・  /dfv/hda1                      99M ・・・  tmpfs                         232M ・・・ と表示され、partition imageでは、[hda2」と表示された区画が、 「mapper/VolGroup00-LogVol00 」と表示されます。 これは、LVMが使用されているためだと思いますが、これが影響しているのでしょうか?

  • シェルスクリプト外部からのデータ参照

    初心者で失礼があれば申し訳ございません。 お力を頂ければ幸いです。何卒よろしくお願いします。 以下に「hogehoge.nic」と「hogehoge.df」という外部ファイルがあります。 $ cat ./hogehoge.nic nic="210.175.250.212" $ cat ./hogehoge.df /dev/mapper/VolGroup00-LogVol00 /dev/hda1 tmpfs ====================================================================== 上記を呼び出したいシェルがあります。 $ cat ./hogehoge.sh #!/bin/sh NIC=/home/user/hogehoge.nic DF=/home/user/hogehoge.df echo ${NIC} echo ${DF} DF=`df -k` echo test df echo ${DF} ====================================================================== 実行結果 $ ./hogehoge.sh /home/user/hogehoge.nic /home/user/hogehoge.df test df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 234410632 1869312 220441736 1% / /dev/hda1 101086 12004 83863 13% /boot tmpfs 516860 0 516860 0% /dev/shm ======================================================================= 上記実行結果ではなくて、hogehoge.shでhogehoge.nicとhogehoge.dfの中身を呼び出したい。 下記ファイルの中身を呼び出したいです。 $ cat ./hogehoge.nic nic="210.175.250.212" $ cat ./hogehoge.df /dev/mapper/VolGroup00-LogVol00 /dev/hda1 tmpfs

  • ルートのパーティションのUse%が100%になった場合

    Redhat EnterPriseLinuxES4でdfコマンドを発行すると以下の結果が表示されます。 #df -H Filesystem Size Used Avail Use% マウント位置 /dev/mapper/VolGroup_ID_4409-LogVol1 1.1G 995M 8.5M 100% / /dev/sda3 104M 38M 61M 39% /boot none 1.1G 0 1.1G 0% /dev/shm /dev/mapper/VolGroup_ID_4409-LogVol2 520M 11M 483M 3% /tmp /dev/mapper/VolGroup_ID_4409-LogVol5 49G 2.8G 44G 6% /usr /dev/mapper/VolGroup_ID_4409-LogVol4 520M 297M 198M 61% /var /dev/mapper/VolGroup_ID_4409-LogVolHome 25G 110M 24G 1% /home 気になるのは[/]のUSE%が100%になっていることです。 ハード構成はDell製のPowerEdge840でハードRAID構成です。 基本的なアプリとしてApache,PHP,Vsftpd,MySQLぐらいです。 インストール手順についてはデフォルト設定で行いました。 この場合どのような方法で空き容量の確保を行えばいいのでしょうか? 調べた結果、KNOPPIXからCDブートを行ってQTPartedを試みたのですが、よく分からなかったので断念しました。 どなたかお分かりになる方おられましたら、ご教授の程宜しくお願いします。

  • HDDのmountについて。

    こんにちは。  先日、Linuxをインストールしたのですが、HDD(20GB)がmountできません。 因みに、9.1GBのDiskにOS本体が入っていて、追加で20GBのDisk(未マウント)が入っています。 dfでみるとこんな感じです。  [root@712400-lilwejzk ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup00-LogVol00 26802428 6507928 18932992 26% / /dev/hda1 101086 9176 86691 10% /boot none 387844 0 387844                         0% /dev/shm です。  fdiskなどのコマンドを使ってやってみましたがmountできませんでした。 mountする方法を教えてください。よろしくお願いします。

  • パーティションを変更する方法を教えてください

    お世話になります。 一度設定したパーティションを変更したいです。 ▼環境 OS:RedHat ES4 Filesystem サイズ 使用 残り 使用% マウント位置 /dev/mapper/VolGroup_ID_20381-LogVol1 109G 314M 103G 1% / /dev/sda3 99M 13M 82M 13% /boot none 505M 0 505M 0% /dev/shm /dev/mapper/VolGroup_ID_20381-LogVol2 496M 11M 460M 3% /tmp /dev/mapper/VolGroup_ID_20381-LogVol5 78G 2.8G 71G 4% /usr /dev/mapper/VolGroup_ID_20381-LogVol4 496M 116M 356M 25% /var /dev/mapper/VolGroup_ID_20381-LogVolHome 41G 100M 38G 1% /home ここで /で割り当てた一部(10G)を /varに 割り当てたいのですがどのようにすれば可能でしょうか?  パーティションマジックなどの有償ソフトを使用せず行いたいです。 (再インストールしかないのでしょうかねぇ?) ちなみに vgdisplay は (一部抜粋) VG Size 232.69 GB PE Size 32.00 MB Total PE 7446 Alloc PE / Size 7442 / 232.56 GB Free PE / Size 4 / 128.00 MB です。 以上、よろしくお願いします。

  • e2fsckの実行について

    環境:CentOS4.6 # e2fsck -f /dev/mapper/VolGroup00-LogVol00 を実行すると、ディスクにエラーがあるという結果がでました。 マウントしているので、修復できないと思うのですが、 マップされたディスクの修復はどのように行えばよいのでしょうか? よろしくお願いします。

  • dfコマンドについて

    dhコマンドの出力例です。 =========== Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 74G 2.1G 68G 3% / /dev/hdc1 99M 9.0M 85M 10% /boot none 125M 0 125M 0% /dev/shm =========== ●このうち、【/dev/mapper/VolGroup00-LogVol00】とはHDDのどの部分を示しているのでしょうか? ●また、Filesystemがnoneとはどういう意味でしょうか?デバイスファイルが/dev/shmなのであるはずがないと言う意味でしょうか?そうであるならば、/dev/shmとはHDDのどの部分を示し、なんの為にあるのでしょうか? ●/dev/hdc1と同じように考えてセカンダリのHDDのなかの何番目かに【/dev/mapper/VolGroup00-LogVol00】や【/dev/shm】が作成されていて特別の意味を示すためにこのように表示されていると考えてよろしいでしょうか? ご存知の方いましたら、よろしくお願いします。

  • linuxのディスクパーティション

    CentOS6.3を、500GBのHDDにインストールしました。 インストール時にハードドライブのパーティションレイアウトを 「選択したドライブ上のすべてのパーティションを削除してデフォルトレイアウトを作成します。」 を選択して、minimalインストールをしました。 インストール完了後、df -hで確認したところ、以下のようなディスクレイアウトになっていました。 Filesystem            Size Used Avail Use% マウント位置 /dev/mapper/vg_cent-lv_root 50G 2.6G 45G 6% / tmpfs             3.9G 0 3.9G 0% /dev/shm /dev/sda1           485M 32M 429M 7% /boot /dev/mapper/vg_cent-lv_home 237G 602M 224G 1% /home / サイズが若干小さいと感じています。 /var/logに大きさなサイズのlogが出来るため、100G位あればいいかなと思っています。 <質問> 「/dev/mapper/vg_cent-lv_home 237G 602M 224G 1% /home」 から、50Gぐらいを「/dev/mapper/vg_cent-lv_root」に移す?増やす? /     …100G /home …170G したりすることは出来る物でしょうか? ご教授お願いします。

  • dfでディレクトリの容量が見れません

    RedHat Enterpriseです。 /home 以下の容量を調べようとして、以下のコマンドを打ちました。 [melrt@dose1 /]$ df -k Filesystem    1K-ブロック  使用  使用可 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00             67862104 29859800 34555112 47%  / /dev/sda1        101086  12419   83448  13% /boot none          1037236    0  1037236  0% /dev/shm どうやらマウントされているものの容量が出ているみたいですが、どうすれば /home以下の容量を調べられるでしょうか。 初歩的な質問で申し訳ありませんが、よろしくお願いします。

  • シェルスクリプト ファイルの読み取りとgrepのし

    test.nicdfにはネットワークアドレスとマウントポイント(df)の情報が格納されてます。 行いたいこととしては、 test.nicdfファイルから一行づつ読み取り、 ネットワークアドレスとマウントポイントの2つの情報を読取ます。 マウントポイントは複数行あるため分り易いネットワークアドレスを grepで抽出して、他の行はマウントポイントとして認識させようと思いました。 =========================== $ cat test.nicdf 210.175.250.212 /dev/mapper/VolGroup00-LogVol00 /dev/hda1 tmpfs ========================== $ test.sh #!/bin/sh while read LINE; do echo $LINE if [ ${LINE} grep "192" ] then echo "network" else echo "NEXT" fi done < test.nicdf ========================== しかし下記のエラーが発生します。 grepの書き方が悪いようです。 このエラーを解決する方法をご教授願います。 また、ネットワークアドレスとマウントポイントの2つの変数に格納する方法も あわせてご教授頂けませんでしょうか? よろしくお願いします。 ========================= $ ./test.sh 192.168.0.250 ./testnakano.sh: line 6: [: grep: binary operator expected NEXT /dev/mapper/VolGroup00-LogVol00 ./testnakano.sh: line 6: [: grep: binary operator expected NEXT /dev/hda1 ./testnakano.sh: line 6: [: grep: binary operator expected NEXT tmpfs ./testnakano.sh: line 6: [: grep: binary operator expected NEXT =========================

専門家に質問してみよう