Как определить состояние моего сервера

Con awk, file2que contiene el texto de reemplazo y file1el texto repetido:

awk 'FNR == NR {baby[NR] = $0; next} /baby/ {count++; $NF = baby[count]} 1'  file2 file1

Tenga en cuenta que file2es el primer argumento del archivo aquí, no file1.

Explicación:

  • FNR == NRes cierto para el primer archivo leído por awk, así que file2aquí. Para ese archivo, guardamos cada línea en una matriz, indexada por número de línea
  • Para el segundo archivo, mantenemos un countde cada línea que coincida con baby, y obtenga la entrada de la matriz para ese conteo y reemplace el último campo con esa entrada.

Obtengo una salida como:

~ awk 'FNR == NR {baby[NR] = $0; next} /baby/ {count++; $NF = baby[count]} 1'  file2 file1
I love banana
I love mango
I love papaya
I love guava
I love peaches
I love D1
I love watermelon
I love banana
I love mango
I love papaya
I love guava
I love peaches
I love D2
I love watermelon
I love banana
I love mango
I love papaya
I love guava
I love peaches
I love D3
I love watermelon
I love banana
I love mango
I love papaya
I love guava
I love peaches
I love D4
I love watermelon
I love banana
I love mango
I love papaya
I love guava
I love peaches
I love D5
I love watermelon
2
13.10.2016, 20:52
2 ответа

замените present.py на более легкое решение. что-то вроде

cat config.txt | while read C; do
    C=($C)
    nmap -p ${C[1]} ${C[0]} | grep open || mail -s "Warning; port ${C[1]} on server ${C[0]} is unreachable" ${C[2]} < /dev/null &
done;

, на которое ссылается crontab с конфигурацией вроде

echo -e "127.0.0.1\t22\tme@domain.com" > config.txt

Нет причин использовать какой-либо значительный процессор для проверки порта; это строго операция, ограничивающая ввод-вывод. (вы должны увидеть меньше user и выше wait CPU times.)

Этот пример Bash считается тяжелым решением (без повторного использования), если вам нужен действительно легкий код это в c ... ваш питон, вероятно, делает что-то вроде неспособности переработать объекты или какую-то другую ненужную работу, влекущую за собой надзор. Выделение большего количества ресурсов на неэффективный код может сработать, но часто бывает дешевле просто исправить неэффективность. Вы также можете настроить сетевой стек .

1
27.01.2020, 22:19

Это достаточно высокая средняя загрузка, которая у вас есть, и около 80% общей загруженности ЦП. Занятый пользовательский мир, довольно загруженное ядро ​​и даже какое-то программное обеспечение, которое немного приподнимает голову.

Я действительно надеюсь, что вы выполняете здесь асинхронные сетевые вызовы, это поможет нагрузке, но дело не в программе, а в системе. Я бы сказал, что вам нужно больше процессора, как вы сказали. Также проверьте, сколько потоков у вас есть, как будто их много, и все они требуют процессора, вы можете получить переключение контекста. Иногда меньше тем лучше!

0
27.01.2020, 22:19

Теги

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