Нужны входы в использовании вложенных "если" в awk - PullRequest
0 голосов
/ 08 июня 2018

У меня есть скрипт ниже, который поможет отобразить значения памяти, однако я хотел бы напечатать переменную как VALUE_NUM как 1, если буферная память <Свободная память, остальное 0. </p>

Пожалуйста, предоставьте свои данные о том, какчтобы достичь этого.

    if [ $REPORT_MEMORY_FREE_AS_MEMORY_AVAILABLE -eq 1 ]
then
    free -m | awk -v OFS="" '
            NR==2 { MEM_TOTAL_MB = $2;
                    MEM_USED_MB = $3;
                    MEM_FREE_MB = $4;
                    MEM_BUFFER_MB = $6;
                    MEM_CACHED_MB = $7;
            }
            NR==3 {
                    MEM_CACHE_USED_MB = $3;
                    MEM_CACHE_FREE_MB = $4;

            }
            END {
                    print "name=Hardware Resources_mod|Memory|Total (MB),aggregator=OBSERVATION,value=", MEM_TOTAL_MB;
                    print "name=Hardware Resources_mod|Memory|Used (MB),aggregator=OBSERVATION,value=", MEM_USED_MB;
                    print "name=Hardware Resources_mod|Memory|Free (MB),aggregator=OBSERVATION,value=", MEM_FREE_MB;
                    print "name=Hardware Resources_mod|Memory|Buffer (MB),aggregator=OBSERVATION,value=",MEM_BUFFER_MB;
                    print "name=Hardware Resources_mod|Memory|Cache (MB),aggregator=OBSERVATION,value=",MEM_CACHED_MB;
                    print "name=Hardware Resources_mod|Memory|cache_Used (MB),aggregator=OBSERVATION,value=",MEM_CACHE_USED_MB;
                    print "name=Hardware Resources_mod|Memory|cache_Free (MB),aggregator=OBSERVATION,value=",MEM_CACHE_FREE_MB;

                    MEM_USED_PCT = int((MEM_USED_MB / MEM_TOTAL_MB) * 100);
                    print "name=Hardware Resources_mod|Memory|Used %,aggregator=OBSERVATION,value=", MEM_USED_PCT;
                    print "name=Hardware Resources_mod|Memory|Free %,aggregator=OBSERVATION,value=", 100 - MEM_USED_PCT;
            }
     '
...