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

发布于 2024-07-08 13:15:12 字数 193 浏览 12 评论 0原文

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

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

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

I want to setup a CRON that runs a PHP script that in turn moves XML file (holding non-sensitive information) from one server to another.

I have been given the proper username/password, and want to use SFTP protocol. The jobs will run daily. There is the potential that one server is Linux and the other is Windows. Both are on different networks.

What is the best way to move that file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

糖粟与秋泊 2024-07-15 13:15:12

如果两台服务器都在 Linux 上,您可以对任何类型的文件(php、xml 、html、二进制等)。 即使其中之一是 Windows,也有到 Windows 的 rsync 端口。

If both servers would be on Linux you could use rsync for any kind of files (php, xml, html, binary, etc). Even if one of them will be Windows there are rsync ports to Windows.

罪歌 2024-07-15 13:15:12

为什么不尝试使用 PHP 的 FTP 功能

然后你可以做类似的事情:

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

Why not try using PHP's FTP functions?

Then you could do something like:

// 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);
篱下浅笙歌 2024-07-15 13:15:12

为什么不使用 shell_execscp

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

Why not use shell_exec and scp?

<?php
    $output = shell_exec('scp file1.txt [email protected]:somedir');
    echo "<pre>$output</pre>";
?>
紫﹏色ふ单纯 2024-07-15 13:15:12

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

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

并且可以肯定数据不敏感

现在在服务器 a 中我创建了一个文件,在调用时执行以下操作:
1.选择要移动的文件
2. 压缩文件
3. 打印 .zip 文件位置
4. 如果删除参数传递,则删除 .zip 文件(和原始文件)

在服务器 b 中,该文件应该执行以下操作:
1.调用服务器上的文件
2.下载zip文件
3.解压并复制到合适位置
4. 在服务器a上调用删除函数

这样我可以更好地控制我的函数、测试和操作!

I had some similar situation.
After some tries, I did some thing different

We have 2 servers,
a (that have the original files)
b (files should moved to it)

And for sure the data is NOT sensitive

Now in server a I made a file to do the following when called:
1. Choose the file to move
2. Zip the file
3. Print the .zip file location
4. Delete the .zip file (and the original file) if delete parameter passes

In the server b the file should do:
1. Call the file on the a server
2. Download the zip file
3. Unzip and copy it to the proper location
4. Call the delete function on server a

This way I have more control on my functions, tests and operations!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文