linux expect实现登陆远程主机并执行命令示例代码
<p>本文主要给大家介绍了关于linux expect实现登陆远程主机并执行命令的相关内容,分享出来供大家参考学习,下面来一看看详细的介绍:</p>
<p>
<span><strong>示例代码:</strong></span></p>
<div class="jb51code">
<div>
<div class="syntaxhighlighterbash" id="highlighter_24622">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
<div class="line number5 index4 alt2">
5</div>
<div class="line number6 index5 alt1">
6</div>
<div class="line number7 index6 alt2">
7</div>
<div class="line number8 index7 alt1">
8</div>
<div class="line number9 index8 alt2">
9</div>
<div class="line number10 index9 alt1">
10</div>
<div class="line number11 index10 alt2">
11</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="bash preprocessor bold">#!/bin/bash </code>
</div>
<div class="line number2 index1 alt1">
<code class="bash functions">export</code> <code class="bash plain">cmd=$1</code>
</div>
<div class="line number3 index2 alt2">
<code class="bash plain">expect << </code><code class="bash string">'END'</code>
</div>
<div class="line number4 index3 alt1">
<code class="bash functions">set</code> <code class="bash plain">cmd </code><code class="bash string">"$env(cmd)"</code>
</div>
<div class="line number5 index4 alt2">
<code class="bash plain">spawn </code><code class="bash functions">ssh</code> <code class="bash plain">root@192.168.56.1 $cmd</code>
</div>
<div class="line number6 index5 alt1">
<code class="bash plain">expect {</code>
</div>
<div class="line number7 index6 alt2">
<code class="bash spaces"> </code><code class="bash string">"(yes/no)?"</code> <code class="bash plain">{send </code><code class="bash string">"yes\r"</code><code class="bash plain">;exp_continue}</code>
</div>
<div class="line number8 index7 alt1">
<code class="bash spaces"> </code><code class="bash string">"password:"</code> <code class="bash plain">{send </code><code class="bash string">"root\r"</code><code class="bash plain">;exp_continue}</code>
</div>
<div class="line number9 index8 alt2">
<code class="bash spaces"> </code><code class="bash plain">eof</code>
</div>
<div class="line number10 index9 alt1">
<code class="bash plain">}</code>
</div>
<div class="line number11 index10 alt2">
<code class="bash plain">END</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div class="codetool" id="codetool">
<div class="code_n">
<textarea></textarea>
</div>
</div>
</div>
<p>
<span><strong>解释</strong></span></p>
<ul>
<li>
export 定义一个变量,获取$1</li>
<li>
expect << 'END' 开始expect脚本,最后END结束</li>
<li>
set cmd "$env(cmd)" 获取系统变量</li>
<li>
spwan 开始一个进程</li>
<li>
expect {} 具体的应答消息</li>
</ul>
<p>
<span><strong>总结</strong></span></p>
<p>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。</p>
<p>
原文链接:https://carey.akhack.com/2017/06/16/expect登陆远程主机并执行命令/</p>
頁:
[1]