python连接linux主机并执行命令
-
可以使用paramiko模块来连接到Linux主机并执行命令。下面是一个示例代码:
“`python
import paramiko# 连接linux主机
def connect(host, username, password):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=username, password=password)
return ssh# 执行命令
def execute_command(ssh, command):
stdin, stdout, stderr = ssh.exec_command(command)
result = stdout.read().decode(‘utf-8’)
ssh.close()
return result# 示例代码
if __name__ == “__main__”:
host = “your_linux_host” # Linux主机IP地址或主机名
username = “your_username” # 登录Linux主机的用户名
password = “your_password” # 登录Linux主机的密码ssh = connect(host, username, password)
result = execute_command(ssh, “ls -l”)
print(result)
“`
请将”your_linux_host”、”your_username”和”your_password”替换为实际的Linux主机信息。在示例代码中,我们首先调用`connect()`函数连接到Linux主机,然后调用`execute_command()`函数执行指定的命令,并返回执行结果。最后,我们将结果打印出来。以上是一个简单的示例,你可以根据自己的需求进行修改和扩展。同时,你也可以使用其他的Python库,比如fabric或paramiko的更高级封装库来达到相同的目的。
2年前 -
Python提供了多种方法来连接和执行命令在Linux主机上。下面是使用Python连接Linux主机并执行命令的一种常见方法:
1. 使用paramiko库进行SSH连接:Paramiko是一个Python的SSH (Secure Shell)库,它可以用来连接远程服务器并执行命令。
首先,需要使用pip或者conda安装paramiko库:
“`
pip install paramiko
“`然后,在Python脚本中导入paramiko库,并使用SSHClient类创建一个SSH客户端对象:
“`python
import paramiko# 创建SSH客户端对象
client = paramiko.SSHClient()
“`2. 设置SSH连接参数:连接Linux主机之前,需要设置SSH连接的一些参数,例如主机名、用户名、密码等:
“`python
# 设置SSH连接参数
hostname = “your_host_name”
username = “your_username”
password = “your_password”# 允许连接到没有本地host key记录的主机
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
“`3. 连接到Linux主机:使用client.connect()方法连接到Linux主机,传入主机名、用户名和密码参数:
“`python
# 连接到Linux主机
client.connect(hostname, username=username, password=password)
“`4. 执行命令:连接成功后,可以使用client.exec_command()方法来执行命令,传入要执行的命令作为参数:
“`python
# 执行命令
stdin, stdout, stderr = client.exec_command(“your_command”)
“`5. 获取命令输出:执行命令后,可以使用stdout.readlines()方法获取命令输出的结果:
“`python
# 获取命令输出
output = stdout.readlines()# 打印输出结果
for line in output:
print(line.strip())
“`
这是使用Python连接Linux主机并执行命令的一个简单示例。根据实际需求,还可以进一步扩展脚本来处理不同的情况,例如处理命令执行的错误和异常等。2年前 -
一、连接linux主机
要在Python中连接到Linux主机并执行命令,可以使用paramiko库实现SSH客户端功能。paramiko是一个用于SSHv2协议的Python实现,可以用于连接远程主机并执行命令。
首先,在Python环境中安装paramiko库:
“`python
pip install paramiko
“`然后可以按照以下步骤连接到linux主机:
1. 导入paramiko库:
“`python
import paramiko
“`2. 创建SSHClient对象:
“`python
client = paramiko.SSHClient()
“`3. 设置SSH策略:
“`python
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
“`这将自动添加远程主机的SSH密钥。
4. 连接到远程主机:
“`python
client.connect(hostname, port, username, password)
“`其中,`hostname`是远程主机的IP地址或主机名,`port`是SSH端口(默认为22),`username`是登录远程主机的用户名,`password`是密码。
5. 执行命令:
“`python
stdin, stdout, stderr = client.exec_command(‘command’)
“`这里`command`是要执行的命令。
二、操作流程
下面是一个完整的示例代码,演示了如何连接到linux主机并执行命令:
“`python
import paramikodef execute_command(hostname, port, username, password, command):
# 创建SSHClient对象
client = paramiko.SSHClient()
# 设置SSH策略
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程主机
client.connect(hostname, port, username, password)
# 执行命令
stdin, stdout, stderr = client.exec_command(command)
# 获取命令执行结果
result = stdout.read().decode()
# 关闭连接
client.close()
# 返回命令执行结果
return result# 连接到远程主机并执行命令
result = execute_command(‘192.168.1.100’, 22, ‘username’, ‘password’, ‘ls’)
# 打印命令执行结果
print(result)
“`这个示例中,`execute_command`函数接受主机名、端口、用户名、密码和命令作为参数,并返回命令执行结果。在示例中,我们调用`execute_command`函数来连接到远程主机`192.168.1.100`,使用用户名`username`和密码`password`,然后执行`ls`命令,并打印命令执行结果。
要执行多个命令,只需在每个命令后面添加换行符,例如:
“`python
commands = ‘ls\npwd\nwhoami\n’
result = execute_command(‘192.168.1.100’, 22, ‘username’, ‘password’, commands)
“`这样就可以执行多个命令并获取结果了。
通过以上步骤,我们可以轻松地在Python中连接到linux主机并执行命令。
2年前