python操作服务器

news2024/12/25 13:55:59

一:使用 paramiko 进行SSH连接

首先确保已安装paramiko库:pip install paramiko
代码示例

在这里插入代码片import paramiko

hostname = 'hostname'
username = 'user'
password = 'passwd'

client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname, username=username, password=password)

stdin, stdout, stderr = client.exec_command('ls')
for line in stdout:
    print(line.strip('\n'))
    
client.close()

二:使用 smtplib 发送邮件到SMTP服务器

代码示例

import smtplib
from email.mime.text import MIMEText
from email.header import Header

# 邮件发送者和接收者
sender = 'from@example.com'
receivers = ['to@example.com']

# 邮件内容
message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
message['From'] = Header("Python教程", 'utf-8')
message['To'] =  Header("测试", 'utf-8')
message['Subject'] = Header('Python SMTP 邮件测试', 'utf-8')

try:
    smtpObj = smtplib.SMTP('localhost')
    smtpObj.sendmail(sender, receivers, message.as_string())    
    print("邮件发送成功")
except smtplib.SMTPException as e:
    print("Error: 无法发送邮件", e)

三:上传文件到服务器

import paramiko

def upload_file_to_server(hostname, port, username, password, local_file_path, remote_file_path):
    try:
        client = paramiko.SSHClient()
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        client.connect(hostname, port=port, username=username, password=password)

        ftp_client = client.open_sftp()
        ftp_client.put(local_file_path, remote_file_path)
        ftp_client.close()

        client.close()
        print("文件上传成功")
    except Exception as e:
        print(f"文件上传失败: {str(e)}")

# 示例
upload_file_to_server('hostname', 22, 'username', 'password', '/path/to/local/file', '/path/to/remote/file')

四:从服务器下载文件

代码示例

import paramiko

def download_file_from_server(hostname, port, username, password, remote_file_path, local_file_path):
    try:
        client = paramiko.SSHClient()
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        client.connect(hostname, port=port, username=username, password=password)

        ftp_client = client.open_sftp()
        ftp_client.get(remote_file_path, local_file_path)
        ftp_client.close()

        client.close()
        print("文件下载成功")
    except Exception as e:
        print(f"文件下载失败: {str(e)}")

# 示例
download_file_from_server('hostname', 22, 'username', 'password', '/path/to/remote/file', '/path/to/local/file')

五:在服务器上执行命令

import paramiko

def execute_command_on_server(hostname, port, username, password, command):
    try:
        client = paramiko.SSHClient()
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        client.connect(hostname, port=port, username=username, password=password)

        stdin, stdout, stderr = client.exec_command(command)
        print("命令输出:")
        for line in stdout:
            print(line.strip())

        client.close()
    except Exception as e:
        print(f"执行命令失败: {str(e)}")

# 示例
execute_command_on_server('hostname', 22, 'username', 'password', 'ls')

往服务器传文件时报错:

CryptographyDeprecationWarning: Blowfish has been deprecated and will be removed in a future release
  "class": algorithms.Blowfish,

解决方案:
报错文件里面 以下的代码注释掉即可
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1865647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

突破内存限制:Jamba模型的高效文本处理能力

在当今信息爆炸的时代,处理和理解海量文本数据的需求日益增长。自然语言处理(NLP)领域的研究者们一直在探索如何构建更高效、更强大且更灵活的语言模型来应对这一挑战。然而,现有的大型语言模型,尤其是基于Transformer…

物联网“此用户无权修改接入点名称设置”解决方案

根本原因apns-conf.xml里面没有 符合 物理网卡 的配置 可以先加一个APN试一下,看看默认的MCC和MNC是什么 然后在”命令行“查询一下 adb shell sqlite3 /data/user_de/0/com.android.providers.telephony/databases/telephony.db "select * from carriers wh…

基于Java技术的在线学习平台系统

开头语:你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java技术,基于SpringBoot框架 工具:Eclipse、Navicat、M…

Arduino - 按钮 - 长按短按

Arduino - Button - Long Press Short Press Arduino - 按钮 - 长按短按 Arduino - Button - Long Press Short Press We will learn: 我们将学习: How to detect the button’s short press 如何检测按钮的短按How to detect the button’s long press 如何检测…

Redis-集群-环境搭建

文章目录 1、清空主从复制和哨兵模式留下的一些文件1.1、删除以rdb后缀名的文件1.2、删除主从复制的配置文件1.3、删除哨兵模式的配置文件 2、appendonly修改回no3、开启daemonize yes4、protect-mode no5、注释掉bind6、制作六个实例的配置文件6.1、制作配置文件redis6379.con…

boss直聘招聘数据可视化分析

boss直聘招聘数据可视化分析 一、数据预处理二、数据可视化三、完整代码一、数据预处理 在 上一篇博客中,笔者已经详细介绍了使用selenium爬取南昌市web前端工程师的招聘岗位数据,数据格式如下: 这里主要对薪水列进行处理,为方便处理,将日薪和周薪的数据删除,将带有13薪…

迁移学习——CycleGAN

