def put_file(self, fileput): if not self.file_exist(fileput): return False try: log_time = time.strftime("%Y-%m-%d %H:%M:%S") print "Connecting %s..." % fileput['ip'] socket.setdefaulttimeout(5) t = paramiko.Transport((fileput['ip'], fileput['port'])) t.connect(username=fileput['username'], password=fileput['passwd']) sftp = paramiko.SFTPClient.from_transport(t) sftp.put(fileput['file2put'], fileput['file2save']) t.close() except IOError: error_msg = fileput['file2save'] + " is wrong." ReportLog.send_results( False, "[ERROR %s]: upload %s to %s" % (log_time, fileput['file2put'], fileput['ip']), des_str=error_msg) return False except Exception, e: ReportLog.send_results( False, "[ERROR %s]: upload %s to %s" % (log_time, fileput['file2put'], fileput['ip']), des_str=str(e)) return False
def exec_cmd(self,exec_cmd): try : # print exec_cmd['ip'],exec_cmd['passwd'] # print "\n" print "\nConnecting %s..."%exec_cmd['ip'] log_time = time.strftime("%Y-%m-%d %H:%M:%S") socket.setdefaulttimeout(2) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(exec_cmd['ip'],exec_cmd['port'],exec_cmd['username'],exec_cmd['passwd']) print "Connected %s Successfully..."%exec_cmd['ip'] stdin, stdout, stderr = ssh.exec_command(exec_cmd['cmd2exec']) err_message = stderr.read() if err_message: print err_message ReportLog.send_results(True,"[INFO %s]: execute [%s] on %s"%(log_time,exec_cmd['cmd2exec'],exec_cmd['ip']),des_str=err_message) return True ok_message = stdout.read() ReportLog.send_results(True,"[INFO %s]: execute [%s] on %s"%(log_time,exec_cmd['cmd2exec'],exec_cmd['ip']),des_str=str(ok_message)) ssh.close() except socket.timeout: ReportLog.send_results(False,"[ERROR %s]: execute [%s] on %s"%(log_time,exec_cmd['cmd2exec'],exec_cmd['ip']),des_str="%s Connection timed out"%(exec_cmd['ip'])) return False except socket.error: ReportLog.send_results(False,"[ERROR %s]: execute [%s] on %s"%(log_time,exec_cmd['cmd2exec'],exec_cmd['ip']),des_str="%s Connection timed out"%(exec_cmd['ip'])) return False except paramiko.AuthenticationException: ReportLog.send_results(False,"[ERROR %s]: execute [%s] on %s"%(log_time,exec_cmd['cmd2exec'],exec_cmd['ip']),des_str="[IP=%s Password=%s] Authentication failured"%(exec_cmd['ip'],exec_cmd['passwd'])) return False return True
def file_exist(self, fileput): if not os.path.isfile(fileput['file2put']): ReportLog.send_results(False, "NO: locate [%s]" % (fileput['file2put']), des_str="%s doesn't exist." % (fileput['file2put'])) return False return True
def dir_exists(self, dirput): if not os.path.isdir(dirput['dir2put']): ReportLog.send_results(False, "NO: locate [%s]" % (dirput['dir2put']), des_str="%s doesn't exist." % (dirput['dir2put'])) return False return True
def exec_cmd(self, exec_cmd): try: # print exec_cmd['ip'],exec_cmd['passwd'] # print "\n" print "\nConnecting %s..." % exec_cmd['ip'] log_time = time.strftime("%Y-%m-%d %H:%M:%S") socket.setdefaulttimeout(2) ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(exec_cmd['ip'], exec_cmd['port'], exec_cmd['username'], exec_cmd['passwd']) print "Connected %s Successfully..." % exec_cmd['ip'] stdin, stdout, stderr = ssh.exec_command(exec_cmd['cmd2exec']) err_message = stderr.read() if err_message: print err_message ReportLog.send_results( True, "[INFO %s]: execute [%s] on %s" % (log_time, exec_cmd['cmd2exec'], exec_cmd['ip']), des_str=err_message) return True ok_message = stdout.read() ReportLog.send_results( True, "[INFO %s]: execute [%s] on %s" % (log_time, exec_cmd['cmd2exec'], exec_cmd['ip']), des_str=str(ok_message)) ssh.close() except socket.timeout: ReportLog.send_results( False, "[ERROR %s]: execute [%s] on %s" % (log_time, exec_cmd['cmd2exec'], exec_cmd['ip']), des_str="%s Connection timed out" % (exec_cmd['ip'])) return False except socket.error: ReportLog.send_results( False, "[ERROR %s]: execute [%s] on %s" % (log_time, exec_cmd['cmd2exec'], exec_cmd['ip']), des_str="%s Connection timed out" % (exec_cmd['ip'])) return False except paramiko.AuthenticationException: ReportLog.send_results( False, "[ERROR %s]: execute [%s] on %s" % (log_time, exec_cmd['cmd2exec'], exec_cmd['ip']), des_str="[IP=%s Password=%s] Authentication failured" % (exec_cmd['ip'], exec_cmd['passwd'])) return False return True
def put_file(self,fileput): if not self.file_exist(fileput): return False try: log_time = time.strftime("%Y-%m-%d %H:%M:%S") print "Connecting %s..."%fileput['ip'] socket.setdefaulttimeout(5) t = paramiko.Transport((fileput['ip'],fileput['port'])) t.connect(username = fileput['username'], password = fileput['passwd']) sftp = paramiko.SFTPClient.from_transport(t) sftp.put(fileput['file2put'],fileput['file2save']) t.close() except IOError: error_msg = fileput['file2save'] + " is wrong." ReportLog.send_results(False,"[ERROR %s]: upload %s to %s"%(log_time,fileput['file2put'],fileput['ip']),des_str=error_msg) return False except Exception,e: ReportLog.send_results(False,"[ERROR %s]: upload %s to %s"%(log_time,fileput['file2put'],fileput['ip']),des_str=str(e)) return False
def put_dir(self,dirput): if not self.dir_exists(dirput): return False socket.setdefaulttimeout(2) print "Connecting %s..."%dirput['ip'] log_name = "/tmp/" + dirput['ip'].split('/')[-1] + "_put_dir.log" put_dir_cmd = "./put_dir.sh %s %s %s %s > %s 2>&1"%(dirput['ip'],dirput['passwd'],dirput['dir2put'],dirput['dir2save'],log_name) # print put_dir_cmd log_time = time.strftime("%Y-%m-%d %H:%M:%S") os.popen(put_dir_cmd) fd = open(log_name,'r') log = fd.read(1024) if 'No such file or directory' in log: ReportLog.send_results(False,"[ERROR %s]: upload %s to %s"%(log_time,dirput['dir2put'],dirput['ip']),des_str="%s doesn't exist on %s ."%(dirput['dir2save'],dirput['ip'])) return False elif 'timed out' in log or 'Connection refused' in log: ReportLog.send_results(False,"[ERROR %s]: upload %s to %s"%(log_time,dirput['dir2put'],dirput['ip']),des_str="%s: Connection timed out."%(dirput['ip'])) return False # print log ReportLog.send_results(True,"[INFO %s]: upload %s to %s"%(log_time,dirput['dir2put'],dirput['ip'])) fd.close() return True
def put_dir(self, dirput): if not self.dir_exists(dirput): return False socket.setdefaulttimeout(2) print "Connecting %s..." % dirput['ip'] log_name = "/tmp/" + dirput['ip'].split('/')[-1] + "_put_dir.log" put_dir_cmd = "./put_dir.sh %s %s %s %s > %s 2>&1" % ( dirput['ip'], dirput['passwd'], dirput['dir2put'], dirput['dir2save'], log_name) # print put_dir_cmd log_time = time.strftime("%Y-%m-%d %H:%M:%S") os.popen(put_dir_cmd) fd = open(log_name, 'r') log = fd.read(1024) if 'No such file or directory' in log: ReportLog.send_results(False, "[ERROR %s]: upload %s to %s" % (log_time, dirput['dir2put'], dirput['ip']), des_str="%s doesn't exist on %s ." % (dirput['dir2save'], dirput['ip'])) return False elif 'timed out' in log or 'Connection refused' in log: ReportLog.send_results(False, "[ERROR %s]: upload %s to %s" % (log_time, dirput['dir2put'], dirput['ip']), des_str="%s: Connection timed out." % (dirput['ip'])) return False # print log ReportLog.send_results( True, "[INFO %s]: upload %s to %s" % (log_time, dirput['dir2put'], dirput['ip'])) fd.close() return True
def dir_exists(self,dirput): if not os.path.isdir(dirput['dir2put']): ReportLog.send_results(False,"NO: locate [%s]"%(dirput['dir2put']),des_str="%s doesn't exist."%(dirput['dir2put'])) return False return True
def file_exist(self,fileput): if not os.path.isfile(fileput['file2put']): ReportLog.send_results(False,"NO: locate [%s]"%(fileput['file2put']),des_str="%s doesn't exist."%(fileput['file2put'])) return False return True