今天遇到一个需求,SSH远程登录之后自动切换到root用户,这里需要用到expect命令,
1 | #!/usr/bin/env expect |
举一反三
这个需求的核心点在于,ssh登录之后,也就是切换shell环境之后执行一些其他命令。那么一些其他相似的需求也可以进行类似的处理:
- liunux安装软件包的时候,经常会有一些提示,需要人工确认才能继续进行,这时候可以采用except进行封装, 让安装过程自动化(在批量安装的时候尤其有用)。当然,现在许多软件都有可选参数可跳过这些手动操作。
- 一些软件(如数据库、redis、rabbitmq等等)都提供一些命令行工具,而这些工具都有自己的环境,我们也可使用expect进行封装(当然很少有人这么干)。
- 一些工具或命令需要根据提示输入相应的内容才能继续运行,这时我们可以用expect使其自动化。
- 使用expect编写一些简单的监控、或自动化测试脚本。