我目前有一个非常大的站点,大小约为 5GB,包含 60,000 个文件。当前主机在帮助我将站点转移到新主机方面并没有做太多事情,我想的是在我的新主机上制作一个简单的脚本以 FTP 到旧主机并下载整个 public_html 文件夹(递归) 到新服务器。这可能吗?如果可以,是否有人可以分享任何链接来帮助解决这个问题?非常感激。
问问题
9970 次
3 回答
5
可能有更好的机制来做你想做的事。
首先,您可以使用sftp
或scp
从一台主机到另一台主机吗?
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 回答