我想设置一个运行 PHP 脚本的 CRON,该脚本又将 XML 文件(保存非敏感信息)从一台服务器移动到另一台服务器。
我已获得正确的用户名/密码,并希望使用 SFTP 协议。这些作业将每天运行。一台服务器可能是 Linux,另一台服务器是 Windows。两者都在不同的网络上。
移动该文件的最佳方法是什么?
我想设置一个运行 PHP 脚本的 CRON,该脚本又将 XML 文件(保存非敏感信息)从一台服务器移动到另一台服务器。
我已获得正确的用户名/密码,并希望使用 SFTP 协议。这些作业将每天运行。一台服务器可能是 Linux,另一台服务器是 Windows。两者都在不同的网络上。
移动该文件的最佳方法是什么?
如果两台服务器都在 Linux 上,您可以将rsync用于任何类型的文件(php、xml、html、二进制文件等)。即使其中之一是 Windows,也有到 Windows 的 rsync 端口。
为什么不尝试使用 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);
为什么不使用shell_exec和scp?
<?php
$output = shell_exec('scp file1.txt dvader@deathstar.com:somedir');
echo "<pre>$output</pre>";
?>
我有一些类似的情况。经过一些尝试,我做了一些不同的事情
我们有 2 台服务器,a(有原始文件)b(文件应该移到它上面)
并且确保数据不敏感
现在在服务器 a 中,我创建了一个文件以在调用时执行以下操作:1. 选择要移动的文件 2. 压缩文件 3. 打印 .zip 文件位置 4. 如果删除,则删除 .zip 文件(和原始文件)参数传递
在服务器 b 中,文件应该执行以下操作: 1. 调用服务器 a 上的文件 2. 下载 zip 文件 3. 解压缩并将其复制到正确的位置 4. 调用服务器 a 上的删除功能
这样我就可以更好地控制我的功能、测试和操作!