天天看点

使用python在远程电脑执行多行shell脚本

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

<code>#!/usr/bin/env python</code>

<code>import</code> <code>paramiko</code>

<code>hostname</code><code>=</code><code>'was1'</code>

<code>port</code><code>=</code><code>22</code>

<code>username</code><code>=</code><code>'mqm'</code>

<code>password</code><code>=</code><code>'redhat'</code>

<code>cmd</code><code>=</code><code>'''</code>

<code>function printline {</code>

<code>                </code><code>echo "-------------------------------$1-------------------------------"</code>

<code>        </code><code>} </code>

<code>if [ -d /tmp/test ]</code>

<code>then </code>

<code>printline check_test_dir</code>

<code>echo "/tmp/test exist"</code>

<code>else</code>

<code>mkdir /tmp/test</code>

<code>fi</code>

<code>     </code><code>cat /etc/fstab&gt;/tmp/test/fstab.bk</code>

<code>printline ls_test</code>

<code>ls /tmp/test</code>

<code>printline cat_fstab.bk</code>

<code>cat /tmp/test/fstab.bk</code>

<code>printline ip_check</code>

<code>/sbin/ifconfig</code>

<code>'''</code>

<code>if</code> <code>__name__</code><code>=</code><code>=</code><code>'__main__'</code><code>:</code>

<code>paramiko.util.log_to_file(</code><code>'paramiko.log'</code><code>)</code>

<code>s</code><code>=</code><code>paramiko.SSHClient()</code>

<code>s.set_missing_host_key_policy(paramiko.AutoAddPolicy())</code>

<code>#s.load_system_host_keys()</code>

<code>s.connect(hostname,port,username,password)</code>

<code>stdin,stdout,stderr</code><code>=</code><code>s.exec_command(cmd)</code>

<code>print</code> <code>stdout.read()</code>

<code>print</code> <code>stderr.read()</code>

<code>s.close()</code>

注:远程主机必须能解析python程序所在主机的主机名,否则程序执行非常缓慢。

     本文转自1321385590 51CTO博客,原文链接:http://blog.51cto.com/linux10000/1773269,如需转载请自行联系原作者