有人说,既然数据备份非常重要,那我把重要数据在硬盘中保存一份,在移动硬盘中也保存一份,再刻录一张光盘,这样数据应该非常安全了吧?
对个人用户来讲,这样保存数据已经足够了;但是对企业用户来讲,还是有安全隐患的,因为这些数据还是放在同一个地方的。还记得美国的“9·11”事件吗?像美国纽约世贸中心那样的庞然大物也轰然倒塌。当然,相比这样的灾难来讲,数据的损失已经是微不足道的了,不过这仍然说明异地备份的重要性。所以,我们在备份数据的时候,不仅要把数据保存在多个存储介质中,还要考虑把重要数据异地保存。
Linux服务器中的哪些数据需要备份
既然备份这么重要,那么对 Linux 服务器来讲,我们到底需要备份哪些数据呢?当然最理想的就是把整块硬盘中的数据都备份,甚至连分区和文件系统都备份,这样如果硬盘损坏,那么我们可以直接把备份硬盘中的数据导入损坏的硬盘,甚至可以直接用备份硬盘代替损坏的硬盘。
从数据恢复角度来说,这样的整盘备份是最方便的(dd 命令就可以实现整盘备份,类似于 Windows 中的 GHOST 软件)。不过这种备份的备份时间比较长,占用的硬盘空间较大,不太适合经常进行。我们最常进行的备份还是把系统中的重要数据进行备份。那么,哪些数据是 Linux 服务器中较为重要的、需要定时备份的数据呢?
1) Linux服务器中的重要数据
Linux服务器中的哪些数据需要备份,可能不同的管理员有不同的理解,不过有这样一些数据是大家公认的需要备份的数据。
- /root/ 目录:/root/ 目录是管理员的家目录,很多管理员会习惯在这个目录中保存一些相关数据,那么,当进行数据备份时,需要备份此目录。
- /home/ 目录:/home/ 目录是普通用户的家目录。如果是生产服务器,那么这个目录中也会保存大量的重要数据,应该备份。
- /var/spool/mail/ 目录:在默认情况下,所有的用户未读的邮件会保存在 /var/spool/mail/ 目录下和用户名相同的邮箱文件中,已读的邮件会保存在用户家目录下的 mbox 文件中(mail 命令默认如此保存,不过如果使用了 hold 命令,那么不管邮件是否已读,都保存在 /var/spool/mail/ 目录中。可以使用 mbox 命令恢复已读邮件保存在“~/mbox”文件中)。一般情况下,用户的邮件也是需要备份的重要数据。
- /etc/ 目录:系统重要的配置文件保存目录,当然需要备份。
- 其他目录:根据系统的具体情况,备份你认为重要的目录。比如,我们的系统中有重要的日志,或者安装了 RPM 包的 MySQL 服务器(RPM 包安装的 mysql 服务,数据库保存在 /var/lib/mysql/ 目录中),那么 /var/ 目录就需要备份;如果我们的服务器中安装了多个操作系统,或编译过新的内核,那么 /boot/ 目录就需要备份。
2) 安装服务的数据
我们的 Linux 服务器中会安装各种各样的应用程序,这些程序当然也有重要数据需要备份。不过应用程序是多种多样的,每种应用程序到底应该备份什么数据也不尽相同,要具体情况具体对待。这里拿最常见的 apache 服务和 mysql 服务来举例。
apache 服务需要备份如下内容:
- 配置文件:RPM包安装的apache需要备份/etc/httpd/conf/httpd.conf;源码包安装的apache则需要备份/usr/local/apache2/conf/httpd.conf。
- 网页主目录:RPM包安装的apache需要备份/var/www/html/目录中所有的数据;源码包安装的apache需要备份/usr/local/apache2/htdocs/目录中所有的数据。
- 日志文件:RPM包安装的apache需要备份/var/log/httpd/目录中所有的日志;源码包安装的apache需要备份/usr/local/apache2/logs/目录中所有的日志。
其实,对源码包安装的 apache 来讲,只要备份 /usr/local/apache2/ 目录中所有的数据即可,因为源码包安装的服务的所有数据都会保存到指定目录中。但如果是 RPM 包安装的服务,就需要单独记忆和指定了。
mysql 服务需要备份如下内容:
- 对于源码包安装的 mysql 服务,数据库默认安装到 /usr/local/mysql/data/ 目录中,只需备份此目录即可。
- 对于RPM包安装的 mysql 服务,数据库默认安装到 /var/lib/mysql/ 目录中,只需备份此目录即可。
如果是源码包安装的服务,则可以直接备份 /usr/local/ 目录,因为一般源码包服务都会安装到 /usr/local/ 目录中。如果是 RPM 包安装的服务,则需要具体服务具体对待,备份正确的数据。