Как генерировать ежемесячный отчет времени работы в Linux?

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

3
задан 30 January 2018 в 14:00

3 ответа

Поскольку быстрое примечание к превосходному ответу сделано Rinzwind о Tuptime.

Пакет доступен в официальном репозитории, таким образом, можно установить с:

# apt-get install tuptime

Supossing, что Вы отправляете отчету день 1 из каждого месяца, это шаги:

Получите метку времени первого дня один месяц назад с 00:00 часов:

$ date -d "-1 month 00:00" +%s
1514761200

Получите метку времени прошлого дня предыдущего месяца от 23:59 часы:

$ date -d "this month -1 second 00:00" +%s
1517439599

Используйте это числа с tsince и tuntil аргументами:

$ tuptime --tsince 1514761200 --tuntil 1517439599 
System startups:    25   since   00:00:00 01/01/18   until   23:59:59 31/01/18
System shutdowns:   24 ok   -   1 bad
System uptime:      4.84 %   -   1 day, 12 hours, 0 minutes and 24 seconds
System downtime:    95.16 %   -   29 days, 11 hours, 59 minutes and 36 seconds
System life:        31 days, 0 hours, 0 minutes and 0 seconds

Largest uptime:     3 hours, 37 minutes and 41 seconds   from   19:00:15 16/01/18
Shortest uptime:    1 minute and 5 seconds   from   16:40:13 19/01/18
Average uptime:     1 hour, 26 minutes and 25 seconds

Largest downtime:   4 days, 9 hours, 48 minutes and 21 seconds   from   14:11:38 27/01/18
Shortest downtime:  11 seconds   from   16:40:02 19/01/18
Average downtime:   1 day, 4 hours, 19 minutes and 11 seconds

Current uptime:     48 minutes and 19 seconds   since   18:50:03 01/02/18

Теперь можно получить этот отчет или одного из других доступных как формат таблицы или формат списка, и отправить его клиентам.

2
ответ дан 1 December 2019 в 13:23

Нет никакого упоминания нигде, если tuptime принимает во внимание, что система времени была приостановлена. Если это не делает можно использовать , этот сценарий для вычисления приостанавливает время и вычитает его со времени работы:

$ suspendtime
Oct 31 05:55:19 to Oct 31 16:54:26 lasting 39,547 seconds
Oct 31 23:21:21 to Nov 01 04:29:12 lasting 18,471 seconds
Nov 01 05:51:27 to Nov 01 17:08:34 lasting 40,627 seconds
Nov 02 00:01:33 to Nov 02 10:28:46 lasting 37,633 seconds
Nov 02 18:15:59 to Nov 02 19:10:14 lasting 3,255 seconds
Nov 02 21:17:33 to Nov 03 05:31:54 lasting 33,261 seconds
Nov 03 12:06:39 to Nov 03 14:22:50 lasting 8,171 seconds
Nov 03 22:28:12 to Nov 04 04:17:13 lasting 20,941 seconds
Nov 04 05:49:40 to Nov 04 16:48:52 lasting 39,552 seconds
Nov 04 21:45:48 to Nov 05 04:19:26 lasting 23,618 seconds
Nov 05 05:52:05 to Nov 05 16:32:38 lasting 38,433 seconds
Nov 05 21:12:18 to Nov 06 04:16:50 lasting 25,472 seconds
Nov 06 05:50:45 to Nov 06 16:22:54 lasting 37,929 seconds

Linux uptime 576,297 seconds (6 Days 16 Hours 4 Minutes 57 Seconds)
13 Suspends 366,910 seconds (4 Days 5 Hours 55 Minutes 10 Seconds)
Real uptime 209,387 seconds (2 Days 10 Hours 9 Minutes 47 Seconds)

Примечание сценарий только смотрит journalctl для текущей начальной загрузки. Необходимо включить вход мультиначальной загрузки jounralctl:

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

0
ответ дан 1 December 2019 в 13:23

Существует инструмент, названный "tuptime", который генерирует информацию о "времени работы", но с намного большей информацией по сравнению с однострочными шоу "времени работы".

От их страницы GitHub:

Базовая установка и использование

Клонируйте repo

git clone https://github.com/rfrail3/tuptime.git

Скопируйте tuptime файл, расположенный под latest/ каталог к /usr/bin/ и сделайте это исполняемым файлом

cp tuptime/src/tuptime /usr/bin/tuptime chmod ugo+x /usr/bin/tuptime

Гарантируйте, что система передает предпосылки

python 3.X 

Выполненный сначала с привилегированным пользователем

tuptime

Дополнительный добавленный мной: измените владельца и группу typtime Вашему пользователю с:

sudo chown $USER:$USER /usr/bin/tuptime

и можно выполнить его без sudo/root доступа.

Из ссылки один из keypoints, которые это показывает:

  • Это регистрирует времена в sqlite базе данных. Любое другое программное обеспечение может использовать его. Спецификации находятся в tuptime-manual.txt. Кроме того, это имеет опцию для вывода регистры в секундах и эпохе (-s) или/и в формате CSV, легком передавать его по каналу к другим командам.

Таким образом, если можно кодировать Вас, мог бы создать Ваши собственные отчеты. Или даже подключите базу данных к чему-то как jasperstudio и создайте шаблон.

Иначе команда tuptime покажет это:

System startups:    1   since   21:54:09 24/09/15
System shutdowns:   0 ok   -   0 bad
System uptime:      100.0 %   -   21 minutes and 30 seconds
System downtime:    0.0 %   -   0 seconds
System life:        21 minutes and 30 seconds

Largest uptime:     21 minutes and 30 seconds   from   21:54:09 24/09/15
Shortest uptime:    21 minutes and 30 seconds   from   21:54:09 24/09/15
Average uptime:     21 minutes and 30 seconds

Largest downtime:   0 seconds
Shortest downtime:  0 seconds
Average downtime:   0 seconds

Current uptime:     21 minutes and 30 seconds   since   21:54:09 24/09/15

или tuptime --table покажет представленный в виде таблицы вывод:

No.      Startup Date                              Uptime       Shutdown Date   End                   Downtime

1   10:15:27 08/08/15                          42 seconds   10:16:09 08/08/15    OK                 16 seconds
2   10:16:26 08/08/15                          49 seconds   10:17:15 08/08/15    OK                 16 seconds
3   10:17:32 08/08/15            5 minutes and 47 seconds   10:23:19 08/08/15    OK                 16 seconds
4   10:23:36 08/08/15                           9 seconds   10:23:45 08/08/15   BAD                 42 seconds
5   10:24:28 08/08/15   2 hours, 9 minutes and 27 seconds   12:33:55 08/08/15    OK  41 minutes and 44 seconds
    . . .

tuptime упомянутое руководство имеет загрузки хорошей информации.

Можно отправить вывод в файл путем добавления >> /home/$USER/Downloads/tuptime.log к команде. Тот текстовый файл мог быть отправлен клиентам.

5
ответ дан 1 December 2019 в 13:23

Другие вопросы по тегам:

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