当前位置: 首页 > article >正文

DeepSeek 为我赋能 Python 编程能力

背景

  随着业务数据的不断增涨,导致存储空间不足及查询效率的问题不断出现,于是做了个生产数据裁剪的项目并通过shell 脚本实现了每月自动化裁剪。目前已经正常运行近3年左右。最近因裁剪的表不断增加,导致原来的shell 脚本无法满足近期的自动化任务。因此计划用Python语言重写脚本,同时对一些步骤进行优化,正好锻炼一下自己Python的编程能力。

  裁剪项目逻辑处理流程分4步:

  • 1、Oracle Expdp 命令将裁剪分区导出;
  • 2、通过scp、rsync命令将dmp文件传输到历史库服务器;
  • 3、Oracle Impdp 命令将裁剪数据导入历史库;
  • 4、使用truncate partition 将裁剪分区数据进行清除;

  因自己的Python代码能力一般,在处理传输expdp 导出的dmp文件时,技术卡壳了。

技术卡壳:

  规划通过A服务器作为管理端,对B服务器的生产数据库进行Expdp ,然后将B服务器产生的DMP文件传输到C服务器中的历史库中。
  目前的技术卡点:如何从A服务器命令调用B服务器往C服务器传输dmp文件,因为需要输入用户名和密码。由于自己的Pyhon代码能力还是很欠缺,只能翻网页找解决方案,千篇一律,各种复制粘贴。最近deepseek 比较火,尝试问一下,看看能不能解决自己的问题。

需求

  “帮我下一段python代码,实现 从A服务器,连接到B服务器,然后把B服务器的文件直接传输到C服务器,仅传输一次,不通过A服务器中转,考虑安全性不使用免密,考虑大文件上10GB左右”

Deepseek

提出需求

image.png

分析过程结合很全面,确实前面刚提过使用expect 命令

image.png

代码方案:

image.png

代码如下,直观评价代码比我写的规范,然后结合上面的分析过程很容易理解代码

import paramiko
import logging
import os
from tempfile import mkstemp

# 配置日志
logging.basicConfig()
logger = logging.getLogger("SecureTransfer")
logger.setLevel(logging.INFO)

def secure_transfer(b_host, b_user, b_password,
                   c_host, c_user, c_password,
                   source_path, dest_path,
                   port=22):
    """
    安全传输流程:
    1. A服务器连接B服务器(使用密码认证)
    2. 在B服务器创建临时安全目录
    3. 通过加密通道传输C服务器密码到B服务器
    4. 在B服务器使用sshpass+rsync传输文件
    5. 清理B服务器上的临时凭证
    """
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    sftp = None

    try:
        # 连接B服务器
        logger.info(f"🔑 Connecting to B server {
     b_host}...")
        ssh.connect

http://www.kler.cn/a/550450.html

相关文章:

  • Chrome多开终极形态解锁!「窗口管理工具+IP隔离插件
  • rv1103b编译opencv
  • 跨平台数字内容整合策略:提升全域用户体验的关键路径
  • 【在时光的棋局中修行——论股市投资的诗意哲学】
  • VSCode 接入DeepSeek V3大模型,附使用说明
  • Linux安全与密钥登录指南
  • 下载安装运行测试开源vision-language-action(VLA)模型OpenVLA
  • 计算机网络之路由算法的详细层次算法
  • C语言进阶习题【2】(4结构体进阶)——通讯录的实现2
  • hive全量迁移脚本
  • 计算光学基础
  • 【设计模式】【结构型模式】桥接模式(Bridge)
  • VueRouter 实例
  • 基于Flask的广西高校舆情分析系统的设计与实现
  • 深入理解 Shell 脚本执行方式:`source`、`./xx.sh`、`bash xx.sh` 和 `sh xx.sh`
  • leetcode88.合并两个有序数组
  • CMake configure_file
  • 数字水印嵌入及提取系统——基于小波变换GUI
  • 基于springcloud微服务架构的巡游出租管理平台
  • JDK、Nginx、Kafka、Zookeeper安装部署