Answers:
我认为您需要一些信息来重建Web服务器。作为站点的html / jpg / script文件,数据库数据和Web服务配置。如果您的站点依赖SSl证书,网络配置和用户信息,则可以添加它们。
一旦知道了需要重建的内容,我们如何获得这些数据?最简单的方法通常是从保存数据的框中进行。运行脚本以生成数据,数据库转储等,将其全部收集到tar文件中,并直接使用ftp。
或者,您可以在Web服务器上将脚本作为cron作业运行,但可以使用外部包装箱获取tar文件。
有什么方法可以从FTP下载所有内容吗?
是的,但是您需要(或要求某人)安装ftp服务器并为您配置它。我建议反对。FTP以明文形式发送密码,据我所知,没有通用的SSL包装器(如STARTTLS)。因此,FTP是一个安全漏洞,除非您计划包装在安全VPN中。我建议使用sftp,它本质上是一个ssh连接,可以像命令一样响应ftp。
这是动态服务器吗?它是否具有PHP或CGI或任何其他服务器端代码?如果是这样,HTTP请求只能在运行代码时显示HTML,而不能显示基础源。这不是备份。您应该使用sftp备份源。
对于MySQL,同样,您没有进行真正的备份。您应该熟悉mysqldump
或找人为您运行它。
至于处理那些文件,备份到git将需要一些脚本。通常,人们要做的是备份所有文件(包括数据库转储),并保留n天的时间。如果备份到源代码管理,现在需要备份存储库,并担心损坏。通常更清洁,只是保留文件。无论如何,您的源代码应在源代码控制中,并且应与网站上的内容匹配。
我个人会比较喜欢“如果我解压缩此文件是我的网站”,而不是“如果我的git存储库没有问题,我可以找到当天的标签,这是我的网站”。在紧急情况下(并且所有备份还原都是),复杂性不是您想要的。
为了解决我只有FTP的问题,我终于有了一个整洁的解决方案:curlftpfs和rsync。
# Create a mountpoint for the FTP.
tempdir=$(mktemp -d)
chgrp fuse "$tempdir"
chmod 700 "$tempdir"
# Mount the FTP
curlftpfs "$server" "$tempdir"
# Copy all the new data into the current directory
rsync -avE --delete "$tempdir/$subfolder" "$current"
# Release the mounted FTP
fusermount -u "$tempdir"
rmdir "$tempdir"
mysqldump
也无法设置cron作业。我只能在某种程度上使用FTP和PHP,因为它是托管人的软件包。