Задачи по "Информатике"
Автор: Жаботинский Антон • Март 15, 2024 • Задача • 330 Слов (2 Страниц) • 127 Просмотры
Написать скрипт, определяющий три процесса, которые за 1 минуту, прошедшую с момента запуска скрипта, считали максимальное количество байт из устройства хранения данных. Скрипт должен выводить PID, строки запуска и объем считанных данных, разделенные двоеточием. Для решения задачи нам понадобится использовать команду pidstat, которая позволяет мониторить различные параметры процессов, включая объем считанных данных.
Вот скрипт на Bash, который решает задачу:
#!/bin/bash
# Получаем список всех процессов и их объемы ввода-вывода за 1 минуту
pidstat 1 3 -d | grep -v '^$' | sort -k6 -nr | head -n 4 | sed '1d' | \
while read line; do
# Получаем PID процесса и объем данных из строки вывода pidstat
pid=$(echo $line | awk '{print $3}')
command=$(ps -p $pid -o cmd=)
data=$(echo $line | awk '{print $6}')
# Выводим PID, строку запуска и объем считанных данных через двоеточие
echo "$pid: $command: $data"
done
Этот скрипт запускает pidstat с параметрами 1 3 -d, чтобы получить информацию о вводе-выводе процессов каждую секунду в течение 3 секунд. Затем мы фильтруем вывод, сортируем его по объему данных и выбираем первые три процесса (плюс заголовок, который нужно исключить с помощью sed).
Затем мы читаем каждую строку вывода, извлекаем PID, команду запуска процесса и объем данных. Наконец, выводим эту информацию в формате PID: команда: объем данных.
Иным методом решения если у вас не позволяет то на чем вы работаете
...