mirror of
https://github.com/webmin/webmin.git
synced 2026-05-07 15:50:27 +01:00
Add custom mysql backup parameters option
This commit is contained in:
@@ -98,6 +98,7 @@ foreach $db (@dbs) {
|
||||
"root",
|
||||
$config{'backup_single_'.$sf},
|
||||
$config{'backup_quick_'.$sf},
|
||||
$config{'backup_parameters_'.$sf}
|
||||
);
|
||||
if ($err) {
|
||||
$ex = 1;
|
||||
|
||||
@@ -92,6 +92,7 @@ if ($module_info{'usermin'}) {
|
||||
$userconfig{'backup_drop_'.$in{'db'}} = $in{'drop'};
|
||||
$userconfig{'backup_single_'.$in{'db'}} = $in{'single'};
|
||||
$userconfig{'backup_quick_'.$in{'db'}} = $in{'quick'};
|
||||
$userconfig{'backup_parameters_'.$in{'db'}} = $in{'parameters'};
|
||||
$userconfig{'backup_tables_'.$in{'db'}} = join(" ", @tables);
|
||||
if ($in{'save'}) {
|
||||
&save_user_module_config();
|
||||
@@ -116,6 +117,7 @@ else {
|
||||
$config{'backup_drop_'.$in{'db'}} = $in{'drop'};
|
||||
$config{'backup_single_'.$in{'db'}} = $in{'single'};
|
||||
$config{'backup_quick_'.$in{'db'}} = $in{'quick'};
|
||||
$config{'backup_parameters_'.$in{'db'}} = $in{'parameters'};
|
||||
$config{'backup_tables_'.$in{'db'}} = join(" ", @tables);
|
||||
if ($in{'save'}) {
|
||||
&save_module_config();
|
||||
@@ -204,7 +206,7 @@ if (!$in{'save'}) {
|
||||
$in{'drop'}, $in{'where_def'} ? undef : $in{'where'},
|
||||
$in{'charset_def'} ? undef : $in{'charset'},
|
||||
\@compat, \@tables, $access{'buser'}, $in{'single'},
|
||||
$in{'quick'});
|
||||
$in{'quick'}, $in{'parameters'});
|
||||
if ($err) {
|
||||
print &text('backup_ebackup',
|
||||
"<pre>".&html_escape($err)."</pre>"),"<p>\n";
|
||||
|
||||
@@ -150,6 +150,11 @@ $q = $c{'backup_quick_'.$in{'db'}};
|
||||
print &ui_table_row($text{'backup_quick'},
|
||||
&ui_yesno_radio("quick", $q ? 1 : 0));
|
||||
|
||||
# Allow user to specify custom backup parameters
|
||||
$b = $c{'backup_parameters_'.$in{'db'}};
|
||||
print &ui_table_row($text{'backup_parameters'},
|
||||
&ui_textbox("parameters", $b, 60));
|
||||
|
||||
if ($cron) {
|
||||
# Show before/after commands
|
||||
$b = $c{'backup_before_'.$in{'db'}};
|
||||
|
||||
@@ -621,6 +621,7 @@ backup_none=All rows
|
||||
backup_drop=Add <tt>drop table</tt> statements to backup?
|
||||
backup_single=Backup within a transaction?
|
||||
backup_quick=Dump rows one at a time?
|
||||
backup_parameters=Add custom parameters to backup command?
|
||||
backup_charset=Character set for backup
|
||||
backup_ok=Backup Now
|
||||
backup_ok1=Save and Backup Now
|
||||
|
||||
@@ -1439,13 +1439,13 @@ return $two eq "\037\213" ? 1 :
|
||||
|
||||
# backup_database(db, dest-file, compress-mode, drop-flag, where-clause,
|
||||
# charset, &compatible, &only-tables, run-as-user,
|
||||
# single-transaction-flag, quick-flag, force-flag)
|
||||
# single-transaction-flag, quick-flag, parameters, force-flag)
|
||||
# Backs up a database to the given file, optionally with compression. Returns
|
||||
# undef on success, or an error message on failure.
|
||||
sub backup_database
|
||||
{
|
||||
local ($db, $file, $compress, $drop, $where, $charset, $compatible,
|
||||
$tables, $user, $single, $quick, $force) = @_;
|
||||
$tables, $user, $single, $quick, $parameters, $force) = @_;
|
||||
if ($compress == 0) {
|
||||
$writer = "cat >".quotemeta($file);
|
||||
}
|
||||
@@ -1459,6 +1459,7 @@ local $dropsql = $drop ? "--add-drop-table" : "";
|
||||
local $singlesql = $single ? "--single-transaction" : "";
|
||||
local $forcesql = $force ? "--force" : "";
|
||||
local $quicksql = $quick ? "--quick" : "";
|
||||
local $parameterssql = $parameters ? quotemeta($parameters) : "";
|
||||
local $wheresql = $where ? "--where=".quotemeta($in{'where'}) : "";
|
||||
local $charsetsql = $charset ?
|
||||
"--default-character-set=".quotemeta($charset) : "";
|
||||
@@ -1482,7 +1483,7 @@ if ($user && $user ne "root") {
|
||||
# Actual writing of output is done as another user
|
||||
$writer = &command_as_user($user, 0, $writer);
|
||||
}
|
||||
local $cmd = "$config{'mysqldump'} $authstr $dropsql $singlesql $forcesql $quicksql $wheresql $charsetsql $compatiblesql $quotingsql $routinessql ".quotemeta($db)." $tablessql $eventssql $gtidsql | $writer";
|
||||
local $cmd = "$config{'mysqldump'} $authstr $dropsql $singlesql $forcesql $quicksql $parameterssql $wheresql $charsetsql $compatiblesql $quotingsql $routinessql ".quotemeta($db)." $tablessql $eventssql $gtidsql | $writer";
|
||||
if (&shell_is_bash()) {
|
||||
$cmd = "set -o pipefail ; $cmd";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user