使用PHP通过FTP上传文件夹


Upload a folder via FTP using PHP

我们的网站目前每晚都会备份到一个单独的服务器上,这很好,但当我们第二天去下载文件时,下载文件需要很长时间(通常大约36000多张图像)。第二天下载需要相当长的时间,并且会影响使用我们网络的其他人的速度,因此理想情况下,我们会尝试在半夜进行下载,但这里没有人可以这样做。

备份所在的服务器正在运行Cpanel,这似乎使将PHP文件作为Cron作业运行变得相当简单。

我假设如下,请随意告诉我我错了。

1) 备份所在的服务器运行Cpanel。看来,设置一个PHP脚本在半夜作为Cron作业运行应该不会太难。

2) 我们可以使用FTP函数部署一个PHP脚本来连接到另一台服务器,并使用这个cron作业开始备份这些文件。

3) 我们正在windows平台上运行Xampp。它有Filezilla作为它的一部分,所以我认为它应该能够接受传入的FTP连接。

4) 总的来说,我们可以在备份服务器上部署一个每晚运行的脚本,并将文件发送回运行Xampp的本地计算机。

这就是我所猜测的。不过我在第一个栏就被卡住了。我试图创建一个在本地计算机上运行的脚本,并在执行时将指定的文件夹发送到备份服务器,但我似乎只能找到与单个文件相关的脚本。虽然我有一些PHP的经验,但我以前从未接触过FTP函数,这给我带来了一些问题。我在这里尝试了其他关于堆栈溢出的例子,但没有成功:(

我只是在寻找一个最简单的脚本形式,可以将上传的文件夹转移到远程IP。如有任何帮助,我们将不胜感激。

通过FTP传输一堆小文件会产生相当大的开销。我见过通过本地网络工作需要5倍的时间。到目前为止,将文件打包到类似zip的文件中并将其发送到一个大文件中要容易得多。

您可以使用exec()从命令行(或您喜欢的任何压缩工具)运行zip。之后,你可以很快地通过ftp发送它(你说你找到了传输1个文件的方法)。出于备份目的,压缩文件可能会使处理变得更容易,但如果您需要解压缩文件,您可以在另一台机器上设置一个作业来解压缩文件。