python连接linux并且执行命令
-
要用Python连接Linux并执行命令,可以使用paramiko库。paramiko是一个用于SSHv2协议的Python实现,可以用于建立安全的SSH连接并执行远程命令。
下面是一个示例代码,展示如何使用paramiko连接Linux并执行命令:
“`python
import paramiko# 创建SSH客户端对象
ssh_client = paramiko.SSHClient()# 自动添加目标主机到已知主机列表
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接目标主机
ssh_client.connect(hostname=’主机名’, port=22, username=’用户名’, password=’密码’)# 执行命令
stdin, stdout, stderr = ssh_client.exec_command(‘要执行的命令’)# 输出命令执行结果
print(stdout.read().decode())# 关闭连接
ssh_client.close()
“`在上述代码中,你需要将`主机名`替换为要连接的远程Linux主机的IP地址或域名,`用户名`和`密码`替换为正确的凭据。
当你执行`ssh_client.exec_command()`方法时,它会返回一个元组,包含标准输入(stdin)、标准输出(stdout)和标准错误(stderr)。你可以通过调用`stdout.read().decode()`来获取命令的输出结果。
最后,通过调用`ssh_client.close()`方法来关闭SSH连接。
需要注意的是,使用该方法连接Linux主机时,需要确保目标主机已启用SSH服务,并且允许用于连接的用户名和密码登录。如果你使用的是密钥文件进行身份验证,可以使用`ssh_client.connect()`方法的`key_filename`参数来指定私钥文件的路径。
希望这个示例代码对你有帮助!
2年前 -
Python提供了多种方法来连接Linux系统并执行命令。下面是五种常用的方法:
1. Paramiko库:Paramiko是一个Python库,用于实现SSH(Secure Shell)协议,可以用于远程连接和执行命令。下面是一个简单的示例:
“`python
import paramiko# 创建SSH客户端
client = paramiko.SSHClient()# 添加主机密钥
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 连接到远程主机
client.connect(hostname=’服务器IP地址’, username=’用户名’, password=’密码’)# 执行命令
stdin, stdout, stderr = client.exec_command(‘要执行的命令’)# 获取命令输出
output = stdout.read().decode()# 关闭连接
client.close()
“`2. subprocess模块:subprocess是Python内置的用于创建子进程的模块,可以通过它来连接到Linux系统并执行命令。下面是一个示例:
“`python
import subprocess# 执行命令
output = subprocess.check_output(‘要执行的命令’, shell=True)# 打印命令输出
print(output.decode())
“`3. fabric库:fabric是一个基于Paramiko的高层库,用于简化远程执行命令的过程。下面是一个示例:
“`python
from fabric import Connection# 创建连接
c = Connection(host=’服务器IP地址’, user=’用户名’, connect_kwargs={‘password’: ‘密码’})# 执行命令
result = c.run(‘要执行的命令’)# 打印命令输出
print(result.stdout)
“`4. pxssh库:pxssh是一个基于Python的pexpect库的模块,用于SSH远程连接和执行命令。下面是一个示例:
“`python
from pxssh import pxssh# 创建SSH客户端
ssh = pxssh()# 登录远程主机
ssh.login(‘服务器IP地址’, ‘用户名’, ‘密码’)# 执行命令
ssh.sendline(‘要执行的命令’)
ssh.prompt()# 获取命令输出
output = ssh.before.decode()# 关闭连接
ssh.logout()
“`5. fabric2库:fabric2是fabric的升级版本,提供了更简洁、更直观的API。下面是一个示例:
“`python
from fabric import Connection# 创建连接
c = Connection(host=’服务器IP地址’, user=’用户名’, connect_kwargs={‘password’: ‘密码’})# 执行命令
result = c.run(‘要执行的命令’)# 打印命令输出
print(result.stdout)
“`以上是五种常用的方法来连接Linux系统并执行命令的示例。根据实际需求选择合适的方法即可。
2年前 -
要在Python中连接到Linux并执行命令,可以使用paramiko库。Paramiko是一个用于SSH2协议的Python实现,可以用于连接和控制远程服务器。
以下是实现此目标的步骤:
1. 安装paramiko库
使用pip命令在命令行中安装paramiko库:
“`
pip install paramiko
“`2. 导入必要的模块
在Python脚本中,使用以下代码导入paramiko模块:
“`python
import paramiko
“`3. 建立SSH连接
首先,需要使用paramiko.Transport()类来建立SSH连接:
“`python
ssh = paramiko.Transport(“hostname”, port) # 用实际的主机名和端口号替代
ssh.connect(username=”username”, password=”password”) # 用实际的用户名和密码替代
“`4. 创建SSH客户端
创建SSH客户端对象,以便进行远程命令的执行和管理:
“`python
ssh_client = ssh.open_channel(kind=”session”) # 打开一个新的会话通道
“`5. 执行命令
使用SSH客户端对象执行命令:
“`python
command = “your_command” # 替换为要执行的命令
stdin, stdout, stderr = ssh_client.exec_command(command)
“`6. 获取执行结果
可以使用stdout和stderr来获取命令的标准输出和标准错误输出:
“`python
output = stdout.read().decode()
error = stderr.read().decode()
“`7. 关闭SSH连接
执行完命令后,务必关闭SSH连接:
“`python
ssh_client.close()
ssh.close()
“`完整的示例代码如下:
“`python
import paramikodef execute_command(hostname, port, username, password, command):
ssh = paramiko.Transport(hostname, port)
ssh.connect(username=username, password=password)ssh_client = ssh.open_channel(kind=”session”)
stdin, stdout, stderr = ssh_client.exec_command(command)output = stdout.read().decode()
error = stderr.read().decode()ssh_client.close()
ssh.close()return output, error
# 测试示例
hostname = “your_hostname”
port = 22
username = “your_username”
password = “your_password”
command = “ls -l”output, error = execute_command(hostname, port, username, password, command)
if output:
print(“命令执行结果:”)
print(output)
else:
print(“错误信息:”)
print(error)
“`请注意,这只是一个基本示例,您可能需要根据实际需求进行修改和完善。
2年前