Initial commit
This commit is contained in:
586
backup/backup_db.php
Normal file
586
backup/backup_db.php
Normal file
@ -0,0 +1,586 @@
|
||||
<?php
|
||||
|
||||
# Fuer debugging
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
#echo __LINE__."<br>";
|
||||
|
||||
|
||||
ignore_user_abort(true); // DAMIT DAS SCRIPT AUF KEINEN TIMEOUT L<>UFT
|
||||
@set_time_limit(0);
|
||||
@ini_set("memory_limit","256M");
|
||||
// Script Konfiguration
|
||||
require("../config/datenbankanbindung.php"); // fügt die Datenbankanbindung ein: Sys:\php\includes\kurs\datenbankanbindung.php
|
||||
$frist = 20; //Anzahl der Tage der Speicherzeit
|
||||
// Konfiguration Ende
|
||||
|
||||
|
||||
dbconnect();
|
||||
$path = "dump/";
|
||||
// -----------------------------------------------------
|
||||
// Don't change the lines below:
|
||||
if (!is_dir($path)) { mkdir($path, 0777); }
|
||||
echo "<b>Datenbank Dump</b><br><br><br>";
|
||||
echo "Servername: '".$db_host."'<br>";
|
||||
echo "Betriebssystem: ".php_uname()."<br>";
|
||||
echo "MySQL-Version: ".mysql_get_server_info()."<br>";
|
||||
echo "PHP - Version: ".phpversion()."<br><br>";
|
||||
echo "<table border=\"1\" width=\"60%\">";
|
||||
echo "<tr>
|
||||
<td>DB Name</td>
|
||||
<td>Anzahl Tabellen</td>
|
||||
<td>Gr<47><72>e</td></tr>";
|
||||
echo "<tr><td>$db_name</td>";
|
||||
$database = $db_name;
|
||||
$zaehler = 0;
|
||||
$file_name = $path.date("Y-m-d_H-i")."_".$database.".sql";
|
||||
$text = "# --------------------------------------------------------\r\n";
|
||||
$text .= "# DATENBANK DUMP\r\n";
|
||||
$text .= "# Host: ".$db_host."\r\n";
|
||||
$text .= "# Erstellungszeit: ".date("d. F Y")." um ".date("H:i")."\r\n";
|
||||
$text .= "# Server Betriebssystem: ".php_uname()."\r\n";
|
||||
$text .= "# MySQL-Version: ".mysql_get_server_info()."\r\n";
|
||||
$text .= "# PHP-Version: ".phpversion()."\r\n";
|
||||
$text .= "# Datenbank: `$database`\r\n";
|
||||
$text .= "# Backupscript: Alexander Schwarz\r\n";
|
||||
$text .= "# \r\n";
|
||||
$text .= "###########################################################################\r\n";
|
||||
$text .= "# Zeichencodierung der Datei: latin1\r\n";
|
||||
$text .= "# (ggf. umstellen beim Import, falls die Umlaute falsch dargestellt werden)\r\n";
|
||||
$text .= "###########################################################################\r\n";
|
||||
$text .= "# \r\n";
|
||||
$text .= "# --------------------------------------------------------\r\n\r\n";
|
||||
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $text);
|
||||
fclose($fd);
|
||||
|
||||
$header = "# Constraints disablen\r\n";
|
||||
$header .= "SET FOREIGN_KEY_CHECKS=0;\r\n";
|
||||
$header .= "SET AUTOCOMMIT=0;\r\n";
|
||||
$header .= "START TRANSACTION;\r\n";
|
||||
$header .= "\r\n\r\n";
|
||||
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $header);
|
||||
fclose($fd);
|
||||
|
||||
|
||||
|
||||
// Alle Datenbanken auf dem Server suchen
|
||||
$c = 0;
|
||||
$result2 = @mysql_list_tables($database);
|
||||
// Tabellenname Array auslesen und aufbauen
|
||||
for ($i = 0; $i < @mysql_num_rows($result2); $i++)
|
||||
{
|
||||
$tabelle = @mysql_tablename($result2,$i);
|
||||
if ($tabelle != "") {
|
||||
$tbl_array[$c] = @mysql_tablename($result2,$i);
|
||||
$c++;
|
||||
$zaehler++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
echo "<td align=\"right\">".$zaehler."</td>";
|
||||
|
||||
// Start Ausgabe und Berechnung
|
||||
for ($y = 0; $y < $c; $y++) {
|
||||
$tabelle = $tbl_array[$y];
|
||||
// Struktur der Tabelle einlesen
|
||||
// unset($def,$index);
|
||||
$def='';
|
||||
$index=array();
|
||||
$def .= "DROP TABLE IF EXISTS `$tabelle`;\r\n";
|
||||
#$def .= "CREATE TABLE $tabelle (\r\n";
|
||||
// echo"$tabelle<br>";
|
||||
$result3 = @mysql_db_query($database, "SHOW CREATE TABLE $tabelle");
|
||||
while ($row = @mysql_fetch_array($result3)) {
|
||||
$create_query = $row[1];
|
||||
|
||||
#####################################
|
||||
# Entfernung der Constraints:
|
||||
#####################################
|
||||
|
||||
|
||||
# IF: <20>berpr<70>fung ob im Create Table Statement ein constraint vorkommt.
|
||||
# erste Zeile wo Constraint vorkommt merken --> $i
|
||||
# Komma entfernen, da in der letzten Zeile des Creates statements kein komma stehen darf. Das Komma w<>rde bei der Constraint Zeile fehlen, diese wird aber gel<65>scht, daher muss das Komma schon eine Zeile vorher weg
|
||||
# Schleife 2 starten, wo ersten constraint beginnt $j=$i und die Zeilen mit Constraints auslassen
|
||||
# Zeilen aus $i und $j mit implode zusammensetzen.
|
||||
|
||||
/*
|
||||
if (preg_match('@CONSTRAINT|FOREIGN[\s]+KEY@', $create_query)) {
|
||||
$sql_lines = explode(chr(10), $create_query);
|
||||
$sql_count = count($sql_lines);
|
||||
|
||||
// lets find first line with constraints
|
||||
for ($i = 0; $i < $sql_count; $i++) {
|
||||
if (preg_match('@^[\s]*(CONSTRAINT|FOREIGN[\s]+KEY)@', $sql_lines[$i])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Komma entfernen bei der letzten Zeile
|
||||
$sql_lines[$i - 1] = preg_replace('@,$@', '', $sql_lines[$i - 1]);
|
||||
|
||||
|
||||
|
||||
|
||||
for ($j = $i; $j < $sql_count; $j++) {
|
||||
if (preg_match('@CONSTRAINT|FOREIGN[\s]+KEY@', $sql_lines[$j])) {
|
||||
if (!$first) {
|
||||
$sql_constraints .= chr(10);
|
||||
}
|
||||
if (strpos($sql_lines[$j], 'CONSTRAINT') === FALSE) {
|
||||
$str_tmp = preg_replace('/(FOREIGN[\s]+KEY)/', 'ADD \1', $sql_lines[$j]);
|
||||
$sql_constraints_query .= $str_tmp;
|
||||
$sql_constraints .= $str_tmp;
|
||||
} else {
|
||||
$str_tmp = preg_replace('/(CONSTRAINT)/', 'ADD \1', $sql_lines[$j]);
|
||||
$sql_constraints_query .= $str_tmp;
|
||||
$sql_constraints .= $str_tmp;
|
||||
}
|
||||
$first = FALSE;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$ii = $i-1;
|
||||
|
||||
$create_query = implode(chr(10), array_slice($sql_lines, 0, $i)) . chr(10) . implode($crlf, array_slice($sql_lines, $j, $sql_count - 1));
|
||||
}
|
||||
*/
|
||||
$def .= $create_query;
|
||||
|
||||
}
|
||||
|
||||
#####################################
|
||||
# Entfernung der Constraints Ende
|
||||
#####################################
|
||||
|
||||
$def .= "; \r\n\r\n";
|
||||
// Ende Struktur Modul
|
||||
$db = @mysql_select_db($database);
|
||||
$tabelle = "".$tabelle;
|
||||
$text = "#\r\n# Daten f<>r Tabelle `$tabelle`\r\n#\r\n\r\n";
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $text.$def);
|
||||
fclose($fd);
|
||||
// unset($data);
|
||||
$data='';
|
||||
if ($tabelle > "") {
|
||||
$ergebnis[] = @mysql_select_db($database);
|
||||
$result = @mysql_query("SELECT * FROM $tabelle");
|
||||
$anzahl = @mysql_num_rows($result);
|
||||
$spaltenzahl = @mysql_num_fields($result);
|
||||
for ($i = 0; $i < $anzahl; $i++) {
|
||||
$zeile = @mysql_fetch_array($result);
|
||||
$data .= "INSERT INTO `$tabelle` (";
|
||||
for ($spalte = 0; $spalte < $spaltenzahl; $spalte++) {
|
||||
$feldname = @mysql_field_name($result, $spalte);
|
||||
if ($spalte == ($spaltenzahl - 1)) {
|
||||
$data.= $feldname;
|
||||
} else {
|
||||
$data.= $feldname.",";
|
||||
}
|
||||
}
|
||||
$data .= ") VALUES (";
|
||||
|
||||
for ($k=0;$k < $spaltenzahl;$k++) {
|
||||
if ($k == ($spaltenzahl - 1))
|
||||
{
|
||||
$flags = mysql_field_flags($result, $k); //auslesen ob die aktuelle Tabelle binarys hat, $k ist die aktuelle Zeile. ZB 8 ==> PWD
|
||||
|
||||
$search = array("\x00", "\x0a", "\x0d", "\x1a"); //\x08\\x09, not required
|
||||
$replace = array('\0', '\n', '\r', '\Z');
|
||||
|
||||
if (stristr($flags, 'BINARY')){
|
||||
if($zeile[$k] != '') //wenn Zeile kein Wert hat soll er auch den HEX-Anfangswert 0x nicht reinschreiben
|
||||
{
|
||||
$data .= "0x".str_replace($search, $replace, addslashes(ltrim(bin2hex(rtrim($zeile[$k]))))).""; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}else{
|
||||
$data .= "'".str_replace($search, $replace, addslashes(ltrim(rtrim($zeile[$k]))))."'"; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}
|
||||
}else{
|
||||
$data .= "'".str_replace($search, $replace, addslashes(ltrim(rtrim($zeile[$k]))))."'"; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}
|
||||
} else {
|
||||
$flags = mysql_field_flags($result, $k);
|
||||
if (stristr($flags, 'BINARY')){
|
||||
if($zeile[$k] != '') //wenn Zeile kein Wert hat soll er auch den HEX-Anfangswert 0x nicht reinschreiben
|
||||
{
|
||||
$data .= "0x".str_replace($search, $replace, addslashes(ltrim(bin2hex(rtrim($zeile[$k]))))).","; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}else{
|
||||
$data .= "'".str_replace($search, $replace, addslashes(ltrim(rtrim($zeile[$k]))))."',"; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}
|
||||
}else{
|
||||
$data .= "'".str_replace($search, $replace, addslashes(ltrim(rtrim($zeile[$k]))))."',"; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
$data .= ");\r\n";
|
||||
}
|
||||
$data .= "\r\n";
|
||||
|
||||
} else {
|
||||
$ergebnis[] = "Keine Tabelle übergeben";
|
||||
}
|
||||
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $data);
|
||||
fclose($fd);
|
||||
} // Ende for
|
||||
|
||||
$footer = "# Constraints enablen\r\n";
|
||||
$footer .= "SET FOREIGN_KEY_CHECKS=1;\r\n";
|
||||
$footer .= "COMMIT;\r\n";
|
||||
|
||||
echo __LINE__."<br>";
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $footer);
|
||||
fclose($fd);
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Constraints hinzufügen
|
||||
//-------------------------------------------------------------------
|
||||
/*
|
||||
// tabllen durchlaufen und bei gefundenen Constraints ADD machen
|
||||
for ($i = 0; $i < @mysql_num_rows($result2); $i++)
|
||||
{
|
||||
$tabelle1 = @mysql_tablename($result2,$i);
|
||||
if ($tabelle1 != "") {
|
||||
$tbl_array[$c] = @mysql_tablename($result2,$i);
|
||||
$c++;
|
||||
$zaehler++;
|
||||
}
|
||||
|
||||
$query = "SHOW CREATE TABLE $tabelle1";
|
||||
$create_query = mysql_query($query)
|
||||
or die ("Cannot execute query");
|
||||
while ($row = mysql_fetch_array($create_query)){
|
||||
|
||||
//echo "$row[1]<p>";
|
||||
|
||||
$b = strpos ($row[1], "CONSTRAINT");
|
||||
//echo "position".$b;
|
||||
if ($b != NULL){
|
||||
$c = strlen($row[1]);
|
||||
// echo "<br>c =".$c;
|
||||
|
||||
$d = $c - $b; //l<>nge des reststrings
|
||||
|
||||
$e = substr($row[1], $b, $c);
|
||||
|
||||
// echo "<br> ergebnis:".$e;
|
||||
|
||||
$z = strpos ($e, ") TYPE");
|
||||
if ($z == NULL){
|
||||
$z = strpos ($e, ") ENGINE");
|
||||
}
|
||||
// echo "<br>position".$z;
|
||||
$x = strlen($e);
|
||||
$y = substr($e, 0, $z - 1);
|
||||
//echo "<br>".$y;
|
||||
|
||||
|
||||
$y = str_replace (array("CONSTRAINT"), array("ADD CONSTRAINT"), $y);
|
||||
$data='';
|
||||
|
||||
$data .= "";
|
||||
$data .= "--\r\n";
|
||||
$data .= "-- Constraints der Tabelle `$tabelle1`\r\n";
|
||||
$data .= "--\r\n";
|
||||
|
||||
$y=" ".$y;
|
||||
$ali = str_replace (array(","), array(",\r"), $y);
|
||||
$data .= "ALTER TABLE `$tabelle1`\r\n";
|
||||
$data .= "$ali;\r\n\n";
|
||||
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $data);
|
||||
fclose($fd);
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
$groesse = filesize($file_name) / 1024;
|
||||
|
||||
|
||||
|
||||
#############################
|
||||
## Datei packen
|
||||
#############################
|
||||
#clearstatcache();
|
||||
|
||||
$filename = $file_name.".gz";
|
||||
|
||||
$zp = gzopen($filename, "w9");
|
||||
|
||||
$filecontent = file($file_name);
|
||||
for ($i=0;$i<count($filecontent);$i++) {
|
||||
gzwrite($zp,$filecontent[$i]);
|
||||
}
|
||||
gzclose($zp);
|
||||
|
||||
|
||||
#############################
|
||||
## Datei packen Ende
|
||||
#############################
|
||||
echo __LINE__."<br>";
|
||||
echo $file_name."<br>";
|
||||
echo $filename."<br>";
|
||||
|
||||
|
||||
echo "<td align=\"right\">".number_format($groesse,2)." KB</td></tr>";
|
||||
echo "</table><br>";
|
||||
echo "Das DB - Backup wurde erfolgreich durchgeführt.<p>";
|
||||
|
||||
|
||||
//--KONFIGURATION FTP SICHERUNG--------------------------------------------
|
||||
|
||||
require("../config/ftpanbindung.php"); // fügt die Datenbankanbindung ein
|
||||
// $Verzeichnis = "/SYS/php/includes/kurs/backup/";
|
||||
// $Verzeichnis = "C:/Program Files/xampp/htdocs/leitgedanken/backup/dump/save";
|
||||
$Verzeichnis = "./html/leitgedanken/backup/dump/save";
|
||||
|
||||
$destination_file = basename($filename);
|
||||
//-------------------------------------------------------------------------
|
||||
$VerbindungsID = ftp_connect($FTPServer);
|
||||
$LoginErgebnis = ftp_login($VerbindungsID, $FTPUser, $FTPPasswort);
|
||||
|
||||
if($VerbindungsID && $LoginErgebnis)
|
||||
{
|
||||
echo "Verbunden mit FTP-Server '$FTPServer' als Benutzer '$FTPUser'<p>";
|
||||
|
||||
// Upload der Datei
|
||||
//$upload = ftp_put($VerbindungsID, "$filename", "$filename", FTP_BINARY);
|
||||
$upload1 = @ftp_chdir($VerbindungsID, $Verzeichnis);
|
||||
echo"ftp_put($VerbindungsID, '$destination_file', '$filename', FTP_BINARY);<br>";
|
||||
$upload =ftp_put($VerbindungsID, "$destination_file", "$filename", FTP_BINARY);
|
||||
|
||||
// Upload-Status überprüfen
|
||||
if (!$upload) {
|
||||
echo "Ftp upload war fehlerhaft!<br>";
|
||||
} else {
|
||||
echo "Datei $destination_file auf $FTPServer als $destination_file geschrieben<br>";
|
||||
}
|
||||
|
||||
$Dateiliste=ftp_nlist($VerbindungsID, '');
|
||||
|
||||
sort($Dateiliste);
|
||||
|
||||
echo "Anzahl Dateiliste: ".count($Dateiliste)."<br>";
|
||||
|
||||
for($i=0; $i<count($Dateiliste); $i++)
|
||||
{
|
||||
|
||||
$Dateigroesse=ftp_size($VerbindungsID, $Dateiliste[$i]);
|
||||
|
||||
echo"<tr>";
|
||||
if($Dateigroesse=="-1")
|
||||
{
|
||||
// Ordner sollen nicht gel<65>scht werden!
|
||||
}
|
||||
else
|
||||
{
|
||||
$Dateien++;
|
||||
$Verzeichnisgroesse+=$Dateigroesse;
|
||||
$dateizeit = ftp_mdtm($VerbindungsID, $Dateiliste[$i]);
|
||||
|
||||
|
||||
$zeit = 60*60*24*$frist;
|
||||
|
||||
if(time() - $dateizeit > $zeit)
|
||||
{
|
||||
//echo $Dateiliste[$i];
|
||||
//echo "Dateien, die <20>lter sind als $frist Tag(e) wurden gel<65>scht";
|
||||
if(ftp_delete($VerbindungsID, $Dateiliste[$i]))
|
||||
{
|
||||
echo"$Dateiliste[$i] gel<65>scht!<br>";
|
||||
}else{
|
||||
echo"$Dateiliste[$i] konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
}else{
|
||||
echo "$Dateiliste[$i] nicht innerhalb der L<>schfrist von $frist Tag(e)<br>";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
echo"</tr>";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
|
||||
}
|
||||
|
||||
|
||||
$Verzeichnis2 = "/segment.ali/";
|
||||
|
||||
$destination_file = basename($filename);
|
||||
//-------------------------------------------------------------------------
|
||||
$VerbindungsID = ftp_connect($FTPServer2);
|
||||
$LoginErgebnis = ftp_login($VerbindungsID, $FTPUser2, $FTPPasswort2);
|
||||
|
||||
if($VerbindungsID && $LoginErgebnis)
|
||||
{
|
||||
echo "Verbunden mit FTP-Server '$FTPServer2' als Benutzer '$FTPUser2'<p>";
|
||||
|
||||
// Upload der Datei
|
||||
//$upload = ftp_put($VerbindungsID, "$filename", "$filename", FTP_BINARY);
|
||||
$upload1 = @ftp_chdir($VerbindungsID, $Verzeichnis2);
|
||||
|
||||
$upload =ftp_put($VerbindungsID, "$destination_file", "$filename", FTP_BINARY);
|
||||
|
||||
// Upload-Status überprüfen
|
||||
if (!$upload) {
|
||||
echo "Ftp upload war fehlerhaft!<br>";
|
||||
} else {
|
||||
echo "Datei $destination_file auf $FTPServer als $destination_file geschrieben<br>";
|
||||
}
|
||||
|
||||
|
||||
$Dateiliste=ftp_nlist($VerbindungsID, '');
|
||||
sort($Dateiliste);
|
||||
echo "Anzahl Dateiliste: ".count($Dateiliste)."<br>";
|
||||
for($i=0; $i<count($Dateiliste); $i++)
|
||||
{
|
||||
$Dateigroesse=ftp_size($VerbindungsID, $Dateiliste[$i]);
|
||||
echo"<tr>";
|
||||
if($Dateigroesse=="-1")
|
||||
{
|
||||
// Ordner sollen nicht gel<65>scht werden!
|
||||
}
|
||||
else
|
||||
{
|
||||
$Dateien++;
|
||||
$Verzeichnisgroesse+=$Dateigroesse;
|
||||
$dateizeit = ftp_mdtm($VerbindungsID, $Dateiliste[$i]);
|
||||
|
||||
|
||||
$zeit = 60*60*24*$frist;
|
||||
|
||||
if(time() - $dateizeit > $zeit)
|
||||
{
|
||||
//echo $Dateiliste[$i];
|
||||
//echo "Dateien, die <20>lter sind als $frist Tag(e) wurden gel<65>scht";
|
||||
if(ftp_delete($VerbindungsID, $Dateiliste[$i]))
|
||||
{
|
||||
echo"$Dateiliste[$i] gel<65>scht!<br>";
|
||||
}else{
|
||||
#echo"$Dateiliste[$i] konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
}else{
|
||||
echo "$Dateiliste[$i] nicht innerhalb der L<>schfrist von $frist Tag(e)<br>";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
echo"</tr>";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
|
||||
}
|
||||
|
||||
|
||||
$Verzeichnis3 = "/Leitgedanken/backup/";
|
||||
|
||||
$destination_file = basename($filename);
|
||||
//-------------------------------------------------------------------------
|
||||
$VerbindungsID = ftp_connect($FTPServer3);
|
||||
$LoginErgebnis = ftp_login($VerbindungsID, $FTPUser3, $FTPPasswort3);
|
||||
|
||||
if($VerbindungsID && $LoginErgebnis)
|
||||
{
|
||||
echo "Verbunden mit FTP-Server '$FTPServer3' als Benutzer '$FTPUser3'<p>";
|
||||
|
||||
// Upload der Datei
|
||||
//$upload = ftp_put($VerbindungsID, "$filename", "$filename", FTP_BINARY);
|
||||
$upload1 = @ftp_chdir($VerbindungsID, $Verzeichnis3);
|
||||
|
||||
$upload =ftp_put($VerbindungsID, "$destination_file", "$filename", FTP_BINARY);
|
||||
|
||||
// Upload-Status überprüfen
|
||||
if (!$upload) {
|
||||
echo "Ftp upload war fehlerhaft!<br>";
|
||||
} else {
|
||||
echo "Datei $destination_file auf $FTPServer als $destination_file geschrieben<br>";
|
||||
}
|
||||
|
||||
|
||||
$Dateiliste=ftp_nlist($VerbindungsID, '');
|
||||
sort($Dateiliste);
|
||||
echo "Anzahl Dateiliste: ".count($Dateiliste)."<br>";
|
||||
for($i=0; $i<count($Dateiliste); $i++)
|
||||
{
|
||||
$Dateigroesse=ftp_size($VerbindungsID, $Dateiliste[$i]);
|
||||
echo"<tr>";
|
||||
if($Dateigroesse=="-1")
|
||||
{
|
||||
// Ordner sollen nicht gel<65>scht werden!
|
||||
}
|
||||
else
|
||||
{
|
||||
$Dateien++;
|
||||
$Verzeichnisgroesse+=$Dateigroesse;
|
||||
$dateizeit = ftp_mdtm($VerbindungsID, $Dateiliste[$i]);
|
||||
|
||||
|
||||
$zeit = 60*60*24*$frist;
|
||||
|
||||
if(time() - $dateizeit > $zeit)
|
||||
{
|
||||
//echo $Dateiliste[$i];
|
||||
//echo "Dateien, die <20>lter sind als $frist Tag(e) wurden gel<65>scht";
|
||||
if(ftp_delete($VerbindungsID, $Dateiliste[$i]))
|
||||
{
|
||||
echo"$Dateiliste[$i] gel<65>scht!<br>";
|
||||
}else{
|
||||
#echo"$Dateiliste[$i] konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
}else{
|
||||
echo "$Dateiliste[$i] nicht innerhalb der L<>schfrist von $frist Tag(e)<br>";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
echo"</tr>";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Tempor<6F>rdatei l<>schen *.sql
|
||||
if(@unlink($file_name)){
|
||||
NULL;
|
||||
}else{
|
||||
echo "Die Temor<6F>rdatei $file_name konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
|
||||
//Tempor<6F>rdatei l<>schen *.sql.gz
|
||||
if(@unlink($filename)){
|
||||
NULL;
|
||||
}else{
|
||||
echo "Die Temor<6F>rdatei $filename konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
|
||||
|
||||
// Schlie<69>en des FTP-Streams
|
||||
ftp_quit($VerbindungsID);
|
||||
echo "<p>FTP-Verbindung beendet";
|
||||
//---------------------------------------------------------
|
||||
|
||||
?>
|
617
backup/backup_full.php
Normal file
617
backup/backup_full.php
Normal file
@ -0,0 +1,617 @@
|
||||
<?php
|
||||
#error_reporting(E_ALL);
|
||||
ignore_user_abort(true); // DAMIT DAS SCRIPT AUF KEINEN TIMEOUT L<>UFT
|
||||
@set_time_limit(0);
|
||||
@ini_set("memory_limit","128M");
|
||||
// Script Konfiguration
|
||||
require("../config/datenbankanbindung.php"); // fügt die Datenbankanbindung ein: Sys:\php\includes\kurs\datenbankanbindung.php
|
||||
$frist = 20; //Anzahl der Tage der Speicherzeit
|
||||
// Konfiguration Ende
|
||||
|
||||
|
||||
dbconnect();
|
||||
$path = "dump/";
|
||||
// -----------------------------------------------------
|
||||
// Don't change the lines below:
|
||||
if (!is_dir($path)) { mkdir($path, 0777); }
|
||||
echo "<b>Datenbank Dump</b><br><br><br>";
|
||||
echo "Servername: '".$db_host."'<br>";
|
||||
echo "Betriebssystem: ".php_uname()."<br>";
|
||||
echo "MySQL-Version: ".mysql_get_server_info()."<br>";
|
||||
echo "PHP - Version: ".phpversion()."<br><br>";
|
||||
echo "<table border=\"1\" width=\"60%\">";
|
||||
echo "<tr>
|
||||
<td>DB Name</td>
|
||||
<td>Anzahl Tabellen</td>
|
||||
<td>Gr<47><72>e</td></tr>";
|
||||
echo "<tr><td>$db_name</td>";
|
||||
$database = $db_name;
|
||||
$zaehler = 0;
|
||||
$file_name = $path.date("Y-m-d_H-i")."_".$database.".sql";
|
||||
$text = "# --------------------------------------------------------\r\n";
|
||||
$text .= "# DATENBANK DUMP\r\n";
|
||||
$text .= "# Host: ".$db_host."\r\n";
|
||||
$text .= "# Erstellungszeit: ".date("d. F Y")." um ".date("H:i")."\r\n";
|
||||
$text .= "# Server Betriebssystem: ".php_uname()."\r\n";
|
||||
$text .= "# MySQL-Version: ".mysql_get_server_info()."\r\n";
|
||||
$text .= "# PHP-Version: ".phpversion()."\r\n";
|
||||
$text .= "# Datenbank: `$database`\r\n";
|
||||
$text .= "# Backupscript: Alexander Schwarz\r\n";
|
||||
$text .= "# \r\n";
|
||||
$text .= "###########################################################################\r\n";
|
||||
$text .= "# Zeichencodierung der Datei: latin1\r\n";
|
||||
$text .= "# (ggf. umstellen beim Import, falls die Umlaute falsch dargestellt werden)\r\n";
|
||||
$text .= "###########################################################################\r\n";
|
||||
$text .= "# \r\n";
|
||||
$text .= "# --------------------------------------------------------\r\n\r\n";
|
||||
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $text);
|
||||
fclose($fd);
|
||||
|
||||
$header = "# Constraints disablen\r\n";
|
||||
$header .= "SET FOREIGN_KEY_CHECKS=0;\r\n";
|
||||
$header .= "SET AUTOCOMMIT=0;\r\n";
|
||||
$header .= "START TRANSACTION;\r\n";
|
||||
$header .= "\r\n\r\n";
|
||||
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $header);
|
||||
fclose($fd);
|
||||
|
||||
|
||||
|
||||
// Alle Datenbanken auf dem Server suchen
|
||||
$c = 0;
|
||||
$result2 = @mysql_list_tables($database);
|
||||
// Tabellenname Array auslesen und aufbauen
|
||||
for ($i = 0; $i < @mysql_num_rows($result2); $i++)
|
||||
{
|
||||
$tabelle = @mysql_tablename($result2,$i);
|
||||
if ($tabelle != "") {
|
||||
$tbl_array[$c] = @mysql_tablename($result2,$i);
|
||||
$c++;
|
||||
$zaehler++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
echo "<td align=\"right\">".$zaehler."</td>";
|
||||
|
||||
// Start Ausgabe und Berechnung
|
||||
for ($y = 0; $y < $c; $y++) {
|
||||
$tabelle = $tbl_array[$y];
|
||||
// Struktur der Tabelle einlesen
|
||||
// unset($def,$index);
|
||||
$def='';
|
||||
$index=array();
|
||||
$def .= "DROP TABLE IF EXISTS `$tabelle`;\r\n";
|
||||
#$def .= "CREATE TABLE $tabelle (\r\n";
|
||||
// echo"$tabelle<br>";
|
||||
$result3 = @mysql_db_query($database, "SHOW CREATE TABLE $tabelle");
|
||||
while ($row = @mysql_fetch_array($result3)) {
|
||||
$create_query = $row[1];
|
||||
|
||||
#####################################
|
||||
# Entfernung der Constraints:
|
||||
#####################################
|
||||
|
||||
|
||||
# IF: <20>berpr<70>fung ob im Create Table Statement ein constraint vorkommt.
|
||||
# erste Zeile wo Constraint vorkommt merken --> $i
|
||||
# Komma entfernen, da in der letzten Zeile des Creates statements kein komma stehen darf. Das Komma w<>rde bei der Constraint Zeile fehlen, diese wird aber gel<65>scht, daher muss das Komma schon eine Zeile vorher weg
|
||||
# Schleife 2 starten, wo ersten constraint beginnt $j=$i und die Zeilen mit Constraints auslassen
|
||||
# Zeilen aus $i und $j mit implode zusammensetzen.
|
||||
|
||||
/*
|
||||
if (preg_match('@CONSTRAINT|FOREIGN[\s]+KEY@', $create_query)) {
|
||||
$sql_lines = explode(chr(10), $create_query);
|
||||
$sql_count = count($sql_lines);
|
||||
|
||||
// lets find first line with constraints
|
||||
for ($i = 0; $i < $sql_count; $i++) {
|
||||
if (preg_match('@^[\s]*(CONSTRAINT|FOREIGN[\s]+KEY)@', $sql_lines[$i])) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Komma entfernen bei der letzten Zeile
|
||||
$sql_lines[$i - 1] = preg_replace('@,$@', '', $sql_lines[$i - 1]);
|
||||
|
||||
|
||||
|
||||
|
||||
for ($j = $i; $j < $sql_count; $j++) {
|
||||
if (preg_match('@CONSTRAINT|FOREIGN[\s]+KEY@', $sql_lines[$j])) {
|
||||
if (!$first) {
|
||||
$sql_constraints .= chr(10);
|
||||
}
|
||||
if (strpos($sql_lines[$j], 'CONSTRAINT') === FALSE) {
|
||||
$str_tmp = preg_replace('/(FOREIGN[\s]+KEY)/', 'ADD \1', $sql_lines[$j]);
|
||||
$sql_constraints_query .= $str_tmp;
|
||||
$sql_constraints .= $str_tmp;
|
||||
} else {
|
||||
$str_tmp = preg_replace('/(CONSTRAINT)/', 'ADD \1', $sql_lines[$j]);
|
||||
$sql_constraints_query .= $str_tmp;
|
||||
$sql_constraints .= $str_tmp;
|
||||
}
|
||||
$first = FALSE;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$ii = $i-1;
|
||||
|
||||
$create_query = implode(chr(10), array_slice($sql_lines, 0, $i)) . chr(10) . implode($crlf, array_slice($sql_lines, $j, $sql_count - 1));
|
||||
}
|
||||
*/
|
||||
$def .= $create_query;
|
||||
|
||||
}
|
||||
|
||||
#####################################
|
||||
# Entfernung der Constraints Ende
|
||||
#####################################
|
||||
|
||||
$def .= "; \r\n\r\n";
|
||||
// Ende Struktur Modul
|
||||
$db = @mysql_select_db($database);
|
||||
$tabelle = "".$tabelle;
|
||||
$text = "#\r\n# Daten f<>r Tabelle `$tabelle`\r\n#\r\n\r\n";
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $text.$def);
|
||||
fclose($fd);
|
||||
// unset($data);
|
||||
$data='';
|
||||
if ($tabelle > "") {
|
||||
$ergebnis[] = @mysql_select_db($database);
|
||||
$result = @mysql_query("SELECT * FROM $tabelle");
|
||||
$anzahl = @mysql_num_rows($result);
|
||||
$spaltenzahl = @mysql_num_fields($result);
|
||||
for ($i = 0; $i < $anzahl; $i++) {
|
||||
$zeile = @mysql_fetch_array($result);
|
||||
$data .= "INSERT INTO `$tabelle` (";
|
||||
for ($spalte = 0; $spalte < $spaltenzahl; $spalte++) {
|
||||
$feldname = @mysql_field_name($result, $spalte);
|
||||
if ($spalte == ($spaltenzahl - 1)) {
|
||||
$data.= $feldname;
|
||||
} else {
|
||||
$data.= $feldname.",";
|
||||
}
|
||||
}
|
||||
$data .= ") VALUES (";
|
||||
|
||||
for ($k=0;$k < $spaltenzahl;$k++) {
|
||||
if ($k == ($spaltenzahl - 1))
|
||||
{
|
||||
$flags = mysql_field_flags($result, $k); //auslesen ob die aktuelle Tabelle binarys hat, $k ist die aktuelle Zeile. ZB 8 ==> PWD
|
||||
|
||||
$search = array("\x00", "\x0a", "\x0d", "\x1a"); //\x08\\x09, not required
|
||||
$replace = array('\0', '\n', '\r', '\Z');
|
||||
|
||||
if (stristr($flags, 'BINARY')){
|
||||
if($zeile[$k] != '') //wenn Zeile kein Wert hat soll er auch den HEX-Anfangswert 0x nicht reinschreiben
|
||||
{
|
||||
$data .= "0x".str_replace($search, $replace, addslashes(ltrim(bin2hex(rtrim($zeile[$k]))))).""; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}else{
|
||||
$data .= "'".str_replace($search, $replace, addslashes(ltrim(rtrim($zeile[$k]))))."'"; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}
|
||||
}else{
|
||||
$data .= "'".str_replace($search, $replace, addslashes(ltrim(rtrim($zeile[$k]))))."'"; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}
|
||||
} else {
|
||||
$flags = mysql_field_flags($result, $k);
|
||||
if (stristr($flags, 'BINARY')){
|
||||
if($zeile[$k] != '') //wenn Zeile kein Wert hat soll er auch den HEX-Anfangswert 0x nicht reinschreiben
|
||||
{
|
||||
$data .= "0x".str_replace($search, $replace, addslashes(ltrim(bin2hex(rtrim($zeile[$k]))))).","; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}else{
|
||||
$data .= "'".str_replace($search, $replace, addslashes(ltrim(rtrim($zeile[$k]))))."',"; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}
|
||||
}else{
|
||||
$data .= "'".str_replace($search, $replace, addslashes(ltrim(rtrim($zeile[$k]))))."',"; //Leerzeichen am Anfang und Ende entfernen. Am 22.04.2005 hinzugefügt
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
$data .= ");\r\n";
|
||||
}
|
||||
$data .= "\r\n";
|
||||
|
||||
} else {
|
||||
$ergebnis[] = "Keine Tabelle übergeben";
|
||||
}
|
||||
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $data);
|
||||
fclose($fd);
|
||||
} // Ende for
|
||||
|
||||
$footer = "# Constraints enablen\r\n";
|
||||
$footer .= "SET FOREIGN_KEY_CHECKS=1;\r\n";
|
||||
$footer .= "COMMIT;\r\n";
|
||||
|
||||
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $footer);
|
||||
fclose($fd);
|
||||
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Constraints hinzufügen
|
||||
//-------------------------------------------------------------------
|
||||
/*
|
||||
// tabllen durchlaufen und bei gefundenen Constraints ADD machen
|
||||
for ($i = 0; $i < @mysql_num_rows($result2); $i++)
|
||||
{
|
||||
$tabelle1 = @mysql_tablename($result2,$i);
|
||||
if ($tabelle1 != "") {
|
||||
$tbl_array[$c] = @mysql_tablename($result2,$i);
|
||||
$c++;
|
||||
$zaehler++;
|
||||
}
|
||||
|
||||
$query = "SHOW CREATE TABLE $tabelle1";
|
||||
$create_query = mysql_query($query)
|
||||
or die ("Cannot execute query");
|
||||
while ($row = mysql_fetch_array($create_query)){
|
||||
|
||||
//echo "$row[1]<p>";
|
||||
|
||||
$b = strpos ($row[1], "CONSTRAINT");
|
||||
//echo "position".$b;
|
||||
if ($b != NULL){
|
||||
$c = strlen($row[1]);
|
||||
// echo "<br>c =".$c;
|
||||
|
||||
$d = $c - $b; //l<>nge des reststrings
|
||||
|
||||
$e = substr($row[1], $b, $c);
|
||||
|
||||
// echo "<br> ergebnis:".$e;
|
||||
|
||||
$z = strpos ($e, ") TYPE");
|
||||
if ($z == NULL){
|
||||
$z = strpos ($e, ") ENGINE");
|
||||
}
|
||||
// echo "<br>position".$z;
|
||||
$x = strlen($e);
|
||||
$y = substr($e, 0, $z - 1);
|
||||
//echo "<br>".$y;
|
||||
|
||||
|
||||
$y = str_replace (array("CONSTRAINT"), array("ADD CONSTRAINT"), $y);
|
||||
$data='';
|
||||
|
||||
$data .= "";
|
||||
$data .= "--\r\n";
|
||||
$data .= "-- Constraints der Tabelle `$tabelle1`\r\n";
|
||||
$data .= "--\r\n";
|
||||
|
||||
$y=" ".$y;
|
||||
$ali = str_replace (array(","), array(",\r"), $y);
|
||||
$data .= "ALTER TABLE `$tabelle1`\r\n";
|
||||
$data .= "$ali;\r\n\n";
|
||||
|
||||
$fd = fopen($file_name,"a+");
|
||||
fwrite($fd, $data);
|
||||
fclose($fd);
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
$groesse = filesize($file_name) / 1024;
|
||||
|
||||
|
||||
|
||||
#############################
|
||||
## Datei packen
|
||||
#############################
|
||||
$filename = $path.date("Y-m-d_H-i")."_datenbank.sql.gz";
|
||||
$zp = gzopen($filename, "w9");
|
||||
|
||||
$filecontent = file($file_name);
|
||||
for ($i=0;$i<count($filecontent);$i++) {
|
||||
gzwrite($zp,$filecontent[$i]);
|
||||
}
|
||||
gzclose($zp);
|
||||
|
||||
|
||||
#############################
|
||||
## Datei packen Ende
|
||||
#############################
|
||||
|
||||
|
||||
#############################
|
||||
## Filesystem sichern
|
||||
#############################
|
||||
$filename1 = $path.date("Y-m-d_H-i")."_filesystem.tar.gz";
|
||||
shell_exec("tar -cvf $filename1 ../ --exclude='../backup/dump/*' --exclude='../backup/$filename1' --gzip");
|
||||
|
||||
#############################
|
||||
## Filesystem sichern Ende
|
||||
#############################
|
||||
|
||||
|
||||
#############################
|
||||
## DB + File packen
|
||||
#############################
|
||||
$filename = basename($filename);
|
||||
$filename1 = basename($filename1);
|
||||
$filename2 = date("Y-m-d_H-i")."_full_backup.tar.gz";
|
||||
|
||||
chdir('dump');
|
||||
shell_exec("tar -cvf $filename2 $filename $filename1 --gzip");
|
||||
|
||||
#############################
|
||||
## DB + File packen ENDE
|
||||
#############################
|
||||
|
||||
|
||||
echo "file_name: ".$file_name."<br>";
|
||||
echo "filename: ".$filename."<br>";
|
||||
echo "filename1: ".$filename1."<br>";
|
||||
echo "filename2: ".$filename2."<br>";
|
||||
|
||||
|
||||
echo "<td align=\"right\">".number_format($groesse,2)." KB</td></tr>";
|
||||
echo "</table><br>";
|
||||
echo "Das DB - Backup wurde erfolgreich durchgeführt.<p>";
|
||||
|
||||
chdir('../');
|
||||
|
||||
//--KONFIGURATION FTP SICHERUNG--------------------------------------------
|
||||
|
||||
require("../config/ftpanbindung.php"); // fügt die Datenbankanbindung ein
|
||||
|
||||
$Verzeichnis = "./html/leitgedanken/backup/dump/save";
|
||||
|
||||
$destination_file = basename($filename2);
|
||||
//-------------------------------------------------------------------------
|
||||
$VerbindungsID = ftp_connect($FTPServer);
|
||||
$LoginErgebnis = ftp_login($VerbindungsID, $FTPUser, $FTPPasswort);
|
||||
|
||||
if($VerbindungsID && $LoginErgebnis)
|
||||
{
|
||||
echo "Verbunden mit FTP-Server '$FTPServer' als Benutzer '$FTPUser'<p>";
|
||||
|
||||
// Upload der Datei
|
||||
//$upload = ftp_put($VerbindungsID, "$filename2", "$filename2", FTP_BINARY);
|
||||
$upload1 = @ftp_chdir($VerbindungsID, $Verzeichnis);
|
||||
|
||||
$upload =ftp_put($VerbindungsID, "$destination_file", "$path$filename2", FTP_BINARY);
|
||||
|
||||
// Upload-Status überprüfen
|
||||
if (!$upload) {
|
||||
echo "Ftp upload war fehlerhaft!<br>";
|
||||
} else {
|
||||
echo "Datei $destination_file auf $FTPServer als $destination_file geschrieben<br>";
|
||||
}
|
||||
|
||||
|
||||
$Dateiliste=ftp_nlist($VerbindungsID, '');
|
||||
sort($Dateiliste);
|
||||
echo "Anzahl Dateiliste: ".count($Dateiliste)."<br>";
|
||||
for($i=0; $i<count($Dateiliste); $i++)
|
||||
{
|
||||
$Dateigroesse=ftp_size($VerbindungsID, $Dateiliste[$i]);
|
||||
echo"<tr>";
|
||||
if($Dateigroesse=="-1")
|
||||
{
|
||||
// Ordner sollen nicht gel<65>scht werden!
|
||||
}
|
||||
else
|
||||
{
|
||||
$Dateien++;
|
||||
$Verzeichnisgroesse+=$Dateigroesse;
|
||||
$dateizeit = ftp_mdtm($VerbindungsID, $Dateiliste[$i]);
|
||||
|
||||
|
||||
$zeit = 60*60*24*$frist;
|
||||
|
||||
if(time() - $dateizeit > $zeit)
|
||||
{
|
||||
//echo $Dateiliste[$i];
|
||||
//echo "Dateien, die <20>lter sind als $frist Tag(e) wurden gel<65>scht";
|
||||
if(ftp_delete($VerbindungsID, $Dateiliste[$i]))
|
||||
{
|
||||
echo"$Dateiliste[$i] gel<65>scht!<br>";
|
||||
}else{
|
||||
#echo"$Dateiliste[$i] konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
}else{
|
||||
echo "$Dateiliste[$i] nicht innerhalb der L<>schfrist von $frist Tag(e)<br>";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
echo"</tr>";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
|
||||
}
|
||||
|
||||
$Verzeichnis2 = "/segment.ali/";
|
||||
|
||||
$destination_file = basename($filename2);
|
||||
//-------------------------------------------------------------------------
|
||||
$VerbindungsID = ftp_connect($FTPServer2);
|
||||
$LoginErgebnis = ftp_login($VerbindungsID, $FTPUser2, $FTPPasswort2);
|
||||
|
||||
if($VerbindungsID && $LoginErgebnis)
|
||||
{
|
||||
echo "Verbunden mit FTP-Server '$FTPServer2' als Benutzer '$FTPUser2'<p>";
|
||||
|
||||
// Upload der Datei
|
||||
//$upload = ftp_put($VerbindungsID, "$filename2", "$filename2", FTP_BINARY);
|
||||
$upload1 = @ftp_chdir($VerbindungsID, $Verzeichnis2);
|
||||
|
||||
$upload =ftp_put($VerbindungsID, "$destination_file", "$path$filename2", FTP_BINARY);
|
||||
|
||||
// Upload-Status überprüfen
|
||||
if (!$upload) {
|
||||
echo "Ftp upload war fehlerhaft!<br>";
|
||||
} else {
|
||||
echo "Datei $destination_file auf $FTPServer als $destination_file geschrieben<br>";
|
||||
}
|
||||
|
||||
|
||||
$Dateiliste=ftp_nlist($VerbindungsID, '');
|
||||
sort($Dateiliste);
|
||||
echo "Anzahl Dateiliste: ".count($Dateiliste)."<br>";
|
||||
for($i=0; $i<count($Dateiliste); $i++)
|
||||
{
|
||||
$Dateigroesse=ftp_size($VerbindungsID, $Dateiliste[$i]);
|
||||
echo"<tr>";
|
||||
if($Dateigroesse=="-1")
|
||||
{
|
||||
// Ordner sollen nicht gel<65>scht werden!
|
||||
}
|
||||
else
|
||||
{
|
||||
$Dateien++;
|
||||
$Verzeichnisgroesse+=$Dateigroesse;
|
||||
$dateizeit = ftp_mdtm($VerbindungsID, $Dateiliste[$i]);
|
||||
|
||||
|
||||
$zeit = 60*60*24*$frist;
|
||||
|
||||
if(time() - $dateizeit > $zeit)
|
||||
{
|
||||
//echo $Dateiliste[$i];
|
||||
//echo "Dateien, die <20>lter sind als $frist Tag(e) wurden gel<65>scht";
|
||||
if(ftp_delete($VerbindungsID, $Dateiliste[$i]))
|
||||
{
|
||||
echo"$Dateiliste[$i] gel<65>scht!<br>";
|
||||
}else{
|
||||
#echo"$Dateiliste[$i] konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
}else{
|
||||
echo "$Dateiliste[$i] nicht innerhalb der L<>schfrist von $frist Tag(e)<br>";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
echo"</tr>";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
|
||||
}
|
||||
|
||||
|
||||
#geht-->
|
||||
|
||||
$Verzeichnis3 = "/Leitgedanken/backup/";
|
||||
|
||||
$destination_file = basename($filename2);
|
||||
//-------------------------------------------------------------------------
|
||||
$VerbindungsID = ftp_connect($FTPServer3);
|
||||
$LoginErgebnis = ftp_login($VerbindungsID, $FTPUser3, $FTPPasswort3);
|
||||
|
||||
if($VerbindungsID && $LoginErgebnis)
|
||||
{
|
||||
echo "Verbunden mit FTP-Server '$FTPServer3' als Benutzer '$FTPUser3'<p>";
|
||||
|
||||
// Upload der Datei
|
||||
//$upload = ftp_put($VerbindungsID, "$filename2", "$filename2", FTP_BINARY);
|
||||
$upload1 = @ftp_chdir($VerbindungsID, $Verzeichnis3);
|
||||
|
||||
$upload =ftp_put($VerbindungsID, "$destination_file", "$path$filename2", FTP_BINARY);
|
||||
|
||||
// Upload-Status überprüfen
|
||||
if (!$upload) {
|
||||
echo "Ftp upload war fehlerhaft!<br>";
|
||||
} else {
|
||||
echo "Datei $destination_file auf $FTPServer als $destination_file geschrieben<br>";
|
||||
}
|
||||
|
||||
|
||||
$Dateiliste=ftp_nlist($VerbindungsID, '');
|
||||
sort($Dateiliste);
|
||||
echo "Anzahl Dateiliste: ".count($Dateiliste)."<br>";
|
||||
for($i=0; $i<count($Dateiliste); $i++)
|
||||
{
|
||||
$Dateigroesse=ftp_size($VerbindungsID, $Dateiliste[$i]);
|
||||
echo"<tr>";
|
||||
if($Dateigroesse=="-1")
|
||||
{
|
||||
// Ordner sollen nicht gel<65>scht werden!
|
||||
}
|
||||
else
|
||||
{
|
||||
$Dateien++;
|
||||
$Verzeichnisgroesse+=$Dateigroesse;
|
||||
$dateizeit = ftp_mdtm($VerbindungsID, $Dateiliste[$i]);
|
||||
|
||||
|
||||
$zeit = 60*60*24*$frist;
|
||||
|
||||
if(time() - $dateizeit > $zeit)
|
||||
{
|
||||
//echo $Dateiliste[$i];
|
||||
//echo "Dateien, die <20>lter sind als $frist Tag(e) wurden gel<65>scht";
|
||||
if(ftp_delete($VerbindungsID, $Dateiliste[$i]))
|
||||
{
|
||||
echo"$Dateiliste[$i] gel<65>scht!<br>";
|
||||
}else{
|
||||
#echo"$Dateiliste[$i] konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
}else{
|
||||
echo "$Dateiliste[$i] nicht innerhalb der L<>schfrist von $frist Tag(e)<br>";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
echo"</tr>";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
echo"Es konnte keine Verbindung mit dem FTP-Server hergestellt werden.";
|
||||
}
|
||||
|
||||
echo "<p>";
|
||||
//Tempor<6F>rdatei l<>schen *.sql
|
||||
if(@unlink($file_name)){
|
||||
echo "<b>Die Temor<6F>rdatei $file_name wurde gel<65>scht!</b><br>";
|
||||
}else{
|
||||
echo "Die Temor<6F>rdatei $file_name konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
|
||||
//Tempor<6F>rdatei l<>schen *.sql.gz
|
||||
if(@unlink($path.$filename)){
|
||||
echo "<b>Die Temor<6F>rdatei $filename wurde gel<65>scht!</b><br>";
|
||||
}else{
|
||||
echo "Die Temor<6F>rdatei $filename konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
|
||||
//Tempor<6F>rdatei l<>schen *.sql.gz
|
||||
if(@unlink($path.$filename1)){
|
||||
echo "<b>Die Temor<6F>rdatei $filename1 wurde gel<65>scht!</b><br>";
|
||||
}else{
|
||||
echo "Die Temor<6F>rdatei $filename1 konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
|
||||
//Tempor<6F>rdatei l<>schen *.sql.gz
|
||||
if(@unlink($path.$filename2)){
|
||||
echo "<b>Die Temor<6F>rdatei $filename2 wurde gel<65>scht!</b><br>";
|
||||
}else{
|
||||
echo "Die Temor<6F>rdatei $filename2 konnte nicht gel<65>scht werden!<br>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Schlie<69>en des FTP-Streams
|
||||
ftp_quit($VerbindungsID);
|
||||
echo "<p>FTP-Verbindung beendet";
|
||||
//---------------------------------------------------------
|
||||
|
||||
?>
|
Reference in New Issue
Block a user