From 01f32cd651a07c85fb3ac8f9f244aa41e02e9430 Mon Sep 17 00:00:00 2001 From: Gerhard Gonter <ggonter@gmail.com> Date: Mon, 12 Jan 2015 19:40:30 +0100 Subject: [PATCH] copied from local script --- simon/lib/SiMon/MySQL.pm | 71 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 simon/lib/SiMon/MySQL.pm diff --git a/simon/lib/SiMon/MySQL.pm b/simon/lib/SiMon/MySQL.pm new file mode 100755 index 0000000..679876b --- /dev/null +++ b/simon/lib/SiMon/MySQL.pm @@ -0,0 +1,71 @@ +#!/usr/bin/perl + +use strict; + +my $do_zip= 1; +my $do_bup= 1; + +sub new +{ + my $class= shift; + + my $self= {}; + bless $self, $class; + $self->set(@_); + $self; +} + +sub set +{ + my $self= shift; + my %par= @_; + foreach my $par (keys %par) + { + $self->{$par}= $par{$par}; + } + $self; +} + +sub mk_mysql_dump +{ + my $self= shift; + my $fnm= shift; + my @rest= @_; + + my ($user, $pass, $db_name)= map { $self->{$_} or die } qw(user pass db); + + $fnm= sprintf ('%s_%s.dump', $db_name, ts_ISO()) unless ($fnm); + + print "saving to fnm=[$fnm]\n"; + my @cmd1= ('/usr/bin/mysqldump', '-u', $user); + push (@cmd1, "--password=$pass"); + # push (@cmd1, '-p', $pass); # does not work that way! + my $idx_p= $#cmd1; + push (@cmd1, @rest); + push (@cmd1, '-r', $fnm, $db_name); + + my @cmd2= @cmd1; + $cmd2[$idx_p]= "--password='xxxx'"; + # $cmd2[$idx_p]= 'xxxx'; + + print "cmd: [", join (' ', @cmd2), "]\n"; + + if ($do_bup) + { + system (@cmd1); + print "\n\n"; + system ('gzip', '-v', $fnm) if ($do_zip); + } +} + +sub ts_ISO +{ + my $t= shift || time (); + + my @t= localtime ($t); + + sprintf ("%4d-%02d-%02dT%02d%02d%02d", $t[5]+1900, $t[4]+1, $t[3], $t[2], $t[1], $t[0]); +} + +1; + -- GitLab