Files
webmin/backup-config/backup.pl
2007-04-12 20:24:50 +00:00

52 lines
1.3 KiB
Perl
Executable File

#!/usr/local/bin/perl
# Execute a backup on schedule
$no_acl_check++;
require './backup-config-lib.pl';
&foreign_require("mailboxes", "mailboxes-lib.pl");
# Get the backup
$backup = &get_backup($ARGV[0]);
$backup || die "Failed to find backup $ARGV[0]";
# Do it
@mods = split(/\s+/, $backup->{'mods'});
$err = &execute_backup(\@mods, $backup->{'dest'}, \$size, undef,
$backup->{'configfile'}, $backup->{'nofiles'},
[ split(/\t+/, $backup->{'others'}) ]);
# Send off the results
if (($err || $backup->{'emode'} == 0) && $backup->{'email'}) {
foreach $m (@mods) {
%minfo = &get_module_info($m);
$mlist .= " $minfo{'desc'}\n";
}
$host = &get_system_hostname();
$nice = &nice_dest($backup->{'dest'}, 1);
$nice =~ s/<[^>]+>//g;
$err =~ s/<[^>]+>//g;
if ($err) {
$msg = $text{'email_mods'}."\n".
$mlist.
"\n".
&text('email_failed', $nice)."\n\n".
" $err\n";
$subject = &text('email_sfailed', $host);
}
else {
$msg = $text{'email_mods'}."\n".
$mlist.
"\n".
&text('email_ok', $nice)."\n".
&text('email_final', &nice_size($size))."\n";
$subject = &text('email_sok', $host);
}
&mailboxes::send_text_mail($config{'from_addr'} ||
&mailboxes::get_from_address(),
$backup->{'email'},
undef,
$subject,
$msg);
}