日常工具使用之一二

阿凡达2018-07-04 10:10

工作中有些工具的合理使用能够很好的提升工作效率,本文给大家分享几个工具的使用方式。

一、SSH使用

工作中大家免不了使用ssh登陆,但有很多种大家没有用到的功能,当你了解之后会发现原来这样使用会更方便。

1. 通常的使用姿势

  • ssh登陆服务器

      ssh user@hostname -p port
    

    或者顶多加个参数制定下私钥,如下

      ssh -i yourpri_key user@hostname -p port
    

    上面讲到的是基本的使用方式,但很多人不知道SSH用户配置文件config的使用姿势。

2. 用户配置文件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这款工具,使用相当方便。

1. 安装

wondershaper就是一个可传参的shell脚本,内部通过TC来实现,安装非常方便,可以通过apt-get安装,也可以直接wget下载对应的脚本,你可以直接执行脚本并传入参数即可,当然也可以添加到/sbin 目录下,并赋予执行权限,方便使用。

2. 使用姿势

具体命令如下:

wondershaper [interface] [downlink] [uplink]

其中interface表示网卡,downlink为限制的下行速度,uplink为限制的上行速度,单位均为Kbit/s。

举个例子

对eth0设置下行为500k,上行为600k,即执行如下命令即可:

wondershaper eth0 500 600

查看eth0的网卡添加的限制信息:

wondershaper eth0

清除eth0的限制信息:

wondershaper clear eth0

三、测速工具

有限速,必然少不了测速来验证限速效果,工具speedtest便派上用场。

1. 安装

同wondershaper 安装类似,speedtest是一个python脚本,可以通过pip安装,也可以直接wget 下载脚本python运行即可。

获取地址: wget https://raw.github.com/sivel/speedtest-cli/master/speedtest.py

2. 使用

使用非常方便,如果你放到了/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

参考文章

  1. https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts
  2. http://manpages.ubuntu.com/manpages/zesty/man8/wondershaper.8.html
  3. http://www.ttlsa.com/linux/use-speedtest-cli-test-internet-speed/

本文来自网易实践者社区,经作者刘成授权发布。