2008-10-28 17 views
5

Quiero configurar un CRON que ejecute un script PHP que a su vez mueve el archivo XML (que contiene información no confidencial) de un servidor a otro.¿Cuál es la mejor forma de mover archivos de un servidor a otro con PHP?

Me han dado el nombre de usuario/contraseña apropiado, y quiero usar el protocolo SFTP. Los trabajos se ejecutarán todos los días. Existe la posibilidad de que un servidor sea Linux y el otro sea Windows. Ambos están en diferentes redes.

¿Cuál es la mejor manera de mover ese archivo?

Respuesta

6

Si ambos servidores estarían en Linux podría utilizar rsync para cualquier tipo de archivos (php, xml, html, binario, etc.). Incluso si uno de ellos será Windows, hay puertos rsync para Windows.

+0

rsync es bueno también. – wprl

5

¿Por qué no utilizar shell_exec y scp?

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

SCP es una herramienta muy útil y poderosa, pero puede requerir alguna configuración: http://www.google.com/search?q=+password-less + SSH + login –

7

¿Por qué no intentar usar PHP FTP functions?

Posteriormente, se podría hacer algo como:

// 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); 
Cuestiones relacionadas