On a vu que vnStat peut produire 3 statistiques pour une interface donnée :
- le total de données transmises par mois.
- le total de données transmises par jour.
- le total de données transmises par heures.
J’ai expliqué comment insérer la statistique horaire dans une table MySQL
Pour les 2 autres, on pourrait faire de même, c’est quand même un peu lourd. On peut aussi les produire par requêtes SQL sur note table et c’est beaucoup plus simple ! Comme je suis un fainéant, je vais faire comme cela.
Donc pour obtenir la statistiques mensuelles sur l’ensemble des données
SELECT IFACE,YEAR(DAY) AS YEAR, MONTH(DAY) AS MONTH, SUM(RX) AS RX , SUM(TX) AS TX , SUM(RX+TX) AS TOTAL, MAX(DMAJ) AS DMAJ FROM TBHOUR GROUP BY IFACE,YEAR(DAY), MONTH(DAY) ORDER BY IFACE,YEAR(DAY) DESC, MONTH(DAY) ASC
Pour une seule interface et un seul mois
SELECT IFACE,YEAR(DAY) AS YEAR, MONTH(DAY) AS MONTH, SUM(RX) AS RX , SUM(TX) AS TX , SUM(RX+TX) AS TOTAL, MAX(DMAJ) AS DMAJ FROM TBHOUR WHERE IFACE='enp2s0' AND DAY BETWEEN '2019-01-01' AND '2019-01-31' GROUP BY IFACE,YEAR(DAY), MONTH(DAY) ORDER BY IFACE,YEAR(DAY) DESC, MONTH(DAY) ASC
Donc pour obtenir la statistiques quotidienne sur l’ensemble des données
SELECT IFACE,DAY, SUM(RX) AS RX , SUM(TX) AS TX , SUM(RX+TX) AS TOTAL, MAX(DMAJ) AS DMAJ FROM TBHOUR GROUP BY IFACE,DAY ORDER BY IFACE,DAY DESC
Donc pour obtenir la statistiques quotidienne sur enp2s0 et pour le 15/01/2019 (oui, je sais, ici pas besoin de group by, mais je pense déjà au développement du site web et des facilités que cela m’apportera de l’écrire ainsi).
SELECT IFACE,DAY, SUM(RX) AS RX , SUM(TX) AS TX , SUM(RX+TX) AS TOTAL, MAX(DMAJ) AS DMAJ FROM TBHOUR WHERE IFACE='enp2s0' AND DAY='2019-01-15' GROUP BY IFACE,DAY ORDER BY IFACE,DAY DESC