X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Fbackup.cgi;h=552132250d9c3bc34a706808549e6941b63bbe91;hb=7722d5010db2180420bc98ec017ff80087773bc3;hp=110bbeb91b4d67d1b2d5baa0c8b39b3e58af080e;hpb=70df830214c97a68fcb7e89ae0d7df58c35590be;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/html/cgi-bin/backup.cgi b/html/cgi-bin/backup.cgi index 110bbeb91b..552132250d 100644 --- a/html/cgi-bin/backup.cgi +++ b/html/cgi-bin/backup.cgi @@ -21,8 +21,8 @@ use strict; # enable only the following on debugging purpose -#use warnings; -#use CGI::Carp 'fatalsToBrowser'; +use warnings; +use CGI::Carp 'fatalsToBrowser'; use File::Copy; require '/var/ipfire/general-functions.pl'; @@ -35,7 +35,6 @@ my %cgiparams=(); my %checked = (); my $message = ""; my $errormessage = ""; -my @backups = `cd /var/ipfire/backup/ && ls *.ipf`; $a = new CGI; @@ -49,29 +48,57 @@ $cgiparams{'BACKUPLOGS'} = ''; &Header::getcgihash(\%cgiparams); +############################################################################################################################ +################################################ Workaround for Directories ################################################ + +system("/usr/local/bin/backupctrl makedirs >/dev/null 2>&1 ") unless ( -e '/var/ipfire/backup/addons/backup') ; + ############################################################################################################################ ############################################## System calls ohne Http Header ############################################### if ( $cgiparams{'ACTION'} eq "download" ) { - open(DLFILE, "; - print "Content-Type:application/x-download\n"; - print "Content-Disposition:attachment;filename=$cgiparams{'FILE'}\n\n"; - print @fileholder; - exit (0); + open(DLFILE, "; + print "Content-Type:application/x-download\n"; + print "Content-Disposition:attachment;filename=$cgiparams{'FILE'}\n\n"; + print @fileholder; + exit (0); +} +if ( $cgiparams{'ACTION'} eq "downloadaddon" ) +{ + open(DLFILE, "; + print "Content-Type:application/x-download\n"; + print "Content-Disposition:attachment;filename=$cgiparams{'FILE'}\n\n"; + print @fileholder; + exit (0); } elsif ( $cgiparams{'ACTION'} eq "restore" ) { - my $upload = $a->param("UPLOAD"); - open UPLOADFILE, ">/tmp/restore.ipf"; - binmode $upload; - while ( <$upload> ) { - print UPLOADFILE; - } - close UPLOADFILE; - system("/usr/local/bin/backupctrl restore >/dev/null"); + my $upload = $a->param("UPLOAD"); + open UPLOADFILE, ">/tmp/restore.ipf"; + binmode $upload; + while ( <$upload> ) { + print UPLOADFILE; + } + close UPLOADFILE; + system("/usr/local/bin/backupctrl restore >/dev/null 2>&1"); +} +elsif ( $cgiparams{'ACTION'} eq "restoreaddon" ) +{ + chomp($cgiparams{'UPLOAD'}); + # we need to fix cause IE7 gives the full path and FF only the filename + my @temp = split(/\\/,$cgiparams{'UPLOAD'}); + my $upload = $a->param("UPLOAD"); + open UPLOADFILE, ">/tmp/".$temp[$#temp]; + binmode $upload; + while ( <$upload> ) { + print UPLOADFILE; + } + close UPLOADFILE; + system("/usr/local/bin/backupctrl restoreaddon ".$temp[$#temp]." >/dev/null 2>&1"); } &Header::showhttpheaders(); @@ -86,18 +113,20 @@ sub refreshpage{&Header::openbox( 'Waiting', 1, "/dev/null");} - else {system("/usr/local/bin/backupctrl exclude >/dev/null");} - refreshpage(); + if ( $cgiparams{'BACKUPLOGS'} eq "include" ){system("/usr/local/bin/backupctrl include >/dev/null 2>&1");} + else {system("/usr/local/bin/backupctrl exclude >/dev/null 2>&1");} +} +if ( $cgiparams{'ACTION'} eq "addonbackup" ) +{ + system("/usr/local/bin/backupctrl addonbackup $cgiparams{'ADDON'} >/dev/null 2>&1"); } elsif ( $cgiparams{'ACTION'} eq "delete" ) { - system("/usr/local/bin/backupctrl $cgiparams{'FILE'} >/dev/null"); - refreshpage(); + system("/usr/local/bin/backupctrl $cgiparams{'FILE'} >/dev/null 2>&1"); } ############################################################################################################################ -########################################### rekursiv nach neuen Mp3s Scannen ##############################################ä +############################################ Backups des Systems erstellen ################################################# if ( $message ne "" ){ &Header::openbox('100%','left',$Lang::tr{'error messages'}); @@ -105,21 +134,30 @@ if ( $message ne "" ){ &Header::closebox(); } +my @backups = `cd /var/ipfire/backup/ && ls *.ipf 2>/dev/null`; + &Header::openbox('100%', 'center', $Lang::tr{'backup'}); print < - - + +
$Lang::tr{'logs'}include Logfiles / - exclude Logfiles
-
$Lang::tr{'logs'}$Lang::tr{'include logfiles'} + / + $Lang::tr{'exclude logfiles'} +
+ + +
END ; &Header::closebox(); +############################################################################################################################ +############################################ Backups des Systems downloaden ################################################ + &Header::openbox('100%', 'center', $Lang::tr{'backups'}); print <$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB
"; print "
"; } -print < END ; &Header::closebox(); +############################################################################################################################ +############################################# Backups von Addons erstellen ################################################# + +&Header::openbox('100%', 'center', 'addons'); + +my @addonincluds = `ls /var/ipfire/backup/addons/includes/ 2>/dev/null`; +my @addons = `ls /var/ipfire/backup/addons/backup/ 2>/dev/null`; +my %addons; + +foreach (@addons){ + my $addon=substr($_,0,length($_)-5); + $addons{$addon}=''; +} + +print ""; +foreach (@addonincluds){ +chomp($_); +delete $addons{$_}; +my $Datei = "/var/ipfire/backup/addons/backup/".$_.".ipf"; +my @Info = stat($Datei); +my $Size = $Info[7] / 1024; +$Size = sprintf("%2d", $Size); +if ( -e $Datei ){ +print ""; +print < +
+ + + + + +
+END +; +} +else{ + print ""; +} +print < +
+ + + + +
+END +; +} +foreach (keys(%addons)){ +chomp($_); +my $Datei = "/var/ipfire/backup/addons/backup/".$_.".ipf"; +my @Info = stat($Datei); +my $Size = $Info[7] / 1024; +$Size = sprintf("%2d", $Size); +print ""; +print < +
+ + + + + +
+ +END +; +} + +print "
$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9])." +
+ + + +
+
$Lang::tr{'backup from'} $_
$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9])." +
+ + + +
+
"; +&Header::closebox(); + +############################################################################################################################ +####################################### Backups des Systems wiederherstellen ############################################### + &Header::openbox('100%', 'center', $Lang::tr{'restore'}); print < -$Lang::tr{'backup'}
+
$Lang::tr{'backupwarning'}


+$Lang::tr{'backup'}
+$Lang::tr{'backupaddon'}
END ;