基于ssh协议传输文件例子

使用python模块:paramiko,optparse

__author__ = ‘Administrator‘import paramikoimport sysfrom optparse import OptionParserimport osdef exit_code(code):    os.system(‘pause‘)    sys.exit(code)def uploadfile(localfile,ip):    if not os.path.exists(localfile):        print ‘%s not exists!‘ % localfile        exit_code(10)    root_path = ‘/root/‘    remotefile = os.path.basename(localfile)    t = paramiko.Transport((ip,22))    t.connect(username=‘root‘,password=‘yunwei‘)    sftp = paramiko.SFTPClient.from_transport(t)    sftp.put(localfile,‘%s%s‘%(root_path,remotefile))    t.close()def main():    usage = "usage: %prog [options] arg"    parser = OptionParser(usage)    parser.add_option("-f", "--file", dest="file",                      help="file path for transport")    parser.add_option("-v", "--verbose",                      action="store_true", dest="verbose")    parser.add_option("-q", "--quiet",                      action="store_false", dest="verbose")    parser.add_option("-H", "--Host", dest=‘ip‘,help="the ip address of remote host")    (options,args) = parser.parse_args()    if options.verbose:        print "reading %s..." % options.file    if not options.file or not options.ip:        parser.error("incorrect number of argument!")        exit_code(10)    uploadfile(options.file,options.ip)

if __name__ == "__main__":    main()
时间: 2024-08-24 12:59:32

基于ssh协议传输文件例子的相关文章

用c++开发基于tcp协议的文件上传功能

用c++开发基于tcp协议的文件上传功能 2005我正在一家游戏公司做程序员,当时一直在看<Windows网络编程> 这本书,把里面提到的每种IO模型都试了一次,强烈推荐学习网络编程的同学阅读,比 APUE 讲的更深入 这是某个银行广告项目(p2p传输视频)的一部分 IO模型采用的阻塞模式,文件一打开就直接上传 用vc 2003编译,生成win32 dll 麻雀虽小五脏俱全,CSimpleSocket,CReadStream dll 输出一虚类 extern "C" __d

rsync利用ssh协议复制文件

不需要搭建rsync服务 实现两台服务器文件的传输: rsync -artvz -e  "ssh -p22 -lroot"  redis4.tar.gz  192.168.1.1:/data/backup/ rsync利用ssh协议复制文件

JAVA基础知识之网络编程——-基于UDP协议的通信例子

UDP是一种不可靠的协议,它在通信两端各建立一个socket,这两个socket不会建立持久的通信连接,只会单方面向对方发送数据,不检查发送结果. java中基于UDP协议的通信使用DatagramSocket类的receive和send方法即可,但消息需要通过一个特定的类封装(DatagramPacket) 下面是一个基于UDP协议的通信的例子, 服务器端, 1 package udp; 2 3 import java.io.IOException; 4 import java.net.Dat

基于FTP协议的文件传输工具(SOCKET、FTP方面、MFC方面)

一.本课程是怎么样的一门课程(全面介绍) 1.简介:FTP(File Transfer Protocol),是文件传输协议的简称.用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息.2.作用:FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算

python 基于tcp协议的文件传输3_解决粘包问题

server import jsonimport structimport socket# 接收sk = socket.socket()sk.bind(('127.0.0.1',9001))sk.listen() conn,_ =sk.accept()msg_len = conn.recv(4)dic_len = struct.unpack('i',msg_len)[0]msg = conn.recv(dic_len).decode('utf-8')msg = json.loads(msg) w

基于HTTP协议下载文件的实现

最近在开发文件下载的程序,该程序是基于HTTP开发的. 首先是了解了文件传输到客户端的大概格式,然后分析该格式,实现写入文件的功能. 自己构造的HTTP包如下: GET /*********.rar HTTP/1.1\r\n host:www.****.com\r\n connection:keep-alive\r\n\r\n 这个请求成功发出去了,而服务器的回应也是成功的,HTTP/1.1 200.................. 可惜的是,我的循环接收不争气,本来800KB左右的文件,只能

基于SSH协议clone GitHub远端仓库到本地-git

经常逛 GitHub 的可能都知道,在 clone 远端仓库的时候,会有两个选项,如下图: 首先我们来说明一下两种方式的区别. 使用 HTTPS url 克隆对初学者来说会比较方便,复制HTTPS url 然后到 git Bash 里面直接用 clone 命令克隆到本地就好了,但是每次 fetch 和 push 代码都需要输入账号和密码,这也是HTTPS 方式的麻烦之处.而使用 SSH url 克隆却需要在克隆之前先配置和添加好SSH key,因此,如果你想要使用SSH url克隆的话,你必须是

Linux开启TCP 22端口(基于SSH协议)

SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定:SSH 为建立在应用层和传输层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议. 第一步 #查看本机是否安装SSH软件包 [[email protected] ~]# rpm -qa | grep ssh openssh-server-6.6.1p1-12.el7_1.x86_64 openssh-clients-6.6.1p1-1

CentOS下搭建Git服务器(基于SSH协议)

1,安装Git所需依赖包 # yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel # yum install gcc perl-ExtUtils-MakeMaker 2,卸载CentOS自带的git # yum remove git 3,下载较新Git版本 # mkdir /usr/src/tools # cd /usr/src/tools # wget https://www.kernel.org/