title: I01 物理隔离条件下Windows与Linux服务器的文件传输脚本author: Adolph Leecategories: 进阶tags:

paramiko打怪升级mathjax: false

背景

在工作环境中,为了网络与数据传输的安全性、保密性。服务器往往与办公室网络环境存在物理隔离条件,一般是通过专线进行文件传输与程序部署。且并不是每一台服务器都可以通过专线直接连通,(例如仅开放堡垒机端口或使用虚机的情况)。因此每一次上传或下载文件都需要经过sftp…sftp…一系列繁琐的操作,让文件在不同的机器间流转。为了简化这一步骤,在保证网络安全的情况下,帮助我能够方便的上传下载文件,就抽空编写了一个小脚本,简化文件传输的步骤。下面就简单说一下实现原理。

语言与框架

shellPythonPython paramiko库网络拓扑图

通常我需要将文件从PC上传至虚机或从虚机下载到PC

利用Python在window操作系统操作Linux

这里使用了Python的paramiko库需要注意的是paramiko不支持通过windows连接到linux以后再次连接到另一台linux主机。因此paramiko仅仅解决了我们的第一步从PC到堡垒机的问题。而后面的问题,则需要通过shell脚本去解决,至于选择使用shell而不是python的原因就是,我们不需要到每一台机器上去部署对应的python环境(如果使用python2则不受这个限制)关键点共有三个通过windows执行linux命令。windows及linux之间文件的上传及下载利用shell脚本ssh连接另一台主机之后完成比较复杂的操作在下面两个示例中,我们都是通过显式的连接方式去连接操作系统,而paramiko是支持通过密钥的方式进行连接。在实际应用中我采用的即为通过密钥连接,详细的使用方法,可以参阅官方文档。

通过windows执行linux命令

import paramiko as pmkhost = { "host":"***.***.***.***", "port":"****", "user":"****", "passwd":"********"}client = pmk.SSHClient()client.set_missing_host_key_policy(pmk.AutoAddPolicy())client.connect(hostname=host['host'], port=host['port'], username=host['user'], password=host['passwd'])cmd = 'sh /***/*****.sh'# 需要执行的语句stdin, stdout, stderr = client.exec_command(cmd) # 执行client.close()

通过windows上传或下载文件到linux

import paramiko as pmkhost = { "host":"***.***.***.***", "port":"****", "user":"****", "passwd":"********"}trans = pmk.Transport(sock=(host['host'], int(host['port'])))trans.connect(username=host['user'], password=host['passwd'])sftp = pmk.SFTPClient.from_transport(trans)sftp.put('shell/***.sh','/***/****/***.sh')sftp.close()

利用shell进行远程连接(适用复杂操作)

#!/bin/sh\nssh ***.***.***.*** -p**** > /dev/null 2>&1 << eeooffsh /***/****.shsh /***/****.shsh /***/****.shsh /***/****.shexiteeooff

利用shell进行远程连接(适用简单操作)

ssh ***.***.***.*** -p**** "sh /***/***/***.sh && df -Th"

总而言之,通过强大的python,经过小半天的折腾之后,也是成功完成了一键从本地PC到虚机的文件传输任务。并且支持一键初始化以及主机的可配置化。用起来感觉还不错,也算是解放了双手。有相同困扰的朋友可以试一试。

转载请注明出处

举报/反馈

windows与Linux实时传输数据,I01 物理隔离条件下Windows与Linux服务器的文件传输脚本...相关推荐

  1. mac服务器文件传输,scp实现mac与linux服务器之间文件传输

    1.mac上传文件到linux服务器 scp 文件名 用户名@服务器ip:目标路径 如:scp -P端口号 /Users/test/testFile test@xxx.xxx.xxx.xxx:/tes ...

  2. linux间服务器间文件传输,Linux命令scp服务器间文件传输教程

    scp就是secure copy,是用来进行远程文件拷贝的.数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 .那么你知道Linux命令scp服务器间文件传输教程么?接下来是 ...

  3. 在Windows服务器的命令窗口中用ftp方式与使用了File Zilla Sever软件共享了文件的另一个Windows服务器进行文件传输

    知识点: 1. File Zilla Sever软件 2. ftp 3. Windows窗口常用命令 步骤: 1.在在对方window服务器中使用File Zilla Sever软件共享一个文件 注意 ...

  4. linux下通过串口ftp,eftp简单文件传输工具支持串口、网络、Windows、Linux、单片机平台-博客...

    在日常工作中,经会常遇到Windows PC机和Windows PC机之间.Windows PC机与Linux PC机之间.Windows PC机与嵌入式Linux板卡之间.Linux PC机与Lin ...

  5. 自动修改linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件的脚本

    此脚本修改linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件中的网卡一.网卡二的IP地址(IPADDR).子网掩码(NETMASK)信息 #!/bi ...

  6. linux跳转乌班图服务器,Ubuntu18.04连接Linux服务器与文件传输

    1.前言 最近新安装了Ubuntu18.04,需要连接Linux的服务器.之前一直使用的是Win10操作系统,有专门的连接服务器的软件,可以很方便的连接服务器和传输文件.现在,在Ubuntu上完全不知 ...

  7. scp实现mac与linux服务器之间文件传输

    1.mac上传文件到linux服务器 scp 文件名 用户名@服务器ip:目标路径如:scp -P端口号 /Users/test/testFile test@xxx.xxx.xxx.xxx:/test ...

  8. linux服务器之间文件传输scp

    linux scp Linux scp命令用于Linux之间复制文件和目录. scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令. 语法: sc ...

  9. linux下rsync+inotify实现服务器之间文件实时同步

    先介绍一下rsync与inotify. 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高.备份迅速.支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例 ...

最新文章

  1. 源码推荐:基于uni-app前端框架,开源版本还开源免费商用
  2. 什么是Servlet?
  3. mysql连接查询作业答案_MySQL连表查询练习题
  4. 实战:Nginx + FastCGI 程序(C/C++) 搭建高性能web server
  5. php excel批量导入,PHP将excel文件中的数据批量导入到数据库中
  6. Win2003 + SQL 2005 做数据库集群总结(虚拟机)
  7. 开源RefreshListView下拉刷新效果
  8. Hadoop Mapreduce 调优
  9. 为什么我切换到React Native来创建超级简单的底页
  10. 【机器学习】监督学习--(分类)决策树②
  11. java泛型,“参数化参数”的基本理解
  12. linux MySQL5.7 rpm安装
  13. 【Baby Maniacs】mmd动作+镜头下载
  14. 前端性能优化(四)01-页面性能优化之优化原则——尽量减少HTTP请求 使用内容传送网络CDN 避免空src或空href值 启用gzip压缩 CSS放顶部,JS放底部 减少DNS查找
  15. 光照度和光强度的区别
  16. 慕课网-安卓攻城狮视频学习及练习(一)
  17. TGP漏洞:lol无法正常登录问题
  18. 狂神JUC——CAS
  19. mysql 命令行修改密码
  20. folx pro 激活码使用安装下载教程(mac优秀下载工具)

热门文章

  1. 美化终端必备:ubuntu 18.04 x64安装zsh并配置oh-my-zsh(Mac适用)
  2. spring mvc框架、mvc框架模式
  3. Luogu 3642 [APIO 2016] 烟火表演
  4. 【纪中受难记】——Day21:调整心态
  5. asp读取QQwry.dat
  6. python将图片转动漫_如何将照片动漫化
  7. window下创建mysql 库
  8. ES6 语法糖(一)
  9. 什么是卫片?什么是卫片执法?一文了解卫片执法基础知识
  10. 有道文档翻译导出文档_翻译文档的5个技巧