Skip to content

Commit f209598

Browse files
committed
2 parents 580a707 + ee79ab4 commit f209598

2 files changed

Lines changed: 143 additions & 0 deletions

File tree

runAudit.sh

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
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

txt2html.pl

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/bin/env perl
2+
use strict;
3+
use warnings;
4+
use File::Basename;
5+
6+
my $headerSep=$ARGV[0];
7+
my $txtFile=$ARGV[1];
8+
my $fileid =basename($txtFile);
9+
$fileid=~ s/\./-/g;
10+
11+
open(my $fh, '<', $txtFile) or die "Could not open file '$txtFile' $!";
12+
print "\n<pre>";
13+
my $i=1;
14+
while (my $row = <$fh>) {
15+
chomp $row;
16+
if ($row =~ /^$headerSep/) {
17+
print "</pre>\n";
18+
$row =~ s/$headerSep//g;
19+
print "<H3 >$row</H3>\n";
20+
print "<pre>";
21+
$i++;
22+
next;
23+
}
24+
print "$row\n" unless $row =~ /^\s*$/;
25+
}
26+
print "</pre>\n";
27+
close $fh;

0 commit comments

Comments
 (0)