17-01
Shell Script: Reporting Suite
Voilà un petit script vous permettant d'obtenir tous les jours les informations concernant votre système par email. Les informations envoyés sont basiques et vous pouvez en rajouter d'autres sans aucun soucis en suivant la structure du script. La taille de chaque utilisateur du /home, les tailles des bases de données MySQL sont affichés, ainsi que le statu du Raid, de la mémoire, ainsi que de l'uptime du serveur.#!/bin/bash ################################################################## ## ## ## Reporting Suite Info ## ## Admin Serveur : https://admin-serv.net/ ## ## ## ################################################################## # Database Options SQLUSER="root" ## User Root MySQL SQLPASS="votre pass SQL" ## Pass Root MySQL TMPFILE="/tmp/reporting_suite_info" ## Fichier Temporaire EMAIL="votreemail@domain" ## Email SENDEMAIL="1" ## Envoyer un email DATE=`date +%d-%m-%Y` ## Format de la date # Filesystem info echo "-- FileSystem Info --" > $TMPFILE df -h >> $TMPFILE echo "-- Home Info --" >> $TMPFILE for folder in `ls /home/`; do du -sh /home/$folder >> $TMPFILE done echo "" >> $TMPFILE echo "-- Env Infos --" >> $TMPFILE echo "uptime : " >> $TMPFILE uptime >> $TMPFILE echo "MemFree : " >> $TMPFILE free -tm >> $TMPFILE echo "Raid Status : " >> $TMPFILE cat /proc/mdstat >> $TMPFILE echo "-- MySQL Info --" >> $TMPFILE mysqladmin -u $SQLUSER -p$SQLPASS status >> $TMPFILE echo "-- MySQL DataBases Infos --" >> $TMPFILE mysql -u $SQLUSER -p$SQLPASS information_schema -e ' SELECT table_schema "Data Base Name", SUM( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB", SUM( data_free )/ 1024 / 1024 "Free Space in MB" FROM information_schema.TABLES GROUP BY table_schema; ' >> $TMPFILE if [[ $SENDEMAIL == 1 ]] then cat $TMPFILE | mail -s "Reporting Info for `hostname` - $DATE" $EMAIL else cat $TMPFILE fi rm $TMPFILEIl ne vous reste plus qu'à mettre ce script par cron pour recevoir tous les jours, ou toutes les semaines les informations concernant ce script.
crontab -e # Ajout pour une exécution tous les jours à 6h03 3 6 * * * /home/scripts/reporting.shExemple de mail reçu:
-- FileSystem Info --
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 4.9G 1.5G 3.2G 32% /
tmpfs 998M 0 998M 0% /lib/init/rw
udev 10M 2.7M 7.4M 27% /dev
tmpfs 998M 0 998M 0% /dev/shm
/dev/sda3 456G 36G 397G 9% /home
-- Home Info --
320M /home/adminserv
2.5G /home/bkp
492K /home/bnc
27M /home/**
18M /home/**
8.0K /home/ftp
16K /home/lost+found
32G /home/**
12K /home/scripts
83M /home/**
24K /home/temp
990M /home/vpopmail
-- Env Infos --
uptime :
11:02:56 up 51 days, 4:44, 2 users, load average: 0.69, 0.25, 0.17
MemFree :
total used free shared buffers cached
Mem: 1994 1952 42 0 170 47
-/+ buffers/cache: 1734 260
Swap: 1999 227 1772
Total: 3994 2179 1815
Raid Status :
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sdb1[1]
10239936 blocks [2/1] [_U]
md3 : active raid1 sdb3[1]
476095936 blocks [2/1] [_U]
unused devices:
-- MySQL Info --
Uptime: 710114 Threads: 3 Questions: 282300 Slow queries: 0 Opens: 2514 Flush tables: 1 Open tables: 324 Queries per second avg: 0.397
-- MySQL DataBases Infos --
Data Base Name Data Base Size in MB Free Space in MB
** 2.15569305 80.00000000
** 71.20312500 80.00000000
** 0.00775051 0.00000000
** 0.00390625 0.00000000
** 0.31250000 480.00000000
** 0.06110477 0.00001907
information_schema 0.00781250 0.00000000
** 0.25625134 0.00000000
** 0.73126507 80.00000000
mysql 0.60605335 0.00000000
** 1.11081314 3440.00000000
** 0.28125000 480.00000000
Votre commentaire
Aucun commentaire pour ce billet.