0

これは check_disc 関数ですが、/dev/mapper/ を介してディスクが接続されている環境では正しく動作しないため、/var の代わりに /dev/mapper/debian-var を例として使用しています。 .

BASH スクリプトからの関数:

function check_disks {

    THOLD=$1;
    DISK_ERROR="";

    # df -kl is the most portable options for df 

    MOUNTS=`df -lk | grep -v devfs | grep -v none | grep -v Filesystem | awk '{print $6}'`;
    for MOUNT in $MOUNTS; do
        PERCENT=`df -kl $MOUNT | grep -v Filesystem | awk '{print $5}' | sed 's/\%//'`;
        if [ $PERCENT -gt $THOLD ]; then
            DISK_ERROR="$DISK_ERROR    Volume '$MOUNT' is at $PERCENT% usage.\n";
        fi
    done
    if [ -n "$DISK_ERROR" ]; then
        echo -en "ERROR: The following volumes have exceeded the allowable threshold of $THOLD% usage.\n$DISK_ERROR";
        return 1;
    else
        return 0;
    fi

}

df -kl コマンドの出力:

df -kl
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/debian-root
                       1919048    493616   1327948  28% /
tmpfs                 18717148        12  18717136   1% /lib/init/rw
udev                     10240       784      9456   8% /dev
tmpfs                 18717148         0  18717148   0% /dev/shm
/dev/cciss/c0d0p1       241116     23679    204989  11% /boot
/dev/mapper/debian-home
                       3842104   2681264    965668  74% /home
/dev/mapper/debian-tmp
                       4805760    366228   4195412   9% /tmp
/dev/mapper/debian-usr
                       3842104   1816200   1830732  50% /usr
/dev/mapper/debian-var
                     377857560 183429768 175233732  52% /var

この行は変更する必要があります。

MOUNTS=`df -lk | grep -v devfs | grep -v none | grep -v Filesystem | awk '{print $6}'`;

しかし、方法がわからない。誰でも私に手を差し伸べることができますか?どうも

4

1 に答える 1

0

df出力をボリュームごとに 1 行に保持する移植性オプションがあります。

   -P, --portability
          use the POSIX output format

変わると思います

MOUNTS=`df -lk | grep -v devfs | grep -v none | grep -v Filesystem | awk '{print $6}'`

MOUNTS=`df -lkP | grep -v devfs | grep -v none | grep -v Filesystem | awk '{print $6}'`

役立つだろう。

参考までに、出力の違いの例を次に示します。

$ df -lk | grep -B1 /var
/dev/mapper/rootvg-var
                   4062912   1900724   1952476  50% /var
$ df -lkP | grep /var
/dev/mapper/rootvg-var   4062912   1900748   1952452      50% /var
于 2012-11-15T13:09:06.347 に答える