2008-10-28 6 views
5

Ich möchte einen CRON einrichten, der ein PHP-Skript ausführt, das wiederum die XML-Datei (mit nicht vertraulichen Informationen) von einem Server zu einem anderen verschiebt.Was ist der beste Weg, Dateien mit PHP von einem Server auf einen anderen zu verschieben?

Ich habe den richtigen Benutzernamen/das richtige Passwort erhalten und möchte das SFTP-Protokoll verwenden. Die Jobs werden täglich ausgeführt. Es gibt das Potenzial, dass ein Server Linux und der andere Windows ist. Beide sind in verschiedenen Netzwerken.

Was ist der beste Weg, um diese Datei zu verschieben?

Antwort

6

Wenn beide Server auf Linux sein würden Sie rsync für jede Art von Dateien (php, xml, html, binär, etc.) nutzen könnten. Selbst wenn einer von ihnen Windows sein wird, gibt es Rsync-Ports zu Windows.

+0

rsync ist auch gut. – wprl

5

Warum nicht shell_exec und scp verwenden?

<?php 
    $output = shell_exec('scp file1.txt [email protected]:somedir'); 
    echo "<pre>$output</pre>"; 
?> 
+0

scp ein sehr handliches und leistungsfähiges Werkzeug ist, kann aber eine gewisse Konfiguration erforderlich: http://www.google.com/search?q=+password-less + SSH + Login –

7

Warum nicht versuchen, PHP FTP functions zu verwenden?

Dann könnten Sie so etwas wie:

// open some file for reading 
$file = 'somefile.txt'; 
$fp = fopen($file, 'r'); 

// set up basic connection 
$conn_id = ftp_connect($ftp_server); 

// login with username and password 
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 

// try to upload $file 
if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) { 
    echo "Successfully uploaded $file\n"; 
} else { 
    echo "There was a problem while uploading $file\n"; 
} 

// close the connection and the file handler 
ftp_close($conn_id); 
fclose($fp);