<code># -*- coding: utf-8 -*-</code>
<code>#!/usr/bin/env python</code>
<code>import</code> <code>pexpect,os </code><code>#导入需要用到模块</code>
<code>def</code> <code>ssh_cmd(ip, shell_cmd):</code>
<code>passwd</code><code>=</code> <code>'1qaz#EDC'</code>
<code>print</code> <code>'host: %s is connected... '</code> <code>%</code> <code>ip</code>
<code>child </code><code>=</code> <code>pexpect.spawn(</code><code>'ssh root@%s'</code> <code>%</code> <code>(ip))</code>
<code>fout </code><code>=</code> <code>file</code><code>(</code><code>'log.txt'</code><code>,</code><code>'a'</code><code>)</code>
<code>child.logfile </code><code>=</code> <code>fout</code>
<code>try</code><code>:</code>
<code>i </code><code>=</code> <code>child.expect(</code><code>'password:'</code><code>)</code>
<code>if</code> <code>i </code><code>=</code><code>=</code> <code>0</code><code>:</code>
<code>child.sendline(passwd)</code>
<code>elif</code> <code>i </code><code>=</code><code>=</code> <code>1</code><code>:</code>
<code>child.sendline(</code><code>'yes\n'</code><code>)</code>
<code>child.expect(</code><code>'password: '</code><code>)</code>
<code>print</code> <code>'host:%s Login ok!'</code> <code>%</code> <code>ip</code>
<code>child.expect(</code><code>'#'</code><code>)</code>
<code>child.sendline(shell_cmd) </code><code>#执行传过来的shell命令</code>
<code>print</code> <code>'host:%s Command Execution ok!'</code> <code>%</code> <code>ip</code>
<code>except</code> <code>pexpect.EOF:</code>
<code>print</code> <code>"Command run ok!"</code>
<code>child.close()</code>
<code>except</code> <code>pexpect.TIMEOUT:</code>
<code>print</code> <code>"Connect Timeout..."</code>
<code>#前面的ssh_cmd()作用为建立ssh连接</code>
<code>for</code> <code>i </code><code>in</code> <code>range</code><code>(</code><code>165</code><code>,</code><code>167</code><code>):</code>
<code>ipaddr </code><code>=</code> <code>'192.168.122.%s'</code> <code>%</code> <code>i</code>
<code>ssh_cmd(ipaddr,</code><code>'mkdir -p /etc/ceph'</code><code>) </code><code>#ssh连接上远程主机后,在远程主机创建制定目录</code>
<code>os.environ[</code><code>'ip'</code><code>]</code><code>=</code><code>str</code><code>(ipaddr) </code><code>#python变量和shell变量互用</code>
<code>os.system(</code><code>'sshpass -p 1qaz#EDC scp /home/testfile*.conf root@$ip:/etc/ceph'</code><code>) #文件下发</code>
本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1863197