python连接linux后执行命令
-
要在Python中连接到Linux并执行命令,可以使用paramiko模块。paramiko是一个纯Python的SSHv2协议的实现,它可以在Python程序中提供SSH客户端和服务器功能。
下面是一个示例代码,演示如何连接到Linux并执行命令:
“`python
import paramiko# 创建SSH客户端
ssh = paramiko.SSHClient()# 添加主机到已知主机列表
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接到Linux服务器
ssh.connect(‘服务器IP地址’, username=’用户名’, password=’密码’)# 执行命令
stdin, stdout, stderr = ssh.exec_command(‘要执行的命令’)# 获取命令执行结果
output = stdout.read().decode()
error = stderr.read().decode()if output:
print(“命令执行结果:”)
print(output)if error:
print(“命令执行错误:”)
print(error)# 关闭SSH连接
ssh.close()
“`请替换代码中的服务器IP地址、用户名和密码,以确保能够成功连接。要执行的命令可以替换为您需要执行的实际命令。执行结果将以字符串形式存储在output和error变量中,可以根据需要进行处理。
这是一个基本的示例,您还可以根据实际需求进行定制和扩展。希望对您有帮助!
2年前 -
Python可以使用Paramiko库来连接到Linux系统并执行命令。Paramiko是一个Python库,用于实现SSHv2协议,可以在远程服务器上执行命令、传输文件和管理网络设备。
下面是使用Paramiko库连接到Linux系统并执行命令的步骤:
1. 安装Paramiko库:在Python环境下执行以下命令安装Paramiko库。
“`shell
pip install paramiko
“`2. 导入Paramiko库:在Python代码中导入Paramiko库,以便使用Paramiko的功能。
“`python
import paramiko
“`3. 创建SSH客户端:使用paramiko.SSHClient()函数创建SSH客户端对象。
“`python
ssh_client = paramiko.SSHClient()
“`4. 添加主机密钥:如果是第一次连接到该主机,需要添加主机密钥。可以通过将`missing_host_key_policy`属性设置为`paramiko.AutoAddPolicy()`来自动添加新主机密钥。
“`python
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
“`5. 连接到远程主机:使用`connect()`方法连接到远程主机。需要指定远程主机的IP地址、用户名和密码。
“`python
ssh_client.connect(hostname=”xxx.xxx.xxx.xxx”, username=”username”, password=”password”)
“`6. 执行命令:使用`exec_command()`方法在远程主机上执行命令。该方法返回一个包含执行结果的元组,包括标准输出、标准错误和退出状态。
“`python
stdin, stdout, stderr = ssh_client.exec_command(“command”)
“`7. 处理执行结果:根据实际需求处理执行结果,可以使用`stdout.readlines()`方法获取命令的标准输出内容。
“`python
output = stdout.readlines()
for line in output:
print(line.strip())
“`8. 关闭SSH连接:完成操作后,使用`close()`方法关闭SSH连接。
“`python
ssh_client.close()
“`使用上述步骤,可以编写Python代码连接到Linux系统并执行命令。需要注意的是,连接远程主机时需要确保远程主机的SSH服务已启动,并且允许使用密码进行连接。另外,还可以使用密钥(公钥/私钥)进行连接,以增加安全性。
2年前 -
要在Python中连接到远程Linux服务器并执行命令,可以使用paramiko库来实现。paramiko是一种用于SSH2协议的Python实现,可以用于在Python中远程连接到Linux服务器并执行各种操作。
下面是一个示例代码,演示了如何使用paramiko连接到远程Linux服务器并执行命令:
“`python
import paramikodef execute_command(hostname, port, username, password, command):
# 创建SSH客户端对象
client = paramiko.SSHClient()
# 自动添加远程主机的SSH密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程主机
client.connect(hostname=hostname, port=port, username=username, password=password)try:
# 执行命令
stdin, stdout, stderr = client.exec_command(command)
# 获取命令执行结果
output = stdout.read().decode(‘utf-8’)
# 打印输出结果
print(output)
except Exception as e:
# 打印错误信息
print(“Error:”, e)
finally:
# 关闭SSH连接
client.close()# 远程Linux服务器的连接信息
hostname = ‘your_remote_server’
port = 22 # 默认SSH端口为22
username = ‘your_username’
password = ‘your_password’
command = ‘your_command_to_execute’# 执行命令
execute_command(hostname, port, username, password, command)
“`以上代码中,首先我们导入了paramiko库。然后,我们定义了一个函数`execute_command`,接受远程Linux服务器的连接信息和要执行的命令作为参数。在函数内部,我们使用paramiko库创建了一个SSH客户端对象,并使用`connect`方法连接到远程主机。然后,我们使用`exec_command`方法执行命令,并使用`stdout`获取命令输出结果。最后,我们打印输出结果,并在`finally`块中关闭SSH连接。
要使用以上代码,你需要替换`your_remote_server`、`your_username`、`your_password`和`your_command_to_execute`为实际的远程Linux服务器连接信息和要执行的命令。
2年前