【新概念运维】本次《新概念运维》内容取材自Softpanorama网站的sysadmin horror stories专栏(系统管理员的恐怖故事)。大家在CU论坛上应该也看过类似的误操作收集帖,不过Softpanorama总结的更全面,而且有很多经验丰富的老UNIX管理员们分享经验。
经典语录
管理员们破坏的数据比任何黑客穷其一生所能破坏的数据都要多。——Rick Furniss
如果不想学,经验有个毛用。
只要时间足够长,任何事都会发生在任何人身上。——萧伯纳
经验是***的老师,但傻瓜只认识这一位老师。——本杰明·富兰克林
概述
人孰无过?但悲催者莫过于身为root犯了错,更悲催者在于你身为root在生产机器上犯了错,最悲催者在于你身为root在生产机器上犯了错,结果发现没有可用的备份——于是你不得不跟那些重要的数据说拜拜了。
所以,就需要对这些悲催事儿进行归纳总结,好以史为鉴。无论在怎样的情况下,任何错误都应被记录为文档以警醒自己和后人。
在这些错误中最常见的问题在于管理员对所处场景的混淆,因为管理员经常会同时操作多个窗口。
第二大原因应该在于对危险性的错误评估。人们对于危机的反应通常是感性的,所以系统管理员们有时候可能只是犯了个小错误,结果由于下意识的反应过度导致了更大的问题。
对于这两点,一些通用建议如下:
1、使用VNC、Worker等图形化工具进行服务器连接,并为不同的机器设置不同的背景桌面,这样可以大大减少在错误的机器上操作的几率。
2、如果坚持使用命令行方式登录,那么尽量仅在你当前处理的机器上登录为root,在其他机器上只用你自己的没有root权限的id。
其他建议包括:
- 对于要应用在生产环境的变更进行严密的记录和重重测试。
- 保证睡眠,减少疲劳。
- 少喝咖啡。
- 在日常操作中,严格按照计划执行,不要做多余的、心血来潮的事情。
- 质量***。对管理员而言,欲速则不达是一条真理。要养成急事缓办的习惯。
那些悲催的事儿
为了从他人的经验中更有效率的总结学习,作者将之前Anatoly Ivasyuk整理过的一些材料重新进行了分类,看起来更加一目了然。本次《新概念运维》将仅翻译这个分类目录,相信大家一看就能明白。如果想看更多的故事,可以在原网站阅读(英文)。
1、不能用的备份
要记住,如果事情搞砸了,备份是你恢复系统的***一根救命稻草。
2、锁上门发现自己在门外
这包括几个情景:
- root账号访问关了
- 把网络服务关闭了
- 被刚修改完的防火墙规则挡在墙外了
- root密码忘了
3、在错误的机器上操作
这可能跟服务器的命名规则有关,你可能想输入WEB200结果输入了WEB300;这可能是因为你打开了好几个终端窗口,在急急忙忙去吃饭前跑到了错误的服务器上执行命令。所以,执行命令之前,一定仔细看清楚shell提示符上写的是哪台机器。避免同时打开多个终端窗口,毕竟关掉再打开窗口只不过是几秒钟的事儿,却可以避免一些糟糕事情的发生。
4、在错误的路径下操作
一般遇到这种情况,都是由疲劳或压力过大导致的神志不清所引起的。
5、不懂正则表达式
菜鸟管理员们可能没意识到“.*”可以匹配“..”。此类对象最怕跟chmod,chown和rm命令一起执行,尤其是如果再加上一个-r参数的情况。
6、find命令惹的祸
find是个复杂的命令,用错了后果会很严重。尤其是在没好好测试的情况下使用了-exec参数的情况。
7、对使用/或系统目录作为home目录的用户进行操作
进行删除用户的操作,结果发现把整个系统都删干净了……而且如果删除用户的操作通过crontab执行,可能会痛苦好几天。
8、对重要命令的参数理解不深入,或者没经过测试就在生产环境下执行复杂的命令
这种问题的发生通常来自于赶时间。常见问题包括:
- 执行复杂的rm命令之前没用ls先测试一遍:在决定rm掉一串东西之前,一定要记得先用ls看看这串东西都是啥!更不用说要和带有exec参数的find命令一起执行的时候。
- 执行rm的时候打错了字:打错字总是难免的,复制粘贴最靠谱。
9、改错了文件所有者
把chown和find一起用经常会出现这种问题,所以请先测试。
10、对系统安全性过于偏执
目前的很多安全建议其实都是愚蠢的,并且对生产效率产生了副作用。比如遵循安全建议更改了/bin和/usr/bin的所有者,结果谁也登陆不进去了。
11、赶时间
单独把赶时间列成一条,是因为赶时间是造成问题最有利的元凶。
12、打补丁引发的血案
打补丁会引发问题。一般而言,Sun的补丁测试工作做得非常全面;IBM和HP做得少点;Novell放出的更新补丁则有可能让整个系统挂掉,更新完了可能会发现Sendmail或Bind这样的开源系统少了些什么零件。往生产环境更新补丁前必须走测试流程,这是常识。另外,更新***用DVD,别相信什么官网的在线更新。
13、糟糕的自动化脚本
尤其是如果自动化脚本中有删除文件的操作的情况下,编写不严谨的自动化脚本会让用户觉得十分糟糕。
14、多个管理员同时在一台服务器上工作
最常见的,一个管理员走了,走之前改了root密码……
15、不成熟的优化和系统清理
有时候你看着某个文件多余,虽然不知道它存在的目的但是出于不顺眼将其删除,结果会发现这是一个愚蠢的决定。
16、不同操作系统产生的混乱
比如在Solaris下,运行级5(run level 5)代表重启,而Linux下的运行级5代表在有网络和X11的环境下运行系统。
17、纯犯傻
纯犯傻是可以预防的。另外如果你确定某个人是菜鸟,那么***别让他拥有root的密码。
【有关新概念运维】
在日常的系统管理运维工作中,每个人对于系统、工具、应用、命令、架构以及工作中的其他方面都会有自己的理解。理解方式的不同也意味着不同的认知,因此,这种理解方式的交流,也可能碰撞出更多思维的火花,让每个人从另一个角度了解自己每天从事的工作。51CTO系统频道从日常和运维人员的交流中收集这些理解方式,组合成短文集,名为《新概念运维》。
【编辑推荐】