python远程连接linux调用命令行
-
Python可以通过多种方式远程连接Linux服务器并调用命令行。下面介绍两种常用的方法:
方法一:使用paramiko库
1. 首先,确保已经安装paramiko库,可以使用pip命令进行安装。
“`
pip install paramiko
“`
2. 导入paramiko库,并创建SSHClient对象。
“`python
import paramikossh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
“`
3. 使用SSHClient对象连接到远程Linux服务器,并进行身份验证。
“`python
ssh.connect(hostname=’远程服务器IP地址’, port=22, username=’用户名’, password=’密码’)
“`
4. 调用命令行。可以使用SSHClient对象的exec_command方法来执行命令,并通过read方法获取命令输出结果。
“`python
stdin, stdout, stderr = ssh.exec_command(‘需要执行的命令’)
output = stdout.read().decode(‘utf-8’)
print(output)
“`
5. 关闭SSH连接。
“`python
ssh.close()
“`
方法二:使用fabric库
1. 首先,确保已经安装fabric库,可以使用pip命令进行安装。
“`
pip install fabric
“`
2. 导入fabric库,并创建Connection对象。
“`python
from fabric import Connectionc = Connection(‘远程服务器IP地址’, user=’用户名’, connect_kwargs={‘password’: ‘密码’})
“`
3. 调用命令行。可以使用Connection对象的run方法来执行命令,并通过stdout属性获取命令输出结果。
“`python
result = c.run(‘需要执行的命令’, hide=True)
output = result.stdout.strip()
print(output)
“`
4. 关闭连接。
“`python
c.close()
“`
以上就是使用Python远程连接Linux服务器并调用命令行的两种常用方法。根据实际需求,选择适合自己的方法进行操作。2年前 -
Python提供了多种方式来远程连接Linux服务器并调用命令行。以下是一些常用的方法和库:
1. 使用paramiko库:
paramiko是Python用于SSH协议的库,可以使用它来远程连接Linux服务器并执行命令。下面是一个简单的例子:“`python
import paramiko# 创建SSH客户端
client = paramiko.SSHClient()# 设置自动添加主机密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接服务器
client.connect(‘服务器IP地址’, username=’用户名’, password=’密码’)# 执行命令
stdin, stdout, stderr = client.exec_command(‘命令’)# 打印命令执行结果
print(stdout.read().decode())# 关闭连接
client.close()
“`2. 使用fabric库:
fabric是一个用于远程执行命令的Python库,它基于paramiko库,提供了更加方便的API。以下是一个示例:“`python
from fabric import Connection# 连接服务器
with Connection(host=’服务器IP地址’, user=’用户名’, connect_kwargs={‘password’: ‘密码’}) as conn:
# 执行命令
result = conn.run(‘命令’, hide=True)# 打印命令执行结果
print(result.stdout)
“`3. 使用ssh库:
ssh是一个用于SSH连接的Python库,可以使用它来连接服务器和执行命令。下面是一个示例:“`python
import ssh# 创建SSH会话
session = ssh.SSHClient()# 自动添加主机密钥
session.set_missing_host_key_policy(ssh.AutoAddPolicy())# 连接服务器
session.connect(‘服务器IP地址’, username=’用户名’, password=’密码’)# 执行命令
stdin, stdout, stderr = session.exec_command(‘命令’)# 打印命令执行结果
print(stdout.read().decode())# 关闭连接
session.close()
“`4. 使用subprocess模块:
subprocess是Python标准库中的一个模块,可以用来创建子进程并执行命令。以下是一个示例:“`python
import subprocess# 执行命令
result = subprocess.run([‘ssh’, ‘服务器IP地址’, ‘命令’], check=True, capture_output=True, text=True)# 打印命令执行结果
print(result.stdout)
“`5. 使用paramiko和pexpect库:
pexpect是一个通过spawnpty()方法创建子进程并与之交互的Python库。结合paramiko和pexpect可以实现远程连接Linux服务器并交互式地执行命令。以下是一个示例:“`python
import paramiko
import pexpect# 创建SSH客户端
client = paramiko.SSHClient()# 设置自动添加主机密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接服务器
client.connect(‘服务器IP地址’, username=’用户名’, password=’密码’)# 打开shell会话
channel = client.invoke_shell()# 通过pexpect进行交互
child = pexpect.spawn(channel)# 向终端发送命令
child.sendline(‘命令’)# 读取命令输出
child.expect(‘#’)
output = child.before.decode()# 打印命令输出
print(output)# 关闭连接
client.close()
“`这些方法和库都提供了不同的功能和灵活性,可以根据需要选择适合自己的方式来远程连接Linux服务器并调用命令行。
2年前 -
要实现Python远程连接Linux并调用命令行,可以使用paramiko库。paramiko是一个用于SSH2协议的Python库,它支持远程执行命令、SFTP传输文件等操作。
下面是一步步的操作流程:
1. 安装paramiko库
可以使用pip命令进行安装:
“`
pip install paramiko
“`2. 导入paramiko库和其他必要的库
“`python
import paramiko
import time
import sys
import getpass
“`3. 创建SSHClient对象
“`python
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
“`4. 输入远程服务器的连接信息
“`python
remote_server = input(“请输入远程服务器地址:”)
username = input(“请输入用户名:”)
password = getpass.getpass(“请输入密码:”)
“`5. 连接远程服务器
“`python
try:
ssh.connect(remote_server, username=username, password=password)
print(“连接成功!”)
except Exception as e:
print(“连接失败:”, e)
sys.exit()
“`6. 执行命令行操作
“`python
command = input(“请输入需要执行的命令:”)
try:
stdin, stdout, stderr = ssh.exec_command(command)
time.sleep(1) # 延时等待命令执行完成# 输出命令执行结果
print(stdout.read().decode())
except Exception as e:
print(“命令执行失败:”, e)
“`7. 关闭连接
“`python
ssh.close()
“`这样就完成了通过Python远程连接Linux并调用命令行的操作。你可以根据实际需求对代码进行更进一步的优化和扩展。
2年前