LINUX下巧用工具提高工作效率

5年前

本文主要介绍使用巧用PuTTY系列工具包的命令行模式来一键完成实现对远程linux服务器的数据库、中间件、以及应用软件的启动、停止和升级等操作。将频繁乏味的远程登录和输入冗长命令的机械操作转换为轻松的windows桌面快捷方式双击完成。

定义、首字母缩写词及缩略语

PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。

PSFTP是PuTTY SFTP客户端,用于本地与服务器间安全传输文件(使用SSH连接)。


1 概述


1.1 问题或场景

一般情况下客户方处于各种原因会使用一些linux或unix系统来作为服务器操作系统。我们经常需要远程shell来安装公司产品(如EOS、BPS、ESB等)以及升级补丁包等。当客户方机器数量达到两位数级别的集群,每日需要频繁升级维护,重启中间件时候,我们的工作变成了打字员。(频繁输入冗长的密码,不好记忆的含长路径的shell脚本好几十遍,而有时仅仅是ip不同而已,帐号密码和操作命令完全一致)。这时候就需要我们有较好的总结经验和善于用shell脚本工具来降低我们的工作负担。


1.2 目的

提高工作效率,通过思考来减轻我们可以去掉的工作负担。


1.3 参考资料

PuTTY 0.63官方帮助文档。


1.4 工具和技术

PuTTY v0.63(附件


1.5 系统运行环境

运行环境:PuTTY 0.63 可以运行在任何windows 2000以上版本。并提供linux的实现方式,由于不是本文重点,此处不做讨论。(如果读者是linux桌面用户请自行研究)


2 总体解决方案


2.1 PuTTY远程登录shell免输密码


第一次简化命令路径

PuTTY 安装,绿色软件放哪里都可以,最简单把她copy到c:\windows下(免配置path环境变量的简易做法),可以win+r快速启动。



 

第二次简化鼠标操作

用PuTTY登录命令行本次需要的格式简介

Putty.exe ip -l username -pw password

如我们要登录ip为192.168.111.15的linux用户名和密码均为esb630

可以如此启动




第三次简化输入操作

当然并没有减轻我们的工作量

但是将此命令写为bat批处理文件

如下图所示:




第四次简化为快捷方式到桌面

发送快捷方式到桌面


第五次简化创建快捷键


至此,我们可以完成,桌面双击启动此测试服务器的Shell,

或者随时使用“Ctrl + Shift + S”来直接完成。



2.2 PuTTY直接远程执行命令

用PuTTY远程执行命令行需要的格式简介

Putty.exe ip -l username -pw password -m localScriptFile


-m: read a remote command or script from a file

The -m option performs a similar function to the ‘Remote command’ box in the SSH panel of the PuTTY configuration box (see section 4.18.1). However, the -m option expects to be given a local file name, and it will read a command from that file.


场景:发现数据库异常后,或者超并发需要重启服务器上的tomcat软件时,通常需要远程shell到服务器上,cd到命令的路径,先执行stopServer.sh停止服务,再执行startServer.sh启动服务,最后看nohup生成的nohup.out或者重定向的日志文件。


查看不断生成的日志文件,如使用tail 或者tailf来查看nohup生成的nohup.out或者重定向的日志文件。本文例子是esb630帐号在用户主目录下安装了ESB6.3系统,并对基本命令做了短指令简化,分别如下:



启动服务器命令如下: ./ss.sh



看日志命令如下:./ls.sh



停止服务器命令如下:~/primeton/esb/stopServer.sh


分别建立如下3个脚本文件



内容如下:





在分别建立三个批处理文件




内容如下:





以上文件和脚本会在文章相关附件中收录,仅供参考。



2.3 PSFTP实现文件传输操作

场景:更新补丁包到服务器。

命令解释:

psftp ip -l -l username -pw password -b -m localScriptFile -bc

如将upload.zip和upload.sh上传到服务器:

psftp 192.168.111.15 -l esb630-pw esb630 -b script/update.txt -bc


脚本文件Update.txt如下:



将以上命令存为bat批处理文件,即可每次一见上传补丁包到服务器。


2.4 PuTTY组合实现执行复杂任务


场景1:

1.将补丁文件上传到服务器

2.执行解压命令和补丁脚本

3.下载补丁执行日志到本地



场景2  一键补丁文件到所有服务器。

1.将补丁文件上传到服务器

2.执行解压命令和补丁脚本

3.下载补丁执行日志到本地

4.继续执行以上命令到下一台服务器




3 注意事项


3.1 注意事项1

服务器密码以明文方式保存在文件中,请个自妥善保管。


3.2 注意事项2

一旦执行,将无法撤销,且点且珍惜。



4 不足及改进建议


4.1 不足及改进建议

服务器密码以明文方式保存在文件中,请个自妥善保管,如需加密存储,请自行研究并分享给大家,优化服务端可重复实现的命令尽量编写到server的shell,尽量简化本地脚本。


COMMENTS

需要 后方可回复
如果没有账号可以 一个帐号。