Linux运维老手常踩的5个Unix环境搭建坑
|
最近给某银行搭Unix环境,风扇在机柜里转得跟直升机似的,我盯着屏幕上的行数跳了俩小时,突然发现个坑——/etc/security/limits.conf里明明设了nofile=65535,结果用户登录还是卡在1024。开发小王路过问了句“好了没”,我盯着ulimit -n的输出骂了句“见鬼”,后来查日志才发现,这破系统用了PAM的limit模块,得在/etc/pam.d/login里加一行“session required pam_limits.so”才生效。我原以为Linux那套直接搬过来就行,结果Unix的PAM逻辑比我想的绕多了,这坑踩得,外卖都凉了。 第二个坑更离谱。做NFS共享时,我按Linux的习惯在/etc/exports里写了“/data 192.168.1.0/24(rw,sync,no_subtree_check)”,结果客户端挂载时报“Permission denied”。查了半天发现,Unix的NFS服务端默认用root_squash,而客户端挂载时用的uid=0,直接被映射成nobody了。我改了exports加“anonuid=0,anongid=0”还不行,最后发现得在服务端/etc/sysconfig/nfs里设NFS4_SUPPORT=no,因为NFSv4的权限模型跟v3完全两码事。开发老张在群里喊“怎么还没好”,我回他“这破系统比Linux事儿多”,他回了个“习惯就好”——习惯个鬼,我调了四遍才搞定。 第三个坑是时间同步。我装了ntpd服务,配置文件里server写了三个NTP池,结果运行了半小时,客户端和服务端时间差了三分钟。查日志发现ntpd根本没连上外网,原来Unix的防火墙规则在/etc/sysconfig/iptables里,而我忘了开UDP 123端口。更气人的是,我开了端口后,ntpd还是不同步,最后发现是系统时钟源没选对——得在/etc/sysconfig/ntpd里加“OPTIONS="-g -x -p /var/run/ntpd.pid"”,其中-g允许大步长调整,-x降低调整频率。我一边改一边骂“这破参数比Linux的chrony复杂十倍”,窗外天都黑了,时间才同步上。 说到时间,我想起上周值班的事。那天凌晨三点,监控报警说某业务数据库连接池爆了,我爬起来查,发现是Unix主机的时间突然跳回了1970年。原来那台机的CMOS电池没电了,系统时间重置,而数据库的SSL证书验证依赖时间,导致所有连接被拒。我换完电池重启,时间倒是对了,但数据库主从同步又出问题——从库的binlog位置比主库还新,因为时间回跳导致事件顺序乱了。最后只能手动跳过几个事务,开发小李在电话里喊“这数据能保证一致吗”,我回他“保证不了也得保证,不然你写代码重跑啊”——他没声了,我知道他也在熬夜改bug。 第四个坑是用户组管理。我在Unix上建了个devops组,把几个运维用户加进去,结果他们执行sudo时总报“user is not in the sudoers file”。我查/etc/sudoers,发现Unix的sudo规则得用visudo编辑,而且组名前得加%,而我直接写了“devops ALL=(ALL) ALL”,应该改成“%devops ALL=(ALL) ALL”。更坑的是,我改了sudoers后,有个用户还是不行,原来他的主组不是devops,而是staff——Unix的用户组优先级比Linux复杂,得用id命令查清楚主组和附加组。我一边改一边想,这破系统连用户组都搞这么复杂,是不是故意为难运维? 第五个坑是日志轮转。我按Linux的习惯装了logrotate,配置文件里写“/var/log/messages { daily rotate 5 compress }”,结果第二天发现日志没压缩,文件也没轮转。查了半天发现,Unix的logrotate默认用gzip压缩,但得在/etc/logrotate.conf里设“compresscmd=/bin/gzip”,而我系统里gzip的路径是/usr/bin/gzip。更气人的是,我改了路径后,日志还是轮转失败,原来是因为日志文件权限是600,而logrotate运行的用户没权限读取。我改了权限后,日志终于轮转了,但开发老王说“这日志轮转比Linux慢多了”,我回他“慢就慢吧,至少不报错了”——他不知道我为了这破配置花了多少时间。
文章配图,仅供参考 这些坑踩下来,我算是明白了,Linux运维老手去搞Unix环境,真不能想当然。我原以为“优胜劣汰”下,Unix早该被Linux淘汰了,结果发现,银行、电信这些传统行业还在用Unix,而且很多老系统跑得稳得一批——不是因为它们没坑,而是因为踩坑的人早就把坑填平了。我现在遇到问题,第一反应不是查文档,而是先问老同事“你们以前怎么解决的”,毕竟,有些坑,只有踩过的人才知道怎么绕。下一步我打算把这次踩的坑整理成文档,发给新来的运维看——虽然他们可能觉得我啰嗦,但等他们自己踩一遍,就知道这文档有多宝贵了。当然,我也知道,有些坑,光看文档是躲不过的,得亲自踩一遍才行——就像我,风扇转了俩小时,外卖凉了,天黑了,才明白Unix的PAM模块有多坑。 (编辑:我爱制作网_池州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


Linux新手避坑指南:18年数据分析师实战安装配置
Linux无障碍环境搭建:零配置到语音导航全流程
Unix调试总卡壳?19年老司机揭5大隐性陷阱
站长必修:SQL Server运维避坑指南(12个真实故障复盘)
Linux安全环境搭建:从零到生产就绪
5G筑基,智联万物:运维视角下的移动新优势
网站搭建总卡壳?多媒体工程师运维避坑指南
浙公网安备 33038102330577号