/usr/sbin/mmm_backup is in mysql-mmm-tools 2.2.1-1.1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #!/usr/bin/env perl
use strict;
use warnings FATAL => 'all';
use English qw( PROGRAM_NAME );
use File::Basename;
use Log::Log4perl qw(:easy);
use Getopt::Long;
Log::Log4perl->easy_init( { level => $INFO, layout => '%p: %m%n' });
# Define version
use constant MMM_VERSION => '2.2.1';
# Include parts of the system
use MMM::Common::Config;
use MMM::Tools::Tools;
# Maybe we were just asked for our version
if (scalar(@ARGV) == 1 && $ARGV[0] eq "--version") {
printf "%s %s\n", basename($PROGRAM_NAME), MMM_VERSION;
exit(0);
}
my $config_file = '';
my $host_name = '';
my $copy_method = '';
my $dest_dir = '';
print_usage() unless (
GetOptions(
'config=s' => \$config_file,
'host=s' => \$host_name,
'copy-method=s' => \$copy_method,
'dest-dir=s' => \$dest_dir
)
);
$config_file = 'mmm_tools' if ($config_file eq '');
# Read configuration
our $config = new MMM::Common::Config::;
$config->read($config_file);
$config->check('TOOLS');
print_usage("Invalid host name '$host_name'") unless (defined($config->{host}->{$host_name}));
my $host = $config->{host}->{$host_name};
$copy_method = $config->{default_copy_method} if ($copy_method eq '');
$dest_dir = $host->{backup_dir} if ($dest_dir eq '');
print_usage("Invalid copy method '$copy_method'") unless (defined($config->{copy_method}->{$copy_method}));
my $should_be_empty = (!$config->{copy_method}->{$copy_method}->{incremental});
print_usage("Invalid backup directory '$dest_dir'") unless (MMM::Tools::Tools::check_backup_destination($dest_dir, $should_be_empty));
die unless (MMM::Tools::Tools::check_ssh_connection($host_name));
die unless (MMM::Tools::Tools::create_remote_snapshot($host_name));
die unless (MMM::Tools::Tools::copy_clone_dirs($host_name, $copy_method, $dest_dir));
die unless (MMM::Tools::Tools::copy_from_remote($host_name, 'scp', $dest_dir, '_mmm'));
die unless (MMM::Tools::Tools::save_copy_method($dest_dir, $copy_method));
die unless (MMM::Tools::Tools::remove_remote_snapshot($host_name));
exit 0;
sub print_usage {
my $msg = shift;
print "$msg\n\n" if ($msg);
print "Usage: $0 [--config <config file>] --host <host> [--copy-method <copy method>] [--dest-dir <dir>]\n";
if ($main::config) {
print "Where:\n";
printf(" host : %s\n", join(' | ', sort(keys(%{$main::config->{host}}))));
printf(" copy-method: %s (default: %s)\n", join(' | ', sort(keys(%{$main::config->{copy_method}}))), $config->{default_copy_method});
print " dest-dir : directory where data should be backed up to\n\n";
}
exit(1);
}
|