Несколько выходов скрипта в курс - PullRequest
2 голосов
/ 31 мая 2019

Во время системного администрирования я часто пишу однострочники для получения статуса процесса или некоторого значения, например, используемого дискового пространства, количества обработанных файлов или оставшихся секунд (например, репликация).Я использую инструменты типа watch или echo в цикле с date для оценки состояния в режиме реального времени.

Часто я знаю результат значения, которое я смотрю: оно поднимается доопределенное число или ноль.Чтобы рассчитать ожидаемое время, которое будет сделано (некоторые процессы занимают часы), я бы поместил некоторые временные метки и значения в электронную таблицу, вычислил некоторые скорости приращения или уменьшения значения между временными метками, а также усреднил скорость и экстраполировал для оценки ожидаемоговремя окончания процесса.

Я ищу способ автоматизировать это, как pv делает это для канала.Я ожидал бы, что это сработает примерно так:

$ rate --expected-value=0 --interval=10 "mysql -e 'show slave status' -E | grep Seconds_Behind_Master | awk '{print $2}'"
Fri May 31 10:31:48 CEST 2019 | value: 52952
Fri May 31 10:31:58 CEST 2019 | value: 52918 | rate: 3.4/s | ETA: 10:57:27
Fri May 31 10:32:08 CEST 2019 | value: 52886 | rate: 3.2/s | ETA: 10:58:29

или для другого примера:

$ rate --unit byte --interval=1 "stat / -f -t | awk '{print $9}'"
Fri May 31 10:58:03 CEST 2019 | value: 11908091
Fri May 31 10:58:04 CEST 2019 | value: 11829190 | rate: 78900 bytes/s

Конечно, это примеры, а утилита fictive rate не существует.Я мог бы создать его сам, но мне интересно, есть ли существующая утилита (которую я еще не нашел), которая может сделать это, может быть, библиотека или простая однострочная строка, которая будет делать что-то подобное.

...