Linux运维工程师一定要知道的六类好习惯和23个教训

以下内容已屏蔽图片优化访问速度
[IMG]

一、线上操作规范
1.测试使用
当初学习Linux的使用,从基础到服务到集群,都是在虚拟机做的,虽然老师告诉我们跟真机没有什么差别,可是对真实环境的渴望日渐上升,不过虚拟机的各种快照却让我们养成了各种手贱的习惯,以致于拿到服务器操作权限时候,就迫不及待的想去试试。
记得上班第一天,老大把root密码交给我,由于只能使用putty,我就想使用xshell,于是悄悄登录服务器尝试改为xshell+密钥登录,因为没有测试,也没有留一个ssh连接,所有重启sshd服务器之后,自己就被挡在服务器之外了,幸好当时我备份了sshd_config文件,后来让机房人员cp过去就可以了,幸亏这是一家小公司,不然直接就被干了……庆幸当年运气比较好。
第二个例子是关于文件同步的,大家都知道rsync同步很快,可是他删除文件的速度大大超过了rm -rf,在rsync中有一个命令是,以某目录为准同步某文件(如果第一个目录是空的,那么结果可想而知),源目录(有数据的)就会被删除,当初我就是因为误操作,以及缺乏测试,就目录写反了,关键是没有备份……生产环境数据被删了
没备份,大家自己想后果吧,其重要性不言而喻。
2. Enter前再三确认
关于rm -rf / var 这种错误,我相信手快的人,或者网速比较慢的时候,出现的几率相当大。
当你发现执行完之后,你的心至少是凉了半截。
大家可能会说,我按了这么多次都没出过错,不用怕,我只想说,当出现一次你就明白了,不要以为那些运维事故都是在别人身上,如果你不注意,下一个就是你。
3. 切忌多人操作
我在的上一家公司,运维管理相当混乱,举一个最典型的例子吧,离职好几任的运维都有服务器root密码。
通常我们运维接到任务,都会进行简单查看。如果无法解决,就请求他人帮忙,可是当问题焦头烂额的时候,客服主管(懂点linux),网管,你上司一起调试一个服务器,当你各种百度,各种对照完了发现,你的服务器配置文件,跟上次你修改不一样了,然后再改回来,然后再谷歌,兴冲冲发现问题,解决了,别人却告诉你,他也解决了,修改的是不同的参数……这个,我就真不知道哪个是问题真正的原因了,当然这还是好的,问题解决了,皆大欢喜,可是你遇到过你刚修改的文件,测试无效,再去修改发现文件又被修改的时候呢?真的很恼火,切忌多人操作。
4.先备份后操作
养成一个习惯,要修改数据时,先备份,比如.conf的配置文件;
另外,修改配置文件时,建议注释原选项,然后再复制,修改;
再者说,如果第一个例子中,有数据库备份,那rsync的误操作不久没事了吧;
所以说丢数据库非一朝一夕,随便备份一个就不用那么惨。
二、涉及数据
1.慎用rm -rf
网上的例子很多,各种rm -rf /,各种删除主数据库,各种运维事故……
一点小失误就会造成很大的损失。如果真需要删除,一定要谨慎。
2.备份大于一切
本来上面都有各种关于备份,但是我想把它划分在数据类再次强调,备份非常之重要哇~
我记得我的老师说过一句话,涉及到数据何种的谨慎都不为过。
我就职的公司有做第三方支付网站和网贷平台的。第三方支付是每两个小时完全备份一次,网贷平台是每20分钟备份一次。
我不多说了,大家自己斟酌吧
3.稳定大于一切
其实不止是数据,在整个服务器环境,都是稳定大于一切,不求最快,但求最稳定,求可用性。
所以未经测试,不要在服务器使用新的软件,比如nginx+php-fpm,生产环境中php各种挂啊~
重启下就好了,或者换apache就好了。
4.保密大于一切
现在各种艳照门漫天飞,各种路由器后门,所以说,涉及到数据,不保密是不行的。
三、涉及安全
1. ssh
更改默认端口(当然如果专业要黑你,扫描下就出来了)
禁止 root 登录
使用普通用户+key认证+sudo规则+ip地址+用户限制
使用hostdeny类似的防爆力破解软件(超过几次尝试直接拉黑)
筛选/etc/passwd中login的用户


2. 防火墙
防火墙生产环境一定要开,并且要遵循最小原则,drop所有,然后放行需要的服务端口。
3.精细权限和控制粒度
能使用普通用户启动的服务坚决不使用root,把各种服务权限控制到最低,控制粒度要精细。
4.入侵检测和日志监控
使用第三方软件,时刻检测系统关键文件以及各种服务配置文件的改动。比如,/etc/passwd,/etc/my.cnf,/etc/[IMG]-rf /data都在下班的前几分钟,都在烦躁的高峰,那么你还不打算控制下你的心态么?
有人说了,烦躁也要上班,可是你可以在烦躁的时候尽量避免处理关键数据环境。
越是有压力,越要冷静,不然会损失更多。
大多人都有rm -rf /data/mysql的经历,发现删除之后,那种心情你可以想象一下,可是如果没有备份,你急又有什么用,一般这种情况下,你就要冷静想下最坏打算了,对于mysql来说,删除了物理文件,一部分表还会存在内存中,所以断开业务,但是不要关闭mysql数据库,这对恢复很有帮助,并使用dd复制硬盘,然后你再进行恢复
当然了大多时候你就只能找数据恢复公司了。
试想一下,数据被删了,你各种操作,关闭数据库,然后修复,不但有可能覆盖文件,还找不到内存中的表了。
2.对数据负责
生产环境不是儿戏,数据库也不是儿戏,一定要对数据负责。不备份的后果是非常严重的。
3.追根究底
很多运维人员比较忙,遇到问题解决就不会再管了,记得去年一个客户的网站老是打不开,经过php代码报错,发现是session和whos_online损坏,前任运维是通过repair修复的,我就也这样修复了,但是过了几个小时,又出现了。反复三四次之后,我就去谷歌数据库表莫名损坏原因:一是myisam的bug,二是mysqlbug,三是mysql在写入过程中被kill,最后发现是内存不够用,导致OOM kill了mysqld进程,并且没有swap分区,后台监控内存是够用的,最后升级物理内存解决。
4.测试和生产环境
在重要操作之前一定要看自己所在的机器,尽量避免多开窗口。
来源:[IMG]MORE | 往期精彩文章 -

与努力同样重要的是,学会做好这 6 点!

Kubernetes网络排错指南(内有马哥亲笔签名新书送)

安全预警|超2亿份国内简历数据遭泄露

年底了,要慎重,这是一个不太好的信号....

华为员工发飙:遇到了几个垃圾基层主管,动不动就谩骂和威胁员工



如果你喜欢本文
请长按二维码关注民工哥技术之路
[IMG]
转发朋友圈,是对我最大的支持。
[IMG]
扫码加群交流
点击【阅读原文】公众号所有的精华都在这里
觉得好看,请点这里↓↓↓
巴菲特:越有闲,越有钱 华为的狼性文化,为什么你学不来? 李书福内部讲话:世界本来就很复杂,我们一定要安静下来 酸碱平衡治百病?靠骗局2年挣75亿,权健之后又一传销大佬落网 起底保健帝国权健:5年赚5千亿,4岁女孩服药离世称治愈
好看吗?
总执行时间0.0747532844543457,文章查询时间0.0482792854309082,分类查询时间0.009910821914672852,其他脚本0.0002696514129638672,模板渲染0.01629352569580078