Ecco qui:
codice:
#!/usr/bin/perl
# backup.pl
# Called by cron to backup a database
$no_acl_check++;
require './mysql-lib.pl';
if ($ARGV[0] eq "--all") {
$all = 1;
@dbs = &list_databases();
}
else {
$ARGV[0] || die "Missing database parameter";
@dbs = ( $ARGV[0] );
}
$ex = 0;
foreach $db (@dbs) {
if ($all) {
$file = &date_subs("$config{'backup_'}/$db.sql");
}
else {
$file = &date_subs($config{'backup_'.$db});
}
if (!$file) {
print STDERR "No backup file set for database $db\n";
exit(1);
}
$drop = $config{'backup_drop_'.$db} ? "--add-drop-table" : "";
$where = $config{'backup_where_'.$db} ?
"\"--where=".$config{'backup_where_'.$db}."\"" : "";
if (&supports_quoting()) {
$quoting = " --quote-names";
}
@tables = split(/\s+/, $config{'backup_tables_'.$db});
$tables = join(" ", map { quotemeta($_) } @tables);
&execute_before($db, STDOUT, 0, $file, $all ? undef : $db);
unlink($file);
$out = &backquote_logged("$config{'mysqldump'} $authstr $drop $where $quoting ".quotemeta($db)." $tables 2>&1 >$file");
if ($? || $out) {
print "Backup of database $db to file $file failed:\n";
print $out;
$ex = 1;
}
&execute_after($db, STDOUT, 0, $file, $all ? undef : $db);
}
exit($ex);