自由的星辰 發表於 2023-9-20 00:00:00

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 &lt;&lt; </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 &lt;&lt; '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]
查看完整版本: linux expect实现登陆远程主机并执行命令示例代码