CycleGAN 1.导入需要的包2.数据加载(1)to_img 函数(2)数据加载(3)图像转换 3.随机读取图像进行预处理(1)函数参数(2)数据路径(3)读取文…

数据结构——带头双向循环链表(c语言实现)

目录 1.单链表和双向链表对比 2.双向链表实现 2.1 创建新节点 2.2 链表初始化 2.3 尾插 2.4 头插 2.5 尾删 2.6 头删 2.7 查找 2.8 指定位置后插入数据 2.9 删除指定节点 2.10 销毁链表 2.11 打印链表 前言: 我们在前几期详细地讲解了不带头单…

EthernetIP IO从站设备数据 转opc ua项目案例

1 案例说明 设置网关采集EthernetIP IO设备数据把采集的数据转成opc ua协议转发给其他系统。 2 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一种协议转换成另外一种协议。网关可以采集西门子,欧姆龙,三菱,AB PLC&#xff0…

day41--Redis(三)高级篇之最佳实践

Redis高级篇之最佳实践 今日内容 Redis键值设计批处理优化服务端优化集群最佳实践 1、Redis键值设计 1.1、优雅的key结构 Redis的Key虽然可以自定义,但最好遵循下面的几个最佳实践约定: 遵循基本格式:[业务名称]:[数据名]:[id]长度不超过…

STM32音频应用开发:DMA与定时器的高效协作

摘要: 本文章将深入浅出地介绍如何使用STM32单片机实现音频播放功能。文章将从音频基础知识入手,逐步讲解音频解码、DAC转换、音频放大等关键环节,并结合STM32 HAL库给出具体的代码实现和电路设计方案。最后,我们将通过一个实例演示如何播放W…

FPGA SATA高速存储设计

今天来讲一篇如何在fpga上实现sata ip,然后利用sata ip实现读写sata 盘的目的,如果需要再速度和容量上增加,那么仅仅需要增加sata ip个数就能够实现增加sata盘,如果仅仅实现data的读写整体来说sata ip设计比较简单,下面…

大模型产品的“命名经济学”:名字越简单,产品越火爆?

文 | 智能相对论 作者 | 陈泊丞 古人云:赐子千金,不如教子一艺;教子一艺,不如赐子一名。 命名之妙,玄之又玄。 早两年,大模型爆火,本土厂商在大模型产品命名上可谓下足了功夫,引…

小公司选择高水平LabVIEW团队外包

小公司选择高水平LabVIEW团队外包的优点可以从多个方面进行详细说明,包括专业技能、成本效益、时间效率、技术支持、风险管理和灵活性等。以下是具体的优点分析: 1. 专业技能和经验 优点: 高水平专业技能:高水平的LabVIEW团队通…

力扣316.去除重复字母

力扣316.去除重复字母 从左到右遍历每个字母 若当前字母比栈顶字母小 并且右边仍然后栈顶字母出现弹出栈顶字母 最后加入当前字母 class Solution {public:string removeDuplicateLetters(string s) {//记录每个字母出现次数;当前字符串中字母是否出现vector<int> lef…

单目标应用:基于吸血水蛭优化器(Blood-Sucking Leech Optimizer,BSLO)的微电网优化(MATLAB代码)

一、微电网模型介绍 微电网多目标优化调度模型简介_vmgpqv-CSDN博客 参考文献&#xff1a; [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、吸血水蛭优化器求解微电网 2.1算法简介 吸血水蛭优化器&#xff08;B…

AI技术与艺术的融合:开创性的用户界面与产品体验

引言 近年来&#xff0c;人工智能&#xff08;AI&#xff09;的飞速发展改变了我们的生活和工作方式。AI技术不仅在算力和模型上取得了重大进步&#xff0c;更在用户界面和产品体验方面迎来了突破。近日&#xff0c;科技博客 Stratechery 的文章以及硅谷投资基金 AI Grant 的两…

platform 设备驱动实验

platform 设备驱动实验 Linux 驱动的分离与分层 代码的重用性非常重要&#xff0c;否则的话就会在 Linux 内核中存在大量无意义的重复代码。尤其是驱动程序&#xff0c;因为驱动程序占用了 Linux内核代码量的大头&#xff0c;如果不对驱动程序加以管理&#xff0c;任由重复的…

注意!短视频的致命误区,云微客教你避开!

为什么你做短视频就是干不过同行&#xff1f;因为你总想着拍剧情、段子这些娱乐视频&#xff0c;还想着当网红做IP人设&#xff0c;但是这些内容跟你的盈利没有半毛钱关系&#xff0c;况且难度大、见效慢&#xff0c;还不是精准客户。 以上这些就代表你走进了短视频的误区&…

Linux常用环境变量PATH

Linux常用环境变量 一、常用的默认的shell环境变量二、环境变量 PATH三、持久化修改环境变量四、常用的环境变量 一、常用的默认的shell环境变量 1、当我们在shell命令行属于一个命令&#xff0c;shell解释器去解释这个命令的时候&#xff0c;需要先找到这个命令. 找到命令有两…