SSHLibrary库通信
Posted yinjia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSHLibrary库通信相关的知识,希望对你有一定的参考价值。
常用关键字介绍
SSHLibrary测试库是ATTRobot平台一个扩展库,同时也是一个SSH测试库。用于通过SSH协议通信连接终端设备进行交互通信,发送指令、接收回显消息,对常用操作方法都封装在SSHLibrary测试库中。
A、连接相关的关键字:
关键字 |
说 明 |
Open Connection |
打开到给定主机和端口的新SSH连接 |
Get Connection |
返回有关连接的信息 |
Get Connections |
返回有关所有连接的信息 |
Switch Connection |
通过索引或别名切换活动连接 |
Close Connection |
关闭当前连接 |
Close All Connections |
关闭所有打开的连接 |
Login |
使用给定的用户名和密码登录到SSH服务器 |
Login With Public Key |
使用基于密钥的身份验证登录到SSH服务器 |
Set Client Configuration |
更新当前连接的配置 |
Set Default Configuration |
更新默认配置 |
Enable Ssh Logging |
允许将SSH协议输出记录到给定的日志文件 |
B、 文件/目录相关的关键字
关键字 |
说 明 |
File Should Exist |
如果给定路径不指向现有文件,则失败 |
File Should Not Exist |
如果给定路径指向现有文件,则失败 |
Directory Should Exist |
如果给定路径不指向现有目录,则失败 |
Directory Should Not Exist |
如果给定路径指向现有目录,则失败 |
List Directory |
返回给定的远程路径中的目录,可以选择使用模式进行筛选 |
List Files In Directory |
只返回目录所属的文件 |
List Directories In Directory |
只返回目录所属的子目录 |
Put Directory |
将目录从本地计算机上传到远程计算机 |
Get Directory |
从远程计算机获取目录下载到本地计算机 |
Put File |
将文件从本地计算机上传到远程计算机 |
Get File |
从远程计算机获取文件下载到本地计算机 |
C、 读写执行相关的关键字
关键字 |
说 明 |
Write |
在远程计算机上写入给定文本并附加换行符 |
Write Bare |
在远程计算机上写入给定文本而不附加换行符 |
Write Until Expected Output |
重复写入给定文本,直到预期的文本出现在服务器输出 |
Read |
读取并返回服务器输出的所有可用内容 |
Read Until |
读取并返回服务器输出,直到遇到预期的 |
Read Until Prompt |
读取并返回服务器输出,直到找到提示符 |
Read Until Regexp |
读取并返回服务器输出,直到找到与regexp匹配的 |
Execute Command |
在远程计算机上执行命令并返回其输出 |
Start Command |
开始在远程计算机上执行命令并立即返回 |
Read Command Output |
返回最近启动的命令输出 |
- Exectute Command
参数:【command | return_stdout=True | return_stderr=False | return_rc=False | sudo=False | sudo_password=None | timeout=None | invoke_subsystem=False | forward_agent=False】
说明:在远程计算机上执行命令并返回其输出
举例:
结果:
- Get Connection
参数:【index_or_alias=None | index=False | host=False | alias=False | port=False | timeout=False | newline=False | prompt=False | term_type=False | width=False | height=False | encoding=False | escape_ansi=False】
说明:返回有关连接的信息
举例:
结果:
- List Directories In Directory
参数:【path | pattern=None | absolute=False】
说明:返回远程计算机指定文件夹的目录
Pattern:模式筛选,可以设置需要返回哪些目录名。
Absolute:默认值是False,当设置为True时,返回是带有绝对路径目录,否则返回只显示目录名
举例:
- Put File
参数:【source | destination=. | mode=0744 | newline= | scp=OFF】
说明:上传本地计算机文件到远程计算机指定的路径目录下
Source:源文件
Destination:目的目录,默认是下载到当前工程名目录下
Scp:安全复制协议进行文件传输
Mode:模式可用于设置目标文件权限。接受数值。默认值为0744(-rwxr--r--)
Newline:用于强制写入远程文件的换行符。有效值为LF和CRLF。如果启用scp,则不工作。
1、如果目标是远程计算机上的现有路径,则将源目录上载到其中。
2、如果目标在远程计算机上不存在,则会创建它并将源目录的内容上载到其中。
3、如果未指定目标,则源目录通常上载到远程计算机上用户的主目录。
举例:
- Read
参数:【loglevel=None | delay=None】
说明:返回服务器输出的内容
Loglevel:日志级别。默认无。如有设置级别会根据当前日志级别输出对应内容
Delay:延时。
举例:
- Read Command Output
参数:【return_stdout=True | return_stderr=False | return_rc=False | timeout=None】
说明:返回最近启动的命令输出
return_stdout:设置输出返回值,默认输出。设置False不会输出
return_stderr:设置输出返回异常消息,默认输出。当设置True时,是为空。
return_rc:设置返回的状态码,默认不输出,当设置True时,会返回状态码值
timeout:设置超时时间。
举例:
- Read Until
参数:【expected | loglevel=None】
说明:读取并返回服务器输出,直到遇到预期的
举例:
- Read Until Prompt
参数:【loglevel=None | strip_prompt=False】
说明:读取并返回服务器输出,直到遇到预期的提示符
Loglevel:设置需要返回日志级别消息
strip_prompt:提示符开关,默认关闭表示允许出到提示符。如设置True时,就不会出现提示符。
比如[root@localhost opt],缺少提示符“#”
举例:
- Read Until Regexp
参数:【regexp | loglevel=None】
说明:读取并返回服务器输出,直到找到与regexp匹配的
举例:
- Start Command
参数:【command | sudo=False | sudo_password=None | invoke_subsystem=False | forward_agent=False】
说明:开始在远程计算机上执行命令并立即返回
invoke_subsystem:请求服务器上由command参数给定的子系统。如果服务器允许,那么通道将直接连接到请求的子系统。
forward_agent:是否将本地SSH代理进程转发到正在执行的进程。
举例:
- Switch Connection
参数:【index_or_alias】
说明:通过索引或别名切换活动连接
举例:
- Write
参数:【text | loglevel=None】
说明:在远程计算机上写入给定文本并附加换行符
举例:
- Write Bare
参数:【text】
说明:在远程计算机上写入给定文本而不附加换行符
举例:
- Write Until Expected Output
参数:【text | expected | timeout | retry_interval | loglevel=None】
说明:重复写入给定文本,直到预期的文本出现在服务器输出
Text:向终端写入文本
Expected:读取预期的文本
Timeout:超时
retry_interval:每秒写入一次
举例:
编写pwd回车,直到出现/root输出中。每5秒写入一次,如果在5秒内未出现在服务器输出中,则关键字失败。
结果:
以上是关于SSHLibrary库通信的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SSHLibrary 在远程机器中打开 tmux 会话?