3

我目前有一个非常大的站点,大小约为 5GB,包含 60,000 个文件。当前主机在帮助我将站点转移到新主机方面并没有做太多事情,我想的是在我的新主机上制作一个简单的脚本以 FTP 到旧主机并下载整个 public_html 文件夹(递归) 到新服务器。这可能吗?如果可以,是否有人可以分享任何链接来帮助解决这个问题?非常感激。

4

3 回答 3

5

可能有更好的机制来做你想做的事。

首先,您可以使用sftpscp从一台主机到另一台主机吗?

scp -R username@oldhost:path/to/directory/ /path/to/destination/directory

或者

sftp username@oldhost  # then use 'get -r' to download recursively

或者

rsync -avz -P username@oldhost:/path/to/directory/ /path/to/destination/directory/

-P使得重新启动停滞/死的下载变得容易。

如果好的工具不起作用,那么看看是否wget安装了:

wget --mirror --continue --ftp-user=username ftp://oldhost/path/to/directory/

--continue使得重新启动停滞/死机下载变得更加容易。

于 2011-04-10T02:33:10.037 回答
2

如果文件很多,我强烈建议您制作一个 .tar.gz 存档。我不知道你对 php 有什么限制,但你可以在 php 中尝试这个:

$archive = "backup.tar.gz";
$directory = "./www";
exec( "tar -czf $archive $directory");

然后,您可以通过 http / ftp 或使用任何其他方法简单地下载 1 个 gziped 存档。

于 2011-04-10T04:00:58.233 回答
2

是的,你可以用纯 PHP 做到这一点!

我刚刚发布了 2 个新库来在FTP / SFTP中执行此类操作

递归复制远程 SFTP 服务器上的文件和文件夹(如果 local_path 以斜线结尾,则上传文件夹内容,否则上传文件夹本身)

Ftp::upload_dir($server, $user, $password, $local_path, $remote_path, $port = 22);

从远程 FTP 服务器下载目录(如果 remote_dir 以斜线结尾下载文件夹内容,否则下载文件夹本身)

Ftp::download_dir($server, $user, $password, $remote_dir, $local_dir, 

$端口 = 22);

如果您想查看代码,您将看到具有魔力的递归函数;)

于 2017-03-20T22:46:57.623 回答