工作中有些工具的合理使用能够很好的提升工作效率,本文给大家分享几个工具的使用方式。
工作中大家免不了使用ssh登陆,但有很多种大家没有用到的功能,当你了解之后会发现原来这样使用会更方便。
ssh登陆服务器
ssh user@hostname -p port
或者顶多加个参数制定下私钥,如下
ssh -i yourpri_key user@hostname -p port
上面讲到的是基本的使用方式,但很多人不知道SSH用户配置文件config的使用姿势。
用户配置文件各项参数不再具体说明,有兴趣可以Google或者百度。
用户的ssh config信息放在~/.ssh/config里面,如果没有config文件可以自行创建一个。
当你有大量的机器需要ssh登陆时,每次登陆都需要输入用户名及hostname,所有的必填参数都需要记住,想想也是蛮头疼的,那么有没有好的办法解决呢,请向下看。
config中简要配置以下几项便可轻松解决:
Host 别名
HostName 主机名
Port 端口
User 用户名
IdentityFile 密钥文件的路径
其中Host为任意自定义名称,简明标签即可,HostName即为需要ssh的主机名称,User为ssh登陆到服务器使用的用户名,IdentityFile即为指定密钥的路径。
举个梨汁:
假如我想登陆hostname为 inspur1.photo.163.org,用户名为hzliucheng,此机器上部署了nos,那么你可以这么配置,在config文件中加入以下几行:
Host nos
HostName inspur1.photo.163.org
Port 1046
User hzliucheng
IdentityFile ~/.ssh/id_rsa
比如你想登陆部署nos的服务器,然后登陆时你这么干就可以:
ssh nos
另外如果你使用scp上传文件到nos服务器上的tmp目录,你可以这么干:
scp youfile nos:/tmp
同样你如果想执行远程命令,亦可使用同样的方式:
ssh nos "ls /home/nos"
config能做得不仅仅只有上面这么些,工作中我们经常会遇到这样的情况,本地ssh某个环境是不通的,需要通过跳板机来连通,通常我们的做法比较简单,首先ssh到跳板机,从跳板机再次ssh到目标机器,这种方法笨拙且不高效,简单配置下config文件可以很快解决你的问题,有两种方法可以解决跳转的问题。
方法一:使用ProxyCommand参数
直接入题,如果你有个跳板机,你可以同上述方法一致,添加到对应config文件中,如我有个跳板机 HostName为inspur1.photo.163.org,ssh端口为1046,User为hztiaoban,那么我可以进行如下配置:
Host tiaoban
HostName inspur1.photo.163.org
Port 1046
User hztiaoban
IdentityFile ~/.ssh/id_rsa
另外你有一台目标机器 10.160.133.133 和本地不通,只能通过被命名为tiaoban的这台机器跳转,其登陆用户名为hzliucheng,端口为22, 那么在上面配置完成的基础上你可以在config文件中追加这些配置:
Host dstserver
HostName 10.160.133.133
Port 1046
User hzliucheng
ProxyCommand ssh hztiaoban@tiaoban -W %h:%p
此时如果你要登陆dstserver,你只需要这么做即可:
ssh dstserver
这样即可轻松登陆,需要注意的是,在配置dstserver时,其中HostName需要配置为ip,另外ProxyCommand中的ssh后的用户名为跳板机ssh的用户名。
假如你是某个网段的机器都需要通过跳板机来进行跳转的话,你可以使用通配符来进行配置,如10.160.133.*所有的机器都需要通过跳板机来跳转,你可以这么做:
Host 10.160.133.*
Port 1046
User hzliucheng
ProxyCommand ssh hztiaoban@tiaoban -W %h:%p
这样的话如果你要登陆10.160.133.131这台机器,你这么干即可:
ssh hzliucheng@10.160.133.131
方法二:使用ProxyJump命令参数
上面讲述的方法配置起来较为方便,但config中有另外一种配置方式,可以更简单方便的完成跳转,依然是上面的例子,使用命令ProxyJump这么配置即可:
Host 10.160.133.*
User hzliucheng
Port 1046
ProxyJump hztiaoban@inspur.photo.163.org -p 1046
如果你要登陆10.160.133.131这台机器,你这么干即可:
ssh hzliucheng@10.160.133.131
作为QA在测试过程中经常需要模拟各种网络情况下服务的处理情况,少不了使用限速工具,最初使用TC来进行限速设置,但简单的规则仅限于对下行进行限速,而对于上行限速则需要添加一堆的规则,相当繁琐,为此给大家推荐wondershaper这款工具,使用相当方便。
wondershaper就是一个可传参的shell脚本,内部通过TC来实现,安装非常方便,可以通过apt-get安装,也可以直接wget下载对应的脚本,你可以直接执行脚本并传入参数即可,当然也可以添加到/sbin 目录下,并赋予执行权限,方便使用。
具体命令如下:
wondershaper [interface] [downlink] [uplink]
其中interface表示网卡,downlink为限制的下行速度,uplink为限制的上行速度,单位均为Kbit/s。
举个例子
对eth0设置下行为500k,上行为600k,即执行如下命令即可:
wondershaper eth0 500 600
查看eth0的网卡添加的限制信息:
wondershaper eth0
清除eth0的限制信息:
wondershaper clear eth0
有限速,必然少不了测速来验证限速效果,工具speedtest便派上用场。
同wondershaper 安装类似,speedtest是一个python脚本,可以通过pip安装,也可以直接wget 下载脚本python运行即可。
获取地址: wget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py
使用非常方便,如果你放到了/sbin目录下,或者通过pip安装,你可以直接运行 speedtest命令即可,如果为wget下载的Python脚本,你可以直接Python运行脚本即可。
结果大概是这个样子的:
[root@lc-test ~]# python speedtest.py
Retrieving speedtest.net configuration...
Testing from China Telecom (59.111.92.71)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by China Mobile Group Zhejiang Co., Ltd. (Ningbo) [141.79 km]: 7.71 ms
Testing download speed................................................................................
Download: 76.09 Mbit/s
Testing upload speed................................................................................................
Upload: 26.66 Mbit/s
参考文章
本文来自网易实践者社区,经作者刘成授权发布。