From 901a50cfed3edc538e2258baab5a98d28ff75790 Mon Sep 17 00:00:00 2001 From: maniacikarus Date: Mon, 15 Oct 2007 19:36:15 +0000 Subject: [PATCH] MPFire CGI korrigiert Backupfunktionen fuer Addons begonnen git-svn-id: http://svn.ipfire.org/svn/ipfire/trunk@974 ea5c0bd1-69bd-2848-81d8-4f18e57aeed8 --- config/backup/backup.pl | 3 + config/backup/include | 1 + config/backup/includes/mpfire | 4 ++ config/backup/includes/samba | 7 ++ html/cgi-bin/backup.cgi | 120 ++++++++++++++++++++++++++-------- html/cgi-bin/mpfire.cgi | 26 ++++---- src/misc-progs/backupctrl.c | 2 +- 7 files changed, 123 insertions(+), 40 deletions(-) create mode 100644 config/backup/includes/mpfire create mode 100644 config/backup/includes/samba diff --git a/config/backup/backup.pl b/config/backup/backup.pl index 59b57cfcc..a9d7a1fde 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -63,6 +63,9 @@ elsif ($ARGV[0] eq 'restore') { elsif ($ARGV[0] eq 'cli') { system("tar -cvzf /var/ipfire/backup/$Jahr$Monat$Monatstag-$Stunden$Minuten-$ARGV[1].ipf --files-from='$ARGV[2]' --exclude-from='$ARGV[3]'"); } +elsif ($ARGV[0] eq 'addonbackup') { + system("tar -cvzf /var/ipfire/backup/addons/backup/$ARGV[1].ipf --files-from='/var/ipfire/backup/addons/includes/$ARGV[1]'"); +} elsif ($ARGV[0] =~ /ipf$/ ) { system("rm /var/ipfire/backup/$ARGV[0]"); } diff --git a/config/backup/include b/config/backup/include index d7f12759c..e6a46f939 100644 --- a/config/backup/include +++ b/config/backup/include @@ -20,6 +20,7 @@ /var/ipfire/ppp /var/ipfire/proxy /var/ipfire/qos/* +/var/ipfire/time/ /var/ipfire/urlfilter /var/ipfire/vpn /var/log/ip-acct/* diff --git a/config/backup/includes/mpfire b/config/backup/includes/mpfire new file mode 100644 index 000000000..7aecb66e8 --- /dev/null +++ b/config/backup/includes/mpfire @@ -0,0 +1,4 @@ +/var/ipfire/mpfire/db/ +/var/ipfire/mpfire/mpd.conf +/var/ipfire/mpfire/mpd_state +/var/ipfire/mpfire/webradio diff --git a/config/backup/includes/samba b/config/backup/includes/samba new file mode 100644 index 000000000..67823bd19 --- /dev/null +++ b/config/backup/includes/samba @@ -0,0 +1,7 @@ +/var/ipfire/samba/global +/var/ipfire/samba/pdc +/var/ipfire/samba/printer +/var/ipfire/samba/private/ +/var/ipfire/samba/settings +/var/ipfire/samba/shares +/var/ipfire/samba/smb.conf diff --git a/html/cgi-bin/backup.cgi b/html/cgi-bin/backup.cgi index 46930ed75..252f51503 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 2>/dev/null`; $a = new CGI; @@ -55,23 +54,23 @@ $cgiparams{'BACKUPLOGS'} = ''; 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); } 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 2>&1"); + 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"); } &Header::showhttpheaders(); @@ -86,18 +85,20 @@ sub refreshpage{&Header::openbox( 'Waiting', 1, "/dev/null 2>&1");} - else {system("/usr/local/bin/backupctrl exclude >/dev/null 2>&1");} - 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'}"); } elsif ( $cgiparams{'ACTION'} eq "delete" ) { - system("/usr/local/bin/backupctrl $cgiparams{'FILE'} >/dev/null 2>&1"); - 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 +106,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'}include Logfiles + / + 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 des Systems wiederherstellen ############################################### + &Header::openbox('100%', 'center', $Lang::tr{'restore'}); print </dev/null`; + +print ""; +foreach (@addonincluds){ +chomp($_); +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 +; +} +print "
$Lang::tr{'backup from'} $_ $Lang::tr{'size'} $Size KB $Lang::tr{'date'} ".localtime($Info[9])." +
+ + + +
+
$Lang::tr{'backup from'} $_
"; +&Header::closebox(); &Header::closebigbox(); &Header::closepage(); diff --git a/html/cgi-bin/mpfire.cgi b/html/cgi-bin/mpfire.cgi index 8c2cee361..a068be876 100644 --- a/html/cgi-bin/mpfire.cgi +++ b/html/cgi-bin/mpfire.cgi @@ -42,11 +42,16 @@ if ( $ENV{'QUERY_STRING'} =~ /title/){ my $song = `/usr/local/bin/mpfirectrl song 2>/dev/null`; if ( $song eq "" ){$song = "None";} &Header::showhttpheaders(); -print""; print < --= $song =- - + + +Song + + + +
-= $song =-
+ END ; } @@ -254,13 +259,12 @@ $stats=~s/\\/
/g &Header::openbox('100%', 'center', $Lang::tr{'mpfire controls'}); print < - END ; my $countsongs=`/usr/local/bin/mpfirectrl stats 2>/dev/null`; -print ""; +print ""; print < @@ -418,7 +422,7 @@ print <";} else {print "";} print <$stream[1] @@ -465,9 +470,8 @@ END $lines++; if ($lines % 2) {print "";} else {print "";} print < - - + + END ; diff --git a/src/misc-progs/backupctrl.c b/src/misc-progs/backupctrl.c index 62229d6e2..2941117b0 100644 --- a/src/misc-progs/backupctrl.c +++ b/src/misc-progs/backupctrl.c @@ -32,7 +32,7 @@ int main(int argc, char *argv[]) { fprintf (stderr, "Bad Argument!\n"); exit (1); } - else if (argc > 2){ + else if (argc > 3){ fprintf (stderr, "Too Many Arguments!\n"); exit (1); } -- 2.39.2

".$countsongs."

".$countsongs."
@@ -454,6 +458,7 @@ my $lines=0; foreach (@webradio){ my @stream = split(/\|/,$_); $lines++; + chomp($stream[2]); if ($lines % 2) {print "
http://
http://