import paramikoimport sysimport oshostname = '192.168.1.202'port = 22username = 'root'password = '123456'
def shells(args): #从外部调用脚本参数 例如: python paramiko_demo.py ls ifconfig #开启日志 paramiko.util.log_to_file('paramiko.log') s = paramiko.SSHClient() #s.load_host_keys() #不适用公钥登陆 s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(hostname, port, username, password) #print(commds()) for i in args: print(i) #打印循环好的列表 ls,ifconfig stdin, stdout, stderr = s.exec_command(i) #分别执行这两个命令 print(stdout.read().decode()) s.close() if __name__ == '__main__': args=sys.argv #args=args shells(args)
第二中方法,内部调用命令的方法
import paramiko import sys import os hostname = '192.168.1.202' port = 22 username = 'root' password = '123456' def shells(): #引入内部方法命令执行 commds() #开启日志 paramiko.util.log_to_file('paramiko.log') s = paramiko.SSHClient() #s.load_host_keys() #不适用公钥登陆 s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(hostname, port, username, password) #print(commds()) for i in commds().rstrip().split(','): #循环commds里面得ls 和ifconfig命令,本来是一串字符串得, # 使用rstrip和split以,号 分割,是他们编程列表,循环 print(i) #打印循环好的列表 ls,ifconfig stdin, stdout, stderr = s.exec_command(i) #分别执行这两个命令 print(stdout.read().decode()) s.close() def commds(): #填写命令 com = 'ls' +','+ 'ifconfig' #返回命令给shells方法调用 return com if __name__ == '__main__': shells()