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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/usr/bin/env python
#-*-coding:UTF-8-*-
"""
@Item   :  v1.0
@Author :  ShengWangQiang
@Group  :  System 
@Date   :  2015-01-28
@E-mail :  swq.499809608@hotmail.com
@Funtion:
          
"""
 
import sys,time,os,traceback,commands,
import paramiko,
 
class Remote(object):
    def __init__(self):
        version = 'v0.1'
        self.users = 'root'
        self.passwd  = "1234567890"
        self.port = 22
         
 
    def log(self,info):
        files = open('/tmp/deploy.log','a')
        try:
            files.write('[%s]: %s \n' %(time.ctime(),info))
        except IOError:
            files.close()
        files.close()
 
 
    def cmds(self,host,comm):
        try:
            print comm
            client = paramiko.Transport((host,int(self.port)))
            client.connect(username=self.users,password=self.passwd)
            chan = client.open_session()
            chan.exec_command(comm)
            chan.close()
        except:
            print 'host', host
            print traceback.format_exc()
            self.log(traceback.format_exc())
 
    def sftps(self,host,files):
        try:
            lodir = '/opt/onfile'
            rmdir = '/opt/onfile'
            client = paramiko.Transport((host,int(self.port)))
            client.connect(username=self.users,password=self.passwd)
            sftp = paramiko.SFTPClient.from_transport(client)
            sftp.put('%s/%s'%(lodir,files),'%s/%s'%(rmdir,files))
            client.close()
        except:
            print traceback.format_exc()
            self.log(traceback.format_exc())
 
    def work(self,comm):
        fp = open('/opt/online/ser_list.txt').readlines()
        for in fp:
            host = s.strip()
            self.cmds(host,comm)
    def sftp(self,comm):
        fp = open('/opt/online/ser_list.txt').readlines()
        for in fp:
            host = s.strip()
            self.sftps(host,files)
 
if __name__ == '__main__':
    sc = Remote()
    func =  sys.argv[1]
    files = sys.argv[2]
    if func == 'sftp':
        sc.sftp(files)
    elif func == 'work':
        sc.work(files)