1+ #! /bin/bash
2+
3+ server=$1
4+ _DIR=$( dirname ` readlink -f $0 ` )
5+
6+ # SSH_OPTIONS="-i utilities/id_rsa"
7+
8+ SSH_OPTIONS=" ${SSH_OPTIONS:- " " }
9+
10+ export SSH_CLIENT=" ssh -q $SSH_OPTIONS -o TCPKeepAlive=yes -o ServerAliveInterval=50 -o strictHostKeyChecking=no"
11+ export SCP_CLIENT=" scp -q $SSH_OPTIONS -o TCPKeepAlive=yes -o ServerAliveInterval=50 -o strictHostKeyChecking=no"
12+ _DIR=" $( dirname " ` readlink -f $0 ` " ) "
13+
14+ echo " * CLEANUP OLD RESULT FILES"
15+ rm -f mysqltuner_${server} .txt pt-*_${server} .txt innotop_${server} .txt
16+
17+ echo " * RUNNNING MYSQLTUNER"
18+ $SSH_CLIENT root@${server} " mysqltuner --verbose --outputfile /tmp/mysqltuner_${server} .txt"
19+ [ $? -ne 0 ] && exit 1
20+
21+ echo " * RUNNNING PERCONA SUMMARY"
22+ $SSH_CLIENT root@${server} " pt-summary> /tmp/pt-summary_${server} .txt"
23+ [ $? -ne 0 ] && exit 1
24+
25+ echo " * RUNNNING PERCONA MYSQL SUMMARY"
26+ $SSH_CLIENT root@${server} " pt-mysql-summary> /tmp/pt-mysql-summary_${server} .txt"
27+ [ $? -ne 0 ] && exit 1
28+
29+ echo " * RUNNNING INNOTOP"
30+ $SSH_CLIENT root@${server} " innotop -C -d1 --count 5 -n>> /tmp/innotop_${server} .txt"
31+ [ $? -ne 0 ] && exit 1
32+
33+ echo " * IMPORTING RESULT TXT"
34+ $SCP_CLIENT root@${server} :/tmp/mysqltuner_${server} .txt .
35+ $SCP_CLIENT root@${server} :/tmp/pt-*_${server} .txt .
36+ $SCP_CLIENT root@${server} :/tmp/innotop_${server} .txt .
37+ [ $? -ne 0 ] && exit 1
38+
39+ REPORT_NAME=audit.html
40+ echo " * GENERATING HTML RESULT"
41+ (
42+ DATE=" $( date) "
43+ cat<<EOF
44+ <!DOCTYPE html>
45+ <html lang=" en" >
46+ <head>
47+ <meta charset=" utf-8" >
48+ <meta name=" viewport" content=" width=device-width, initial-scale=1" >
49+ <title>MySQL/MariaDB Audit report - $DATE </title>
50+ <link rel=" stylesheet" href=" https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >
51+ <link rel=" stylesheet" href=" https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" >
52+ <link rel=" stylesheet" href=" https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css" >
53+ <script src=" https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js" ></script>
54+ <script src=" https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" ></script>
55+ <script src=" https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.4.0/Chart.bundle.js" ></script>
56+ <script src=" https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" ></script>
57+ </head>
58+ <body>
59+ <h1>MySQL/MariaDB Audit report - $DATE </h1>
60+ <div id=" tabs" >
61+ <ul>
62+ <li><a href=" # mysqltuner">Tuner</a></li>
63+ < li><a href=" #pt-summary" > Linux< /a></li>
64+ < li><a href=" #pt-mysql-summary" > Percona< /a></li>
65+ < li><a href=" #innotop" > InnoTop< /a></li>
66+ < /ul>
67+ < div id=" mysqltuner" >
68+ < pre>
69+ EOF
70+ ) > ${REPORT_NAME}
71+
72+ perl ${_DIR} /txt2Html.pl - mysqltuner_${server} .txt >> ${REPORT_NAME}
73+
74+ (
75+ cat << 'EOF '
76+ </pre></div>
77+ <div id='pt-summary'>
78+ <pre>
79+ EOF
80+ ) >> ${REPORT_NAME}
81+
82+ perl ${_DIR} /txt2Html.pl \# pt-summary_${server} .txt >> ${REPORT_NAME}
83+ (
84+ cat << 'EOF '
85+ </pre></div>
86+ <div id='pt-mysql-summary'>
87+ <pre>
88+ EOF
89+ ) >> ${REPORT_NAME}
90+ perl ${_DIR} /txt2Html.pl \# pt-mysql-summary_${server} .txt >> ${REPORT_NAME}
91+
92+ (
93+ cat << 'EOF '
94+ </pre></div>
95+ <div id='innotop'>
96+ <pre>
97+ EOF
98+ ) >> ${REPORT_NAME}
99+
100+ cat innotop_${server} .txt >> ${REPORT_NAME}
101+ (
102+ cat << 'EOF '
103+ </pre></div>
104+ </div>
105+
106+ <script>
107+ $(function(){
108+ $('#tabs').tabs({ active: 0 });
109+ });
110+ </script>
111+ </body>
112+ </html>
113+ EOF
114+ ) >> ${REPORT_NAME}
115+ echo " * ALL IS OK"
116+ exit 0
0 commit comments