backup datei erstellen

Hallo Leute,

ich bin gerade dabei eine Seite von Perl nach PHP umzuschreiben und hatte bei folgendem script ein Probelm.

Code:
#! /usr/bin/perl

  if (-e "../backup.tar") {
    system("/usr/bin/xxx/htdocs/backup.tar"); 
  }

  system("/usr/bin/tar -cf /xxx/htdocs/backup.tar ../admin ../bilder ../*.html ../*.css");
#  system("/usr/bin/gzip ../backup.tar");

  print "Content-type: text/html\n\n";
  print "<html>\n";
  print "  <head>\n";
  print "  </head>\n";
  print "  <body>\n";
  print "    <script type=\"text/javascript\">\n";
  print "      <!--\n";			 
  print "        top.location = \"http://www.webseite.com/admin/backup_erstellt.php5\";";		  
  print "      //-->\n";
  print "    </script>\n";				
  print "  </body>\n";
  print "</html>\n";

Das obrige Script funktioniert ja auch, nur hab ich noch keinen Befehl gefunden das in PHP zu machen. Hat da jemand eine idee?

Nur für die die nicht verstehen was das script macht:
Das script macht einen Backup und fügt alle dateien in eine *.tar datei die man dann downloaden kann.

Danke schonmal im vorraus,
Junior

P.S.: es muss nicht umbedingt eine *tar datei sein, kann auch *.zip, *.rar, *.tar.gz ...usw. sein...
 
Hallo,
den system-Befehl gibt es in PHP genauso, allerdings hängt es afaik von den lokalen Sicherheitseinstellungen ab, ob und was du damit machen kannst.

http://de.php.net/system

P.S:
system("/usr/bin/xxx/htdocs/backup.tar");

Was soll dieser Befehl denn machen?
Ich dachte, mit system() ruft man ein Programm auf (?).

mfg, metax.
 
Auch in PHP kannst du auf Systembefehle mit system() zurückgreifen. Das sollte also ganz analog funktionieren. Die erste IF-Schleife (deren Sinn ich nicht ganz verstehe) kann raus, die Shebang auch und dafür davor und dahinter PHP-Delimiter, dann sollte das ohne Umschreiben auf Anhieb laufen.
 
Original von metax.
Was soll dieser Befehl denn machen?
Ich dachte, mit system() ruft man ein Programm auf (?).

eigentlich sollte der falls es die datei backup.tar schon gibt die datei löschen. aber ich weiß es nicht....
Die Perl datei hab nicht ich sondern mein Vater geschrieben. Und ich schrieb sie um weil der größteil der Webseite(den teil den ich gemacht hab) in PHP ist.
 
Aha, OK.
Probier's mal so:
Code:
<?php
if (file_exists("../backup.tar.")) {
  unlink("../backup.tar.");
}

system("/usr/bin/tar -cf /xxx/htdocs/backup.tar ../admin ../bilder ../*.html ../*.css");
?>

<html>
  <head>
  </head>
  <body>
    <script type="text/javascript">
     <!--		 
        top.location = "http://www.webseite.com/admin/backup_erstellt.php5";		  
      //-->
    </script>				
  </body>
</html>
 
Man kann übrigens mittels "header ( 'Location: http://...' );" auch eine saubere HTTP-Umleitung machen statt da diesen JavaScript-Schnipsel zu erzeugen...
 
Ok danke Leute, es funktiorniert...

@metax: Danke!!

@LX: ich weiß das werd ich auch machen

@easterregg: das backup ist nicht zu groß und der Server relativ schnell, also denk ich das ich da vorerst keine Probleme haben werde :)
 
Zurück
Oben