2 # Do an immediate backup
6 require './backup-config-lib.pl';
7 our (%in, %text, %config, $module_config_file);
11 &error_setup($text{'backup_err'});
12 my $dest = &parse_backup_destination("dest", \%in);
13 my ($configfile, $nofiles, $others) = &parse_backup_what("what", \%in);
14 my @mods = split(/\0/, $in{'mods'});
15 @mods || ($nofiles && !$configfile) || &error($text{'backup_emods'});
18 my ($mode, $user, $pass, $server, $path, $port) = &parse_backup_url($dest);
21 # Save somewhere, and tell the user
22 &ui_print_header(undef, $text{'backup_title'}, "");
23 print &text('backup_doing', &nice_dest($dest, 1)),"<p>\n";
26 $err = &execute_backup(\@mods, $dest, \$size, \@files,
27 $configfile, $nofiles,
28 [ split(/\t+/, $others) ]);
30 print &text('backup_failed', $err),"<p>\n";
33 print &text('backup_done', &nice_size($size),
34 scalar(@files)),"<p>\n";
36 &ui_print_footer("", $text{'index_return2'});
39 # Output file in browser
40 my $temp = &transname();
42 $err = &execute_backup(\@mods, $temp, \$size, undef,
43 $configfile, $nofiles);
48 print "Content-type: application/octet-stream\n\n";
51 while(read(TEMP, $buf, 1024)) {
60 $config{'dest'} = $dest;
61 $config{'mods'} = join(" ", @mods);
62 $config{'configfile'} = $in{'configfile'};
63 $config{'nofiles'} = $in{'nofiles'};
64 &lock_file($module_config_file);
65 &save_module_config();
66 &unlock_file($module_config_file);
67 &webmin_log("backup", undef, $dest, { 'mods' => \@mods });