Я написал сценарий Lua + whiptail, который может отображать, останавливать и отключать блоки Systemd. Сценарий находится здесь:
https://github.com/mpbcode/systemctl-ui
Похоже, вам нужен учет процессов.
http://www.faqs.org/docs/Linux-mini/Process-Accounting.html
В Ubuntu процесс инструменты учета находятся в http://www.faqs.org/docs/Linux-mini/Process-Accounting.html
Чтобы получить отчет для каждого пользователя, запустите [ ! d7]
sa -m
Один из наиболее очевидных ответов - просто расширить то, что вы сейчас делаете сейчас.
Я столкнулся с этим процессом мониторинга для использования сценариев bash и mysql для отслеживания времени процессора пользователей, но он был привязан к гораздо большему временному кадру, чем вы говорили.
Надеюсь, это может дать вам еще несколько идей о направлении, в котором вы хотите войти.
http://www.dba-oracle.com/t_oracle_unix_linux_vmstat_capture.htm
Это даст строку для каждого пользователя с указанием имени пользователя и их общего времени процессора:
ps -w -e --no-header -o uid,user \
| sort -u \
| while read uid user; do
echo -e "$user\t"$(
ps --no-headers -u $uid --cumulative -o time \
| sed -e s/:/*3600+/ -e s/:/*60+/ \
| paste -sd+ \
| bc
);
done
Это также будет обрабатывать процессы, которые выполнялись в течение нескольких дней .. Не знаю, как расширяться в течение недель / месяцев / лет ..
ps -w -e --no-header -o uid,user \
| sort -u \
| while read uid user; do
echo -e "$user\t"$(
ps --no-headers -u $uid --cumulative -o time \
| sed -e s/-/*86400+/ -e s/:/*3600+/ -e s/:/*60+/
| paste -sd+ \
| bc
);
done