Python远程连接Linux执行操作

一、任务要求

要使用Python编写代码来远程给Linux主机上传一个文件,可以使用paramiko库,这是一个实现了SSHv2协议的Python库,它支持SSH连接(包括客户端和服务端),并且提供SFTP(SSH File Transfer Protocol)功能来上传和下载文件。

实现python编写代码远程登录linux主机,执行一条命令ls
实现python编写代码远程给linux主机上传一个文件

二、相关代码

连接虚拟机并执行ls操作:

import paramiko
# 设置SSH连接信息
hostname = '192.168.*.*'
port = 22
username = 'zhou'
password = '*'  # 或者使用私钥进行身份验证
# 创建SSH客户端对象
ssh = paramiko.SSHClient()
# 自动添加主机名和主机密钥到本地HostKeys对象,并保存,只在第一次连接时有用
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到SSH服务器
ssh.connect(hostname=hostname, port=port, username=username, password=password)
# 执行ls命令
stdin, stdout, stderr = ssh.exec_command('ls -l')
# 打印输出
print(stdout.read().decode())
print(stderr.read().decode())
# 关闭连接
ssh.close()

连接虚拟机并给主机上传一个文件:

(确保目录在远程Linux主机上存在,并且您有权限在该目录下写入文件)

import paramiko
def upload_file(local_file, remote_file, port, hostname, username, password):
    # 创建SSH客户端
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 自动添加主机名和主机密钥到本地HostKeys对象,并保存
    # 连接到SSH服务器
    ssh.connect(hostname=hostname, port=port, username=username, password=password)
    # 创建一个SFTP客户端对象
    sftp = ssh.open_sftp()
    # 上传文件
    sftp.put(local_file, remote_file)
    # 关闭SFTP和SSH连接
    sftp.close()
    ssh.close()

# 使用示例
if __name__ == "__main__":
    # Linux 主机信息
    hostname = '192.168.*.*'  # Linux主机IP地址
    username = 'zhou'  # SSH用户名
    password = '******'  # SSH密码
    port = 22
    # 上传文件
    local_file = r"D:\Desktop\蛋糕系统\代码\1.txt" # 本地文件路径
    remote_file = "/home/zhou/ccc/1.txt" # 远程Linux主机上的目标路径
    upload_file(local_file, remote_file, port, hostname, username, password)

三、执行结果

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值