我目前有一个非常大的网站,大小约为5GB,有60,000个文件。当前主机在帮助我将站点转移到新主机方面没有做太多工作,我想的是在我的新主机上创建一个简单的脚本到FTP到旧主机并下载整个public_html文件夹(递归地) )到新服务器。这是可能的,如果是这样,有没有人有任何他们可以共享的链接来帮助这个?非常感谢。
答案 0 :(得分:3)
可能有更好的机制来做你想做的事。
首先,您可以从一个主机到另一个主机使用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
可以更轻松地重新启动停滞/死机下载。
答案 1 :(得分:1)
如果有很多文件,我强烈建议你制作.tar.gz档案。 我不知道你对php有什么限制,但你可以在php中尝试这个:
$archive = "backup.tar.gz";
$directory = "./www";
exec( "tar -czf $archive $directory");
然后您只需通过http / ftp或使用任何其他方法下载1个单个gziped存档。
答案 2 :(得分:1)
是的,你可以用纯PHP做到这一点!
中执行此类操作以递归方式复制远程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,
$ port = 22);
如果你想查看代码,你会看到神奇的递归函数;)