创建网站备份应该是一个网站管理员最为重要的日常工作之一。但现实情况是,备份这一步往往被很多人忽略,也就是说仍然有很多网管的网站安全意识较低。
所有的Linux/Mac用户都能够零经济成本地通过命令行工具创建网站备份。如果你用的不是Linux/Mac,请关注我们的后续文章——如何在windows上通过软件方式创建备份。
本文的初衷不是为读者提供完整的备份解决方案,而是给那些有时间并且想要学习一些基础的命令行工具进行网站备份的宝宝们一点参考。
你的主机必须具备必要的软件及证书。
服务器上的软件:
tar
电脑上的软件:
SSH(用于创建/删除备份文件)
SCP(用于下载备份文件)
Terminal(例如gnome-terminal,用于运行所有命令)
所需信息
服务器IP及SSH证书
数据库证书
网站根目录(以及你想在备份中加入或排除内容的目录)
数据库:MySQL、PostgreSQL或SQLite(如果你的网站使用其中一种)
一旦将你的电脑与服务器相连接,你就可以快速地通过命令进行网站备份。
通过SSH连接服务器:
SSH是Secure Shell的简写,通常用于远程命令的执行。
打开terminal,键入以下命令,通过SSH协议连入你的服务器:
在terminal中连上服务器后,你键入的每一条命令都在你的服务器上执行。接下来,我们要在服务器上创建一个名为“backup(备份)”的新文件夹。只要不是公开的,你可以把这个文件夹放在任何地方。
如果你的web应用根目录为:/home/username/html,那么我们就能够顺利在 /home/username/中创建“backup(备份)”的文件夹。一旦备份传输到了电脑,就可以删除服务器上的备份记录。
如果你不知道自己的网站根目录,可以在cPanel账户中找到该信息:
上图中我们可以看到该网站的根目录是:
/home/ma658tvk
。
在Linux/Mac操作系统中,你可以使用
mkdir
命令创建目录。例如:
该命令能够帮你在/home/username/中创建“backup”目录。
在该文件夹中,我们已经创建了4个子目录:
db
、
core
、
logs
以及
conf
。
注意mkdir命令中的-p符号,该符号表示:在某目录已经存在但仍然按需创建主目录的情况下不会报错。
将整个应用进行备份的工作非常关键,包括数据库转储文件、核心文件、插件以及媒体文件。如果你想更加细节化一些,还可以对服务器配置文件及日志进行备份。在执行取证分析时,备份数据就更是尤为重要了。
我之所以热衷于使用命令行工具是因为在进行数据库备份时都无需再用到其它附加工具。大多数的数据库引擎都具备命令行功能,只需要拿到数据库证书,整个过程简单粗暴高效。
下面的命令将导出一个数据库转储文件并将其放在:/home/username/backup/db/
如果你的网站采用的是MySQL,可运行以下命令:
若为PostgreSQL,则运行这个命令:
这些命令会用到用户名密码。输入后(你的terminal中看不到这些字符)转储文件将存储在事先准备好的backup文件夹中。
如果网站用的是
SQLite
,那么你只需要复制该文件即可:
现在我们要做的是压缩网站核心文件(为了方便起见)。在你的服务器上安装
tar
程序,并确定核心文件以及其它你想备份或不备份文件的具体位置。
我们再次假设你的网站存储在:/home/username/html。那么使用以下命令创建tar文件:
如果你想涵盖/home/username/html中的所有文件,那么上面这个命令就非常好用。但如果你不想包含全部呢?
假设你的网站架构如下:
如果我们压缩了整个目录,那么缓存(
cache
)文件夹也会被备份。而缓存文件完全没有必要备份,如果删除这部分内容,可以节省很多时间、节约带宽。但如果使用tar命令,我们可以通过
-exclude
这一标识将不需要备份的目录排除。下面我们在排除缓存目录的情况下对网站目录进行再次压缩:
另外,名为
core.tar
的voilà – a .tar文件会存储在/home/username/backup/core/中。你也可以一直使用-exclude命令对你不需要备份的内容进行排除。
就个人经验来说,我已经多次受益于配置和日志文件的备份了。比如,我已经很多次忘记我的“httpd.conf”长啥样了,所以每次我都通过查电脑上的备份来解决这个难题。我是一个很懒的人,但请谅解——这个习惯常常能帮上大忙,日志文件也是。
配置文件和日志文件没有通用位置,但你可以在tar命令中添加多个位置。例如:
第一行末尾的“\”符号表示按“
Enter
”键时,terminal不执行命令,而表示该命令含多行的意思。最后一行命令末尾不含“\”字符,表示terminal可以执行命令。这样,你就可以创建一个包含你系统不同文件夹中的配置/日志文件的
.tar
文件了。
只要你在备份的服务器中安装了正确的软件,恢复配置文件只会让你对配置文件进行复制。如果要在生产服务器中恢复配置文件,但软件不同,恢复过程可能会发生很多错误。务必小心。
创建最终的tar文件
到这里,我们已经把/home/username/backup/文件夹下所需的文件都准备好了,现在我们只需要创建.tar文件并把它下载到我们自己的电脑上即可。虽然我们也可以在不压缩的情况下下载整个备份文件夹,但是我还是建议以单个压缩文件的方式下载(更加保险、安全)。
该命令将创建一个名为“latest.backup.tar”的文件,包含所有的备份文件。在terminal中输入“
exit