import paramiko
ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) def BatchCMD(address,username,password,port,command): try: ssh.connect(hostname=address,username=username,password=password,port=port,timeout=2) stdin , stdout , stderr = ssh.exec_command(command) result = stdout.read() if len(result) != 0: return result else: return -1 except Exception: return -1
def GetPing(): fp = open("unix_base.db", "r", encoding="utf-8") count = len(open("unix_base.db", "r", encoding="utf-8").readlines()) print("-" * 100) print("{0:20} \t {1:10} \t {2:13} \t {3:5} \t {4:9} \t {5:40}".format("IP地址","机器系统","设备SN","机房位置","存活状态","主机作用")) print("-" * 100) for each in range(count): ref = eval(fp.readline()) ret = BatchCMD(ref[0],ref[5],ref[6],22,"pwd | echo $?") if(int(ret)==0): print("{0:20} \t {1:10} \t {2:11} \t {3:5} \t {4:9} \t {5:40}". format(ref[0],ref[1],ref[2],ref[3],"正常",ref[4])) else: print("{0:20} \t {1:10} \t {2:13} \t {3:5} \t {4:9} \t {5:40}". format(ref[0],ref[1],ref[2],ref[3],"异常",ref[4])) fp.close()
def GetProcessStatus(): fp = open("unix_process.db", "r", encoding="utf-8") count = len(open("unix_process.db", "r", encoding="utf-8").readlines()) for each in range(count): proc = eval(fp.readline()) proc_len = len(proc) print("-" * 70) print("---> 巡检地址: {0:10} \t 登录用户: {1:7} \t 登录密码: {2:10}".format(proc[0],proc[1],proc[2])) print("-" * 70) for process in range(3, proc_len): command = "ps aux | grep \'{}\' | grep -v \'grep\' | awk '{}' | head -1".format(proc[process],"{print $2}") try: ref = BatchCMD(proc[0],proc[1],proc[2],22,command) if(int(ref)!=-1): print("进程: {0:18} \t PID: {1:10} \t 状态: {2}".format(proc[process], int(ref),"√")) else: print("进程: {0:18} \t PID:{1:10} \t 状态: {2}".format(proc[process], 0,"×")) except Exception: print("进程: {0:18} \t PID:{1:10} \t 状态: {2}".format(proc[process], 0,"×")) print() fp.close()
def GetDiskStatus(): fp = open("unix_disk.db", "r", encoding="utf-8") count = len(open("unix_disk.db", "r", encoding="utf-8").readlines()) for each in range(count): proc = eval(fp.readline()) proc_len = len(proc) print("-" * 100) print("---> 巡检地址: {0:10} \t 登录系统: {1:7} \t 登录账号: {2:10} 登录密码: {3:10}". format(proc[0],proc[1],proc[2],proc[3])) print("-" * 100) try: ref = BatchCMD(proc[0], proc[2], proc[3], 22, "df | grep -v 'Filesystem'") st = str(ref).replace("\\n", "\n") print(st.replace("b'", "").replace("'", "")) except Exception: pass print() fp.close()
def RunCmd(command,system): fp = open("unix_disk.db", "r", encoding="utf-8") count = len(open("unix_disk.db", "r", encoding="utf-8").readlines()) for each in range(count): proc = eval(fp.readline()) proc_len = len(proc)
if proc[1] == system: print("-" * 100) print("---> 巡检地址: {0:10} \t 登录系统: {1:7} \t 登录账号: {2:10} 登录密码: {3:10}". format(proc[0],proc[1],proc[2],proc[3])) print("-" * 100) try: ref = BatchCMD(proc[0], proc[2], proc[3], 22, command) st = str(ref).replace("\\n", "\n") print(st.replace("b'", "").replace("'", "")) except Exception: pass fp.close()
|