作为系统管理员,不仅仅是要知道怎么建立维护服务器和理解系统命令是怎么工作的就可以让你成为一个好的系统管理员——甚至也不是要知道当系统宕掉时怎么去修复,怎么去监控系能,怎么去管理备份或者怎么可以写出漂亮的脚本。而是除此之外还要为自己制定一套能让系统良好运行以及让你用户高兴的规则。
可能其中很多你已经听过无数次,也可能有些是你遇到问题时吸取的经验教训。这些规则在过去几十年的系统管理中都已经证明了它们的价值并且能够帮助我们在脑子发热时冷静下来。
1. 禁止做任何不能回滚的操作
除了一些最简单的修改,你应该备有回滚方案。当你进行改动时想好了回滚方案吗?有很多办法可以在修改的途径中留下技术上的“面包屑”,这能够让你随时回到你开始的原点。备份你需要编辑的文件,可能是你记不住的一些复杂的配置文件。记录下你遇到的问题。在进行生产环境之前先在测试环境下测试,在你继续之前确保所有的修改都是合理的。
提前计划好需要改动的地方,最好能够采取同行评审的方式。另外一双眼睛可能可以看到你没有考虑到的问题。
2. 凡事弄清楚根本原因
去挖掘你所碰到问题的根本原因。当怀疑的时候,用“五个为什么”原则。我的服务器宕了,为什么?是因为内存不够。为什么不够?因为其中一个进程“疯了”。为什么“疯了”?因为它进入到循环中。为什么进入?因为配置文件中有错误。为什么有错误?因为我在周五晚上离开之前修改了文件,但是忘了测试确保所有一切都可以正常工作。
3. 定期实践灾备方案,确保备份数据可用
实践灾备方案在必要的时候能够顺手使用。如果你不实践,有两种可能会发生。第一,你没有信心你的方案是否有用,第二,你可能会不确定你所要采取的措施。比如说,你需要迁移数据库到一个远程站点。你是否知道你要运行的命令?准备好数据备份了吗?还是需要去创建备份?你是否知道迁移文件需要多久?你是否会准备好远程启动数据库?你是否有一套测试来检验其能够很好地运行?
4. 不要依赖没有完整测试过的脚本
这很容易犯错的。即使你已经写了几十年的脚本也要去测试,特别是可能别人在某天会运行这些脚本。带参数测试和不带参数测试。模拟其他人可能会犯的错误。总之,必须要测试脚本。
5. 三次以上的重复和复杂的操作,必须自动化
在别名、函数和脚本中使用你最熟练的命令并且赋予它们有意义的命名。将那些复杂的过程写进到脚本中,你就无需每次都要去想那些必要的步骤和复杂的命令。这样你会在费时费力的工作中节省很多的时间和精力,并且在需要其他人为你工作时,让你有更多的轻松时间。
6. 记录你的工作,并建立文档沉淀下来
用文档记录下你的日常工作。你做的事里面有哪些对别人来说不好理解?可能你要跑个脚本在日志文件中查找磁盘吃紧或者数据中心湿度太高的警告。
往脚本中添加注释。你可能会觉得你用的那些命令很显而易见,但是当你隔了一两年没用再回去用的时候就不会那么显而易见了。不要为了简洁而牺牲了可读性。别人可能会要读你的代码。完整地写下你所做的一切,别人能够在你决定跳槽时候很好地接手你的工作。
7. 重视你犯过的错误,并找到避免再犯的方案
用你自己的方式去理解错误是避免再犯的唯一方法。重视你所做错的并且注意那些多次犯错的类型
可能是你忘了修改默认密码从而密码过期导致启动的服务宕了;可能你没有去验证备份是否可用;也可能是当其他人离开公司时你忘了封锁他们的账号。不管什么问题,需要注意记录你的疏忽并且找到一种可靠的方式来提醒自己容易忘记的事。
8. 跳出管理员角色思考问题
经常问自己问题,比如“别人会不会误用这个呢?”,“别人会不会弄坏这个呢?”,以及“这个服务会怎么收到攻击?”给所有的脚本设置权限使除管理员以外其他人都无权查看。想一些防守措施能够让你减少很多痛苦。而且,对管理服务器来说,妄想症是优点。
9. 务必注意系统安全性
安全方面的投入是要与你所保护的数据成比例的。要知道你在保护什么,知道你所保护数据的“主人”。运用一些最佳的实践方案,比如最小特权、定期补丁、监控关键服务以及漏洞检测。仅仅只运行你所需要的服务。时刻警惕任何强行闯入或者系统受损的迹象。准备好上报渠道能够让你知道什么时候以及向谁汇报这些系统受损现象。
10. 不要停止学习新技能
就像逆水行舟,不进则退。经常找些新东西来学习。你将准备好承担新的责任甚至可能在裁员中幸存。如果你没有把握去学什么,那就去看心仪工作的职位介绍。怎么让自己符合标准?那些技术是高需求的吗?你是否可以每天腾出一点点时间来学习新东西呢?
本文转自 tianya1993 51CTO博客,原文链接:http://blog.51cto.com/dreamlinux/1896809,如需转载请自行联系原作者