4 votes

Comment générer un rapport mensuel sur le temps de fonctionnement sous Linux ?

Je souhaite envoyer un rapport mensuel sur le temps de fonctionnement à mes clients par courrier électronique. Est-ce que quelqu'un peut m'aider à générer un rapport mensuel ?

5voto

Rinzwind Points 270388

Il existe un outil appelé "tuptime" qui génère des informations sur le "uptime", mais avec beaucoup plus d'informations que la simple ligne "uptime".

De leur page github :

Installation de base et utilisation

Cloner le repo

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

Copier le tuptime situé sous latest/ d /usr/bin/ et le rendre exécutable

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

S'assurer que le système remplit les conditions préalables

python 3.X 

Exécuter d'abord avec un utilisateur privilégié

tuptime

Ajouté par moi : changer le propriétaire et le groupe de typtime à votre utilisateur avec :

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

et vous pouvez l'exécuter sans accès sudo/root.

L'un des points clés du lien est le suivant :

  • Il enregistre les temps dans une base de données sqlite. Tout autre logiciel peut l'utiliser. Les spécifications sont dans le fichier tuptime-manual.txt. Il a aussi l'option de sortir les registres en secondes et en époque (-s) ou/et au format csv, ce qui permet de l'utiliser pour d'autres commandes.

Si vous savez coder, vous pouvez donc créer vos propres rapports. Ou même connecter la base de données à quelque chose comme jasperstudio et créer un modèle.

Dans le cas contraire, la commande tuptime le montrera :

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

ou tuptime --table affichera une sortie en tableau :

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
    . . .

En manuel tuptime mentionnée contient de nombreuses informations utiles.

Vous pouvez envoyer le résultat dans un fichier en ajoutant >> /home/$USER/Downloads/tuptime.log à la commande. Ce fichier texte peut être envoyé aux clients.

2voto

Rfraile Points 136

Pour compléter l'excellente réponse de Rinzwind au sujet des Tuptime .

Le paquet est disponible dans le dépôt officiel, vous pouvez donc l'installer avec :

# apt-get install tuptime

En supposant que vous envoyiez le rapport le 1er jour de chaque mois, voici les étapes à suivre :

Obtenir l'horodatage du premier jour du mois précédent à partir de 00:00 heures :

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

Obtenir l'horodatage du dernier jour du mois précédent à partir de 23:59 heures :

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

Utilisez ces nombres avec les arguments tsince et 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

Vous pouvez maintenant obtenir ce rapport, ou l'un des autres disponibles, comme le format tableau ou liste, et l'envoyer aux clients.

0voto

WinEunuuchs2Unix Points 91128

Il n'est mentionné nulle part si tuptime prend en compte la durée de suspension du système. Si ce n'est pas le cas, vous pouvez utiliser cette script pour calculer le temps de suspension et le soustraire du temps de fonctionnement :

$ 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)

Notez que le script ne s'intéresse qu'à journalctl pour le démarrage en cours. Vous devez activer la journalisation multi-boot de jounralctl :

Notez également que le script bash script doit être modifié pour calculer les bottes précédentes.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X