暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

实现自动的交互式任务

916

先说两个交互式任务的例子:

1、数据库执行操作

2、修改密码


         以上两种操作比较常见,共同的特点就是需要先执行一个命令,进入后,再执行相关操作。对于数据库这样的操作一般只需要执行一批sql或命令,就可以利用shell中的特殊的定向输入符号<<实现交互。也就说可以通过红框中的方法实现不用交互也可以在shell中实现交互操作。但对于第二种修改密码的情况,需要交互输入多次才能完成。这样的操作如何实现自动交互呢?

      通常我们都是通过expect,expect是一个免费的编程工具,用来实现自动的交互式任务,而无需人为干预。说白了,expect就是一套用来实现自动交互功能的软件。

      使用方法如下:

    通过以上的shell脚本就可以实现root su的切换

     对于expect的使用方法,文章已经很多了,有兴趣的可以自己了解一下,python语言也有类似实现,但由于expect并不是默认系统中自带的,安装比较繁琐,我们今天就给大家介绍一个go开发的小工具。

     该工具,只有一个执行程序expect和一个配置文件expect.xml

    配置文件如下:

<?xml version="1.0" encoding="UTF-8" ?>

<Config>

<runcmd>su - root</runcmd>

<expects>

<ex>

<expect><![CDATA[密码:]]></expect>

<send>root</send>

</ex>

<ex>

<expect><![CDATA[#]]></expect>

<send>cat etc/passwd</send>

</ex>

<ex>

<expect><![CDATA[RE(.+):x:497:497]]></expect>

<send>id ###1###</send>

</ex>

</expects>

</Config>




该工具除了可以实现expect的功能,也就是等待收到一个指定字符串后发送一个字符串的交互之外,还可以对收到的字符进行正则解析,将解析到的字符串作为下一个指令中的参数,这样就可以实现更多的交互任务。


以上的配置任务实现的目的就是切换到root下,查看密码文件,并解析id为497的用户的用户名,将该用户名作为下一个参数,执行id 查询相关信息。



该工具可以使用的场景如下:

1、修改密码

2、ftp或ssh交互操作

3、corba接口订阅

4、数据库交互





最后修改时间:2019-12-13 09:28:57
文章转载自数据库平台优化,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论