summaryrefslogtreecommitdiffstats
path: root/perl-install
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install')
-rwxr-xr-xperl-install/standalone/drakbackup52
1 files changed, 44 insertions, 8 deletions
diff --git a/perl-install/standalone/drakbackup b/perl-install/standalone/drakbackup
index 866ed371e..28b10c98b 100755
--- a/perl-install/standalone/drakbackup
+++ b/perl-install/standalone/drakbackup
@@ -72,7 +72,7 @@
#
# REQUIRE: cron if daemon
# cdrecord & mkisofs
-# ftp || perl Net::FTP
+# perl Net::FTP
# ssh-askpass
#
# PBS persistants:
@@ -84,7 +84,7 @@
#
#
# TODO:
-# 4 - change NET::FTP to ftp cmds.
+# 4 - print ftp problem for user.
# 6 - calcul disk space.
# use quota.
# 7 - ssh & rsync -> expect or .identity.pub/authorized_keys
@@ -252,7 +252,8 @@ my $passwd_user= '';
my $save_device_tape = ();
my $cdrw_erase = 0;
my $no_critical_sys = 1;
-
+my $send_mail = 0;
+my $user_mail;
foreach (@ARGV) {
/--default/ and $default = 1, $mode=-1;
@@ -307,6 +308,7 @@ sub save_conf_file {
"HOST_PATH=$host_path\n",
"NET_PROTO=$net_proto\n",
"CD_TIME=$cd_time\n",
+ "USER_MAIL=$user_mail\n",
"DAEMON_TIME_SPACE=$when_space\n",
"CDRW_DEVICE=$cd_devive\n",
"LOGIN=$login_user\n",
@@ -315,6 +317,7 @@ sub save_conf_file {
);
$no_critical_sys and push @cfg_list, "NO_CRITICAL_SYS\n" ;
$no_critical_sys or push @cfg_list, "CRITICAL_SYS\n" ;
+ $send_mail and push @cfg_list, "SEND_MAIL\n";
$backup_sys_versions and push @cfg_list, "SYS_INCREMENTAL_BACKUPS\n" ;
$backup_user_versions and push @cfg_list, "USER_INCREMENTAL_BACKUPS\n" ;
$backup_other_versions and push @cfg_list, "OTHER_INCREMENTAL_BACKUPS\n" ;
@@ -386,7 +389,7 @@ sub save_cron_files {
sub read_conf_file {
read_passwd();
if (-e $cfg_file) {
- open ( CONF_FILE, "<"."$cfg_file") || die;
+ open ( CONF_FILE, "<"."$cfg_file") || print "You must be root to read configuration file. \n" ;
while (<CONF_FILE>) {
next unless /\S/;
next if /^#/;
@@ -419,7 +422,9 @@ sub read_conf_file {
if (/^REMEMBER_PASS/) { $remember_pass = 1; }
if (/^LOGIN/) { s/^LOGIN=//gi; $login_user = $_; $remember_pass = 1; }
if (/^PASSWD/) { s/^PASSWD=//gi; $passwd_user = $_; $remember_pass = 1; }
+ if (/^USER_MAIL/) { s/^USER_MAIL=//gi; $user_mail= $_; }
if (/^USE_NET_FTP/) { $where_net_ftp = 1; }
+ if (/^SEND_MAIL/) { $send_mail = 1; }
if (/^USE_NET_SSH/) { $where_net_ssh = 1; }
if (/^TAPE_DEVICE/) { s/TAPE_DEVICE=//gi; $save_device_tape = $_;}
if (/^CDRW_ERASE/) { $cdrw_erase = 1;}
@@ -428,6 +433,7 @@ sub read_conf_file {
if (/^OTHER_INCREMENTAL_BACKUPS/) { $backup_other_versions = 1;}
if (/^NO_CRITICAL_SYS/) { $no_critical_sys = 1;}
if (/^CRITICAL_SYS/) { $no_critical_sys = 0;}
+
}
read_cron_files();
$cfg_file_exist = 1;
@@ -475,6 +481,12 @@ sub ssh_client {
# close S;
}
+sub send_mail {
+ my ($result) = @_;
+ my $date_ = `date`;
+ system("mail $user_mail -s 'DrakBackup report on $date_' < $save_path/$result ");
+}
+
sub build_backup_files {
my $path_name;
my $tar_cmd;
@@ -491,6 +503,7 @@ sub build_backup_files {
my @list_other_;
my @dir_content = ();
my $file_date;
+ my $results;
read_conf_file();
the_time();
@@ -529,6 +542,8 @@ sub build_backup_files {
system("$tar_cmd_sys -f $save_path/backup_incr_sys$the_time.$tar_ext -T $save_path/list_incr_sys$the_time.txt");
push @file_list_to_send_by_ftp, "$save_path/backup_incr_sys$the_time.$tar_ext";
push @file_list_to_send_by_ftp, "$save_path/list_incr_sys$the_time.txt";
+ $results .= "\nfile: $save_path/backup_incr_sys$the_time.$tar_ext\n";
+ $results .= cat_("$save_path/list_incr_sys$the_time.txt");
}
}
elsif (grep /^backup\_base\_sys/, @dir_content) {
@@ -542,17 +557,21 @@ sub build_backup_files {
system("$tar_cmd_sys -f $save_path/backup_incr_sys$the_time.$tar_ext -T $save_path/list_incr_sys$the_time.txt");
push @file_list_to_send_by_ftp, "$save_path/backup_incr_sys$the_time.$tar_ext";
push @file_list_to_send_by_ftp, "$save_path/list_incr_sys$the_time.txt";
+ $results .= "\nfile: $save_path/backup_incr_sys$the_time.$tar_ext\n";
+ $results .= cat_("$save_path/list_incr_sys$the_time.txt");
}
}
else {
system("$tar_cmd_sys -f $save_path/backup_base_sys$the_time.$tar_ext @sys_files");
push @file_list_to_send_by_ftp, "$save_path/backup_base_sys$the_time.$tar_ext";
+ $results .= "\nfile: $save_path/backup_base_sys$the_time.$tar_ext\n";
}
}
else {
# system("cd $save_path && rm -f backup_sys* backup_base_sys* backup_incr_sys*");
system("$tar_cmd_sys -f $save_path/backup_sys$the_time.$tar_ext @sys_files");
push @file_list_to_send_by_ftp, "$save_path/backup_sys$the_time.$tar_ext";
+ $results .= "\nfile: $save_path/backup_sys$the_time.$tar_ext\n";
}
}
@@ -563,6 +582,7 @@ sub build_backup_files {
system("cd $save_path && rm -f backup_other* ");
system("$tar_cmd_other -f $save_path/backup_other$the_time.$tar_ext @list_other");
push @file_list_to_send_by_ftp, "$save_path/backup_other$the_time.$tar_ext";
+ $results .= "\nfile: $save_path/backup_other$the_time.$tar_ext\n";
foreach (@list_other) { push @list_other_, $_ . "\n"; }
output_p( $save_path . '/list_other', @list_other_);
}
@@ -586,6 +606,8 @@ sub build_backup_files {
system("$tar_cmd_user -f $save_path/backup_incr_user_$user$the_time.$tar_ext -T $save_path/list_incr_user_$user$the_time.txt");
push @file_list_to_send_by_ftp, "$save_path/backup_incr_user_$user$the_time.$tar_ext";
push @file_list_to_send_by_ftp, "$save_path/list_incr_user_$user$the_time.txt";
+ $results .= " \nfile: $save_path/backup_incr_user_$user$the_time.$tar_ext";
+ $results .= cat_("$save_path/list_incr_user_$user$the_time.txt");
}
}
elsif (grep /^backup\_base\_user\_$user\_/, @dir_content) {
@@ -599,16 +621,20 @@ sub build_backup_files {
system("$tar_cmd_user -f $save_path/backup_incr_user_$user$the_time.$tar_ext -T $save_path/list_incr_user_$user$the_time.txt");
push @file_list_to_send_by_ftp, "$save_path/backup_incr_user_$user$the_time.$tar_ext";
push @file_list_to_send_by_ftp, "$save_path/list_incr_user_$user$the_time.txt";
+ $results .= "\nfile: $save_path/backup_incr_user_$user$the_time.$tar_ext";
+ $results .= cat_("$save_path/list_incr_user_$user$the_time.txt");
}
}
else {
system("$tar_cmd_user -f $save_path/backup_base_user_$user$the_time.$tar_ext $path_name");
push @file_list_to_send_by_ftp, "$save_path/backup_base_user_$user$the_time.$tar_ext";
+ $results .= "\nfile: $save_path/backup_base_user_$user$the_time.$tar_ext";
}
} else {
system("cd $save_path && rm -f backup_user_$_* backup_base_user_$_* backup_incr_user_$_*");
system("$tar_cmd_user -f $save_path/backup_user_$_$the_time.$tar_ext $path_name");
push @file_list_to_send_by_ftp, "$save_path/backup_user_$_$the_time.$tar_ext";
+ $results .= "\nfile: $save_path/backup_user_$user$the_time.$tar_ext";
}
}
}
@@ -622,7 +648,10 @@ sub build_backup_files {
if ($where_net_ftp) {
ftp_client();
}
- if ($where_cd) { }
+ if ($where_cd) {
+ }
+ output_p( $save_path . "/results/results$the_time", $results);
+ $send_mail and send_mail("/results/results$the_time");
}
sub list_remove {
@@ -1044,7 +1073,7 @@ sub advanced_where_cd {
0, gtkpack_(new Gtk::HBox(0,10),
0, gtkset_sensitive(new Gtk::Label(_(" Please check if you want to include\n install boot on your CD.")), $where_cd),
1, new Gtk::VBox(0, 5),
- 0, gtkset_sensitive(my $check_cd_with_install_boot = new Gtk::CheckButton(), $where_cd),
+ 0, gtkset_sensitive(my $check_cd_with_install_boot = new Gtk::CheckButton(), $where_cd),
),
0, new Gtk::VBox(0, 5),
0, gtkpack_(new Gtk::HBox(0,10),
@@ -1300,13 +1329,20 @@ sub advanced_options{
0, gtkpack_(new Gtk::VBox(0,10),
0, gtkset_sensitive(my $check_tar_bz2 = new Gtk::CheckButton( _(" Use Tar and bzip2 ( very slow) [please be careful if you\n (un)select this option all your old backups will be deleted ]") ), 0),
0, gtkset_sensitive(my $check_backupignore = new Gtk::CheckButton( _(" Use .backupignore files")), 0),
+ 0, gtkpack_(new Gtk::HBox(0,10),
+ 0, my $check_mail = new Gtk::CheckButton( _("Send mail after each backup to :")),
+ 1, new Gtk::HBox(0,10),
+ 0, my $mail_entry = new Gtk::Entry(),
),
- ),
+ ),
+ ),
);
- foreach ([$check_tar_bz2, \$comp_mode], [$check_backupignore, \$backupignore]) {
+ foreach ([$check_tar_bz2, \$comp_mode], [$check_backupignore, \$backupignore], [$check_mail, \$send_mail]) {
my $ref = $_->[1];
gtksignal_connect(gtkset_active($_->[0], ${$ref}), toggled => sub { ${$ref} = ${$ref} ? 0 : 1; })
}
+ $mail_entry->set_text( $user_mail );
+ $mail_entry->signal_connect( 'changed', sub { $user_mail = $mail_entry->get_text()});
$custom_help = "options";
$current_widget = \&advanced_options;
$previous_widget =\&advanced_box;