17-01
2010

Shell Script: Reporting Suite

Tags: Bash | Script | Tool
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 $TMPFILE
Il 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.sh
Exemple 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

 

 

Aucun commentaire pour ce billet.

 

Votre commentaire