Backup von Ordnern über FTP erstellen

Wer kennt das nicht: Man hat auf seinem Webspace tausende Dateien und würde diese gerne 1:1 auf einen anderen Server kopieren. Diese mit einem FTP-Programm von dem einen Server erst herunter zu laden um sie auf den anderen wieder zu uploaden ist umständlich. Aus diesem Grund hier ein sehr unkompliziertes Script, das einfach auf den leeren Server gelegt werden kann und die Daten 1:1 kopiert. Hat man einen Homeserver auf seinem Rechner laufen, kann man es auch verwenden um ein Backup auf der lokalen Festplatte zu erstellen.

Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
<?
if(!ini_set("max_execution_time"99999999))
{
set_time_limit(0);
}
$ftp_server=" ";
$ftp_user_name=" ";
$ftp_user_pass=" ";
$source=" ";
$dest=" ";
// Verbindungsaufbau
$conn_id ftp_connect($ftp_server);
// Login mit Username und Passwort
$login_result ftp_login($conn_id$ftp_user_name$ftp_user_pass);
// Verbindung überprüfen
if ((!$conn_id) || (!$login_result))
{
echo 
"FTP Verbindung ist fehlgeschlagen!";
echo 
"Verbindungasufbau zu $ftp_server mit Username $ftp_user_name versucht.";
exit;
} else {
echo 
"Verbunden zum Server. ";
}
mkdir($dest);
ftp_down($source,$dest);
// dateien downloaden
function ftp_down($source_file,$folder="")
{
GLOBAL 
$conn_id;
GLOBAL 
$dest;
$filelist=ftp_nlist($conn_id$source_file);
foreach(
$filelist as $file)
{
echo 
"SERVER: ".$file." ";
$temp=explode("/",$file);
$temp=array_reverse($temp);
$local_file=$folder.$temp[0];
echo 
"LOCAL: ".$local_file." ";
if(!
ftp_get($conn_id$local_file$fileFTP_BINARY))
{
if(!
file_exists($local_file))
{
mkdir($local_file);
ftp_down($file,$local_file."/");
}
}
}
}
// FTP Verbidung schließen
if(ftp_close($conn_id))
{
echo 
" Erledigt";
}
?>