mirror of
https://github.com/major/MySQLTuner-perl.git
synced 2024-09-21 07:47:08 +00:00
A bit of work on the html report template
This commit is contained in:
parent
3894c0be25
commit
69d4e2fbea
@ -6211,26 +6211,33 @@ sub dump_result {
|
|||||||
|
|
||||||
if ( $opt{'reportfile'} ne 0 ) {
|
if ( $opt{'reportfile'} ne 0 ) {
|
||||||
eval { require Text::Template };
|
eval { require Text::Template };
|
||||||
|
eval { require JSON };
|
||||||
if ($@) {
|
if ($@) {
|
||||||
badprint "Text::Template Module is needed.";
|
badprint "Text::Template Module is needed.";
|
||||||
die "Text::Template Module is needed.";
|
die "Text::Template Module is needed.";
|
||||||
}
|
}
|
||||||
|
|
||||||
my $vars = { 'data' => Dumper( \%result ) };
|
my $json = JSON->new->allow_nonref;
|
||||||
|
my $json_text = $json->pretty->encode( \%result );
|
||||||
|
my %vars = (
|
||||||
|
'data' => \%result,
|
||||||
|
'debug' => $json_text,
|
||||||
|
);
|
||||||
my $template;
|
my $template;
|
||||||
{
|
{
|
||||||
no warnings 'once';
|
no warnings 'once';
|
||||||
$template = Text::Template->new(
|
$template = Text::Template->new(
|
||||||
TYPE => 'STRING',
|
TYPE => 'STRING',
|
||||||
PREPEND => q{;},
|
PREPEND => q{;},
|
||||||
SOURCE => $templateModel
|
SOURCE => $templateModel,
|
||||||
|
DELIMITERS => [ '[%', '%]' ]
|
||||||
) or die "Couldn't construct template: $Text::Template::ERROR";
|
) or die "Couldn't construct template: $Text::Template::ERROR";
|
||||||
}
|
}
|
||||||
|
|
||||||
open my $fh, q(>), $opt{'reportfile'}
|
open my $fh, q(>), $opt{'reportfile'}
|
||||||
or die
|
or die
|
||||||
"Unable to open $opt{'reportfile'} in write mode. please check permissions for this file or directory";
|
"Unable to open $opt{'reportfile'} in write mode. please check permissions for this file or directory";
|
||||||
$template->fill_in( HASH => $vars, OUTPUT => $fh );
|
$template->fill_in( HASH => \%vars, OUTPUT => $fh );
|
||||||
close $fh;
|
close $fh;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6382,7 +6389,6 @@ You must provide the remote server's total memory when connecting to other serve
|
|||||||
--pfstat Print Performance schema
|
--pfstat Print Performance schema
|
||||||
--nopfstat Don't Print Performance schema
|
--nopfstat Don't Print Performance schema
|
||||||
--verbose Prints out all options (default: no verbose, dbstat, idxstat, sysstat, tbstat, pfstat)
|
--verbose Prints out all options (default: no verbose, dbstat, idxstat, sysstat, tbstat, pfstat)
|
||||||
|
|
||||||
--bannedports Ports banned separated by comma(,)
|
--bannedports Ports banned separated by comma(,)
|
||||||
--maxportallowed Number of ports opened allowed on this hosts
|
--maxportallowed Number of ports opened allowed on this hosts
|
||||||
--cvefile <path> CVE File for vulnerability checks
|
--cvefile <path> CVE File for vulnerability checks
|
||||||
|
@ -1,153 +1,117 @@
|
|||||||
<!DOCTYPE html>
|
<!doctype html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- Required meta tags -->
|
<!-- Required meta tags -->
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<title>MySQL Tuner</title>
|
|
||||||
<meta charset="utf-8">
|
<!-- Bootstrap CSS -->
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
|
|
||||||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
|
|
||||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
|
|
||||||
|
|
||||||
<style type="text/css" media="screen">
|
<style type="text/css" media="screen">
|
||||||
/* Sticky footer styles
|
/* Sticky footer styles
|
||||||
-------------------------------------------------- */
|
-------------------------------------------------- */
|
||||||
html {
|
/*html {
|
||||||
position: relative;
|
/* position: relative;
|
||||||
min-height: 100%;
|
/* min-height: 100%;
|
||||||
}
|
/*}
|
||||||
body {
|
/*body {
|
||||||
/* Margin bottom by footer height */
|
/* /* Margin bottom by footer height */
|
||||||
margin-bottom: 10px;
|
/* margin-bottom: 10px;
|
||||||
}
|
/*}
|
||||||
.footer {
|
/*.footer {
|
||||||
position: absolute;
|
/* position: absolute;
|
||||||
#margin-left: 5px;
|
/* #margin-left: 5px;
|
||||||
bottom: 0;
|
/* bottom: 0;
|
||||||
width: 100%;
|
/* width: 100%;
|
||||||
/* Set the fixed height of the footer here */
|
/* /* Set the fixed height of the footer here */
|
||||||
height: 30px;
|
/* height: 30px;
|
||||||
line-height: 30px; /* Vertically center the text there */
|
/* line-height: 30px; /* Vertically center the text there */
|
||||||
background-color: #f5f5f5;
|
/* background-color: #f5f5f5;
|
||||||
}
|
/*}
|
||||||
|
|
||||||
|
|
||||||
/* Custom page CSS
|
/* /* Custom page CSS
|
||||||
-------------------------------------------------- */
|
/* -------------------------------------------------- */
|
||||||
/* Not required for template or sticky footer method. */
|
/*/* Not required for template or sticky footer method. */
|
||||||
|
|
||||||
body > .container {
|
/*body > .container {
|
||||||
padding: 60px 15px 0;
|
/* padding: 60px 15px 0;
|
||||||
}
|
/*}
|
||||||
|
|
||||||
.footer > .container {
|
/*.footer > .container {
|
||||||
padding-right: 15px;
|
/* padding-right: 15px;
|
||||||
padding-left: 15px;
|
/* padding-left: 15px;
|
||||||
}
|
/*}
|
||||||
|
|
||||||
code {
|
/*code {
|
||||||
|
/* font-size: 80%;
|
||||||
|
/*}*/
|
||||||
|
.code-pre {
|
||||||
|
background-color: #eee;
|
||||||
|
padding: 1rem;
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
|
<title>MySQL Tuner</title>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
|
|
||||||
|
|
||||||
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<ul class="nav nav-tabs">
|
<div class="container">
|
||||||
|
<div class="pricing-header px-3 py-3 pt-md-5 pb-md-4 mx-auto text-center">
|
||||||
<H1>MySQL Tuner</H1>
|
<H1>MySQL Tuner</H1>
|
||||||
<li class="active"><a data-toggle="tab" href="#home">Home</a></li>
|
</div>
|
||||||
<li><a data-toggle="tab" href="#debug">Debug</a></li>
|
<ul class="nav nav-tabs" role="tablist">
|
||||||
|
<li class="active" class="nav-item">
|
||||||
|
<a class="nav-link" id="home-tab" data-toggle="tab" role="tab" aria-controls="home" aria-selected="true" href="#home">Home</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" id="debug-tab" data-toggle="tab" role="tab" aria-controls="debug" aria-selected="false" href="#debug">Debug</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div id="home" class="tab-pane active">
|
<div id="home" class="tab-pane">
|
||||||
<h3>Home</h3>
|
<h3>Home</h3>
|
||||||
<h5>Report date: </h5>
|
<h5>Report date: [% localtime %]</h5>
|
||||||
<h5>Report host: </h5>
|
<h5>Report host: [% $data{'Variables'}{'hostname'} %]</h5>
|
||||||
<h5>Server version: </h5>
|
<h5>Report OS: [% $data{'OS'}{'OS Type'} %], Architecture:[% $data{'OS'}{'Architecture'} %], Ram: [% $data{'OS'}{'Physical Memory'}{'pretty'} %]</h5>
|
||||||
<pre>{$data}</pre>
|
<h5>Server version: [% $data{'Variables'}{'version'} %], [% $data{'Variables'}{'version_compile_machine'} %], [% $data{'Status'}{'version_comment'} %]</h5>
|
||||||
|
<hr/>
|
||||||
|
<h3>Recommendations</h3>
|
||||||
|
<ul>
|
||||||
|
[%
|
||||||
|
foreach $i ( @{$data{'Recommendations'}} ) {
|
||||||
|
$OUT .= "<li>$i</li>";
|
||||||
|
}
|
||||||
|
%]
|
||||||
|
</ul>
|
||||||
|
<h3>Adjust variables</h3>
|
||||||
|
<ul>
|
||||||
|
[%
|
||||||
|
foreach $i ( @{$data{'Adjust variables'}} ) {
|
||||||
|
$OUT .= "<li>$i</li>";
|
||||||
|
}
|
||||||
|
%]
|
||||||
|
</ul>
|
||||||
<hr/>
|
<hr/>
|
||||||
</div>
|
</div>
|
||||||
<div id="debug" class="tab-pane fade">
|
<div id="debug" class="tab-pane">
|
||||||
<h3>Raw Result Data Structure</h3>
|
<h3>Raw Result Data Structure</h3>
|
||||||
<h5>Report date: </h5>
|
<pre class="code-pre"><code class="language-json" data-lang="json">[% $debug %]</code></pre>
|
||||||
<h5>Report host: </h5>
|
|
||||||
<h5>Server version: </h5>
|
|
||||||
<pre>{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}{$data}
|
|
||||||
{$data}
|
|
||||||
{$data}</pre>
|
|
||||||
<hr/>
|
<hr/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<span class="text-muted">MySQL Tuner 1.7.13</span>
|
<span class="text-muted">MySQL Tuner 1.7.13</span>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
</div>
|
||||||
|
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
|
||||||
|
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
<!-- vim: set ft=html ts=2 sw=2 tw=999 et :-->
|
||||||
|
Loading…
Reference in New Issue
Block a user