SSH без пароля с использованием файла pem или файла ppk больше не работает

1) Давайте сравним следующие две версии:

while sleep 0.1 ; do top -d 10 | grep Cpu ; done
#versus batch mode
while sleep 0.1 ; do top -d 10 -bn1 | grep Cpu ; done

Вы увидите, что в первом примере время определяется интервалом обновления top (установленным на 10 секунд с помощью -d 10 ), а во втором - команда sleep в цикле while является пределом. Обратите внимание, что также top никогда не завершается в первом примере, что делает обработку любого конвейерного вывода проблемой, поскольку программа, которая читает из stin , никогда не получает сигнал «процесс завершен», который особенно проблема для программ на основе столбцов, таких как awk или cut . Посмотрите, как, например,

top -d 0.1 -b | grep Cpu | cut -d' ' -f1

не будет производить вывод с интервалами top производит его, а скорее нерегулярными партиями, тогда как

while sleep 0.1 ; do top -bn1 | grep Cpu | cut -d' ' -f1 ; done

производит вывод с желаемыми интервалами.

Короче говоря: НЕОБХОДИМО использовать while цикл И top -bn1

2) awk обработка:

With stin читать из top -bn1 | grep Cpu , вы можете использовать:

awk 'BEGIN { FS == " +" } ; { cmd1="date +%Y-%m-%d" ; cmd2="date +%H:%M:%S" ; while ( cmd1 | getline a ) ; while ( cmd2 | getline b) ; print a,b,($2+$4)/($2+$4+$8)*100"%" }'

В качестве BEGIN {FS == "+"} будет использовать один или несколько ( + ) пробелов в качестве разделителей полей, соответствующие поля для нас, sy и id - 2, 4 и 8 долларов.

Обходной путь с cmd1 = "..."; while (cmd1 | getline a) необходимо для чтения результата системного вызова как переменной в awk. См. Ответ @ ghostdog74 здесь

0
12.01.2018, 06:31
0 ответов

Теги

Похожие вопросы