FTP Web服务器的备份


1

我想以最少的努力备份Web服务器的内容。目前,我有一个PHP脚本,可以为我提供上载图片的列表,然后使用wget通过HTTP下载所有图片。

MySQL数据是通过PHP脚本获取的,该脚本转储了我通过wget通过HTTP提取的数据库。

有什么方法可以从FTP下载所有内容吗?这样我就可以完全镜像Web服务器并跟踪任何更改?

可悲的是,我只能用普通的FTP和PHP的服务器上,我不能使用shell脚本或mysqldumptar在服务器上。

Answers:


2

我认为您需要一些信息来重建Web服务器。作为站点的html / jpg / script文件,数据库数据和Web服务配置。如果您的站点依赖SSl证书,网络配置和用户信息,则可以添加它们。

一旦知道了需要重建的内容,我们如何获得这些数据?最简单的方法通常是从保存数据的框中进行。运行脚本以生成数据,数据库转储等,将其全部收集到tar文件中,并直接使用ftp。

或者,您可以在Web服务器上将脚本作为cron作业运行,但可以使用外部包装箱获取tar文件。


我无法编写脚本,无法与数据库一起转储,mysqldump也无法设置cron作业。我只能在某种程度上使用FTP和PHP,因为它是托管人的软件包。
Martin Ueding 2011年

您如何使用PHP进行mysql转储?通过PHPMyAdmin?
uSlackr

1
您应该在问题上加上关于无法在服务器上执行脚本的内容。这一点很重要。
uSlackr

我加了
马丁·乌丁2011年

2

有什么方法可以从FTP下载所有内容吗?

是的,但是您需要(或要求某人)安装ftp服务器并为您配置它。我建议反对。FTP以明文形式发送密码,据我所知,没有通用的SSL包装器(如STARTTLS)。因此,FTP是一个安全漏洞,除非您计划包装在安全VPN中。我建议使用sftp,它本质上是一个ssh连接,可以像命令一样响应ftp。

这是动态服务器吗?它是否具有PHP或CGI或任何其他服务器端代码?如果是这样,HTTP请求只能在运行代码时显示HTML,而不能显示基础源。这不是备份。您应该使用sftp备份源。

对于MySQL,同样,您没有进行真正的备份。您应该熟悉mysqldump或找人为您运行它。

至于处理那些文件,备份到git将需要一些脚本。通常,人们要做的是备份所有文件(包括数据库转储),并保留n天的时间。如果备份到源代码管理,现在需要备份存储库,并担心损坏。通常更清洁,只是保留文件。无论如何,您的源代码应在源代码控制中,并且应与网站上的内容匹配。

我个人会比较喜欢“如果我解压缩此文件是我的网站”,而不是“如果我的git存储库没有问题,我可以找到当天的标签,这是我的网站”。在紧急情况下(并且所有备份还原都是),复杂性不是您想要的。


SCM部分很清楚,我不会使用它,而是继续使用tars。
马丁·乌丁2011年

我声称我做了完整的MySQL备份,因为我的PHP脚本进行了转储。由于它是主机程序包,因此我无法访问mysqldump。他们只提供FTP,不提供加密-价格便宜。
Martin Ueding 2011年

0

为了解决我只有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"
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.