使用paramiko操控远程服务器执行命令
使用paramiko操控远程服务器执行命令
当我们需要在n多台远程服务器上执行相同的操作时,一台一台挨个去手动登录并执行命令很耗时,而且显得很呆。这时候使用程序自动连接并执行命令是明智之举。这里记录使用paramiko操控远程主机的实践过程
python安装paramiko模块
pip install paramiko
写脚本
import paramiko #导入paramiko模块 # 这里先读取一个远程服务器ip列表 f = open("iplist") iplist = f.readlines() f.close() # 本过程使用公私密钥对进行身份认证,此处是指定ssh私钥位置 pKey = paramiko.RSAKey.from_private_key_file("C://Users//hanqing//.ssh//id_rsa") for ip in iplist : ip = ip.strip() ssh = paramiko.SSHClient() #load_system_host_keys()是载入用户.ssh目录下的known_hosts文件,如果knowns_hosts文件中没有目标主机的key,程序会抛出异常,连接失败; ssh.load_system_host_keys() #ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 如果不方便验证目标主机 host key,可以用这个函数替换ssh.load_system_host_keys() ssh.connect(hostname=ip, port=22, username="username", pkey=pKey) stdin, stdout, stderr = ssh.exec_command("cd /home && ls") outputs = stdout.readlines() #outputs是一个输出结果list for out in outputs : print(out) ssh.close()
以上是一个简单的批量操控远程服务器执行命令的脚本
标签:
paramiko