当我在云服务器控制台重装了 CentOS,部署完崭新的博客系统,在网站首页再次写下“积跬步以至千里,积小流以成江海”这句话时,我知道我兢兢业业积累了六个多月,近百篇涉猎甚广的博客已经一去不返了。
写博客不是一件轻松的事,初衷本是积累记录以便以后查阅。但又怕有需要的访客看到时由于内容太过笼统而不明所以,所以我力求把每篇博客写的清晰且正确。每一句话都斟酌是否准确,求证是否正确,并标注权威引用链接。语言难以描述清楚的内容便自己 PS 作图,或者附上可访问展示的 Demo。可以说是颇费苦心了。
创造一个美好东西的过程通常是复杂和困难的,但毁灭它往往要简单得多。有时只不过就是一句
rm -rf
,整个过程不会超过两秒,很安静。
反思
我从来不害怕犯错,我只怕重复犯错。所以关于这次 rm -rf
误删系统关键文件导致博客丢失,我很快进行了反思,并在新部署的博客系统上进行了改进。总结如下:
系统多用户管理
root 用户的权利太大了,使用 root 用户操作 Linux 系统无疑是一件刀尖舔血的艺术行为。做得好是艺高胆大,做不好便万劫不复。
应对不同的功能开设不同的用户。比如为服务器的网站管理开设专门的用户,分配其有限的权限。使其无法威胁到系统本身的正常运行。
数据库多用户管理
同理,数据库也应开设不同用户,限制其危险操作的权限。
开启回收站功能
CentOS 默认是没有回收站功能的,一旦 rm -rf
命令操作成功,想要找回数据往往不是一件简单的事,尤其是当服务器还在进行高频的数据
IO。
所以我们应该自己实现一个回收站的功能,其实很简单,即重写系统的
rm
命令为 mv
命令。将想要删除的文件转移到指定目录,并定期清理即可。关于具体的实现过程,我会尽快整理发布。
更改 Web 服务器默认路径
以 Apache 为例,默认网站更目录是在 /var/
下。这是这次误删事件的直接原因,我本想删除某子目录下的 var
目录,结果手抖多打了 /
就把 /var/
目录全删了,数据库文件也在里面。
所以如果 Web 服务器的网站更目录在系统关键目录下,应该将他转到网站管理员用户目录下。降低误操作带来的风险。
数据备份
其实在这次误删系统文件前我有备份过博客数据,不过时间比较久了,但仍能找回部分博客内容。可见有一个定期备份数据的好习惯是多么重要。