生产环境使用 SSH 工具的有用技巧
我们知道,我们学习 IT 技术时自己搭建的环境,无论是实体机还是虚拟机,在部署安装、使用、运维管理时与工作时会用到的生产环境都存在很大差距。笔者借此机会,结合个人多年工作经验,介绍几个简单、高效的小技巧,避免各位在操作生产环境时遇到一些坑。
生产环境上线时使用瘦客户机
试想如下场景:
你就职于一些权限管理比较严格的公司,生产上线时申请的账号的密码(或者叫口令)的有效期是有限的,一般是十分钟到半小时不等。超时了密码随机重置,需要打运维客服电话申请新的密码。所以如果你只开了一个窗口,而生产环境又为 SSH 会话配置了超时时间,你很可能会因为上线遇到问题,或其他事情干扰,一段时间没有操作会话而达到超时。
多开几个 SSH 窗口
首先,最重要的一点是,多(冗余)剩余没有。在使用 SSH 连接操作生产环境时, 每个要连接的服务器都多克隆几个会话,至少两个,以备不时之需 。否则,我们可能因意外或自己一时脑抽自信地手动关闭了会话,后来发现有问题了,需要打客服电话获取新的生产账户密码。有时,不止密码会变,分配给我们的生产账号也会变。而你的瘦客户机并非直接连接生产环境,需要通过跳板机(或叫做堡垒机)连接到生产环境。每次连接的堡垒机也可能不是同一个!
这样一来,一得打电话给客服核实身份获取新的生产账户和密码;二得重新输入新的生产账户和密码登录,有的公司瘦客户机还会因为超时而自动关机,这样你又得多做一步开机;三得重新连接堡垒机,很可能是新的还得重配环境;四是得回想刚刚做到了哪一步,任务是否执行成功,未完成的数据库事务时现在提交了还是回滚了,等等。全梳理清楚后再继续上线工作。
这一圈下来,最差的情况,我们可能要额外执行六七步工作。浪费的这点操作时间姑且不说,如果因为这样的疏忽导致生产上线出现了异常,那故障就要立即解决,你既费时间又焦急,担心出大事了会被开除。倘若中间给客服打电话申请权限环节被卡住,比如你是乙方、外包人员没有权限又联系不上对接的甲方人员。又或者你是甲方人员因超过上线窗口时间或其他原因导致权限失效了,需要向上级申请审批,那就好了,摊上事了!试想一下,你领导在家睡觉睡得正香呢,你一个电话打来,说生产上线遇到问题了,需要他协调,他少则得打数个电话,多则得亲自到现场监督处理。等事情结束后,秋后算账,不得够你喝一壶的?!
短暂离开一个会话时使用反斜杠(\)
一般情况,使用反斜杠可以保持一个空闲会话连接,除非你的生产环境有更严格的 SSH 管理。
开启 SSH 工具的 Log Session 功能
SSH 工具比如最常用的 SecureCRT 都有 Log Session 记录会话日志的功能。我们可以利用它来记录会话中的打出的每一个命令,而不会因为屏幕打印过长而覆盖了之前的内容(比如由tail -f
命令持续查看日志导致的),方便我们翻阅历史记录。不过有些生产环境禁止在堡垒机上创建文件,但大部分都可以在某个磁盘上创建文件,拿下来还需要相应授权。
日志名称的命名格式可以参照我的设置:
%S_%Y%M%D-%h%m.ssh.log
格式说明:
%S
代表定义的主机名称。%Y
表示年份。%M
表示月份。%D
表示日。%h
表示小时。%m
表示分钟。- 其他请参考所使用的 SSH 的帮助文件。
创建的日志文件显示效果如下:
总结
切记,操作生产环境,最重要的是安全!!!
一个规范严格的公司,会有健全的软件上线流程和环境,从初始化模板环境(Initial)、开发环境(Dev)、功能测试(FT)、性能测试(PT),到预生产(Pre-Production)和生产环境(Production)。上线前应准备好上线步骤文档和上线脚本,并进行充分的测试,尤其是在预生产环境进行演练,然后才能在上线当天顺利完成上线。