使用PHP将文件从一台服务器移动到另一台服务器的最佳方法是什么?

时间:2008-10-28 20:32:42

标签: php file data-transfer

我想设置一个运行PHP脚本的CRON,然后将XML文件(保存非敏感信息)从一个服务器移动到另一个服务器。

我已获得正确的用户名/密码,并希望使用SFTP协议。这些工作将每天运行。一台服务器可能是Linux而另一台服务器是Windows。两者都在不同的网络上。

移动该文件的最佳方法是什么?

4 个答案:

答案 0 :(得分:7)

如果两台服务器都在Linux上,你可以使用rsync来处理任何类型的文件(php,xml,html,binary等)。即使其中一个是Windows,也有Windows的rsync端口。

答案 1 :(得分:7)

为什么不尝试使用PHP的FTP functions

然后你可以这样做:

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

答案 2 :(得分:5)

为什么不使用shell_execscp

<?php
    $output = shell_exec('scp file1.txt dvader@deathstar.com:somedir');
    echo "<pre>$output</pre>";
?>

答案 3 :(得分:0)

我有类似的情况。 经过一些尝试,我做了一些不同的事情

我们有2台服务器, a(有原始文件) b(文件应移到它上面)

确定数据不敏感

现在在服务器a中我调用了一个文件来执行以下操作: 1.选择要移动的文件 2.压缩文件 3.打印.zip文件位置 4.如果删除参数通过

,则删除.zip文件(和原始文件)

在服务器b中,文件应该: 1.在服务器上调用该文件 2.下载zip文件 3.解压缩并将其复制到正确的位置 4.调用服务器a上的删除功能

通过这种方式,我可以更好地控制我的功能,测试和操作!