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 ?
Réponses
Trop de publicités?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é souslatest/
d/usr/bin/
et le rendre exécutablecp 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.
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.
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.