我想设置一个CRON,运行一个PHP脚本,将XML文件(包含非敏感信息)从一台服务器移动到另一台服务器。
我已经得到了正确的用户名/密码,并希望使用SFTP协议。这些作业将每天运行。有可能一台服务器是Linux,另一台是Windows。两者在不同的网络上。
最好的方法是什么?
我想设置一个CRON,运行一个PHP脚本,将XML文件(包含非敏感信息)从一台服务器移动到另一台服务器。
我已经得到了正确的用户名/密码,并希望使用SFTP协议。这些作业将每天运行。有可能一台服务器是Linux,另一台是Windows。两者在不同的网络上。
最好的方法是什么?
为什么不尝试使用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>";
?>
我曾经遇到过类似的情况。 尝试了一些方法后,我做了一些不同的事情。
我们有两个服务器, a(拥有原始文件) b(应该将文件移动到其中)
当然,数据并不敏感。
现在,在服务器a上,我创建了一个文件,当调用时执行以下操作: 1. 选择要移动的文件 2. 压缩文件 3. 打印.zip文件位置 4. 如果传递删除参数,则删除.zip文件(和原始文件)
在服务器b上,该文件应执行以下操作: 1. 在a服务器上调用文件 2. 下载zip文件 3. 解压并将其复制到正确的位置 4. 在服务器a上调用删除函数
这样,我可以更好地控制我的功能、测试和操作!