导航:首页 > 编程语言 > python下载sftp

python下载sftp

发布时间:2023-04-15 20:08:54

python 如何获取SFTP上的文件创建时间,时间格式:%Y-%m-%d %H:%M:%S

python是当下十分火爆的编程语言,尤其在人工智能应用方面。如果有心从事编程方向的工作,最好到专业机构深入学习、多实践,更贴近市场,这样更有利于将来的发展。python是当下十分火爆的编程语言,尤其在人工智能应用方面。如果有心从事编程方向的工作,最好到专业机构深入学习、多实践,更贴近市场,这样更有利于将来的发展。python是当下十分火爆的编程语言,尤其在人工智能应用方面。如果有心从事编程方向的工作,最好到专业机构深入学习、多实践,更贴近市场,这样更有利于将来的发展。

㈡ python的paramiko模块 支持连接交换机吗

paramiko使用

paramiko模块是基于python实现了SSH2远程安全连接,支持认证和密钥方式,可以实现远程连接、命令执行、文件传输、中间SSH代理功能

安装

pip install paramiko
或 easy_install paramiko
paramiko依赖第三方的Crypto,Ecdsa和pyhton-devel,所以需要安装

paramiko核心组件

SSHClient类

SSHClient类是SSH服务会话的高级表示,该类实现了传输、通道、以及SFTP的校验、建立的方法

㈢ 如何通过SFTP在python连接后列出目录中的所有文件夹和文件

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。

像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议。

㈣ python,求助,服务器走的sftp协议,怎么获取上面的文件

用paramiko模块

importparamiko

defsftp_get(file):
CONST_HOST="1.1.1.1"
CONST_USERNAME="root"
CONST_PWD="password"
让宏CONST_PORT=22
try:
t=paramiko.Transport((CONST_HOST,CONST_PORT))
t.connect(username=CONST_USERNAME,password=CONST_PWD)
sftp=paramiko.SFTPClient.from_transport(t)
兆腊des=os.getcwd()+'\test.txt'
#file为你要下载的文件,des为你保存该文件的路径
sftp.get(file,des)
t.close()
族滑滑print'download%sto%sok'%(file,des)
returnTrue
exceptException,e:
raisee

㈤ 如何快速安装OSSFTP工具阿里云OSS FTP安装图文详细教程

OSSFTP工具是一个特殊FTPserver,它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。

注意生产环境请使用osssdk,OSSFTP工具主要面向个人用户使用。

主要特性

跨平台:

无论是Windows、linux还是Mac,无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。

免安装:

解压后可直接运行。

免设置:

无需设置即可运行。

透明化:

FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。

主要功能

支持文件和文件夹的上传、下载、删除等操作。

通过Multipart方式,分片上传大文件。

支持大部分FTP指令,可以满足日常FTP的使用需求。

注意

1.目前在1.0版本中,考虑到安装部署的简便,OSSFTP工具没有支持TLS加密。由于FTP协议是明文传输的,

为了防止您的密码泄漏,建议将FTPserver和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。

2.不支持rename和move操作。

3.安装包解压后的路径不要含有中文。

4.FTPserver的管理控制页面在低版本的IE中可能打不开。

5.FTPserver支持的Python版本:Python2.6,Python2.7。

下载

由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。

由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python,只包含了相关依赖库。

运行

首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。

Windows:双击运行start.vbs即可

Linux:打开终端,运行 i.$bashstart.sh

Mac:双击start.command,或者在终端运行 i.$bashstart.command

上述步骤会启动一个FTPserver,默认监听在127.0.0.1的2048端口。同时,为了方便您对FTPserver的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,

如下所示:

大部分情况不要任何配置,就可以运行一个FTPserver了,如果想对FTPserver进行配置,请注意需要重启才能生效。

连接到FTPserver推荐使用FileZilla客户端去连接FTPserver。

下载安装后,按如下方式连接即可:

主机:127.0.0.1

登录类型:正常

用户:access_key_id/bucket_name

密码:access_key_secret

注意:

用户中,/是必须的,如用户

tSxyiUM3NKswPMEp/test-hz-jh-002。

-access_key_id和access_key_secret的获取

高级使用

通过控制页面管理FTPserver

修改监听地址

如果需要通过网络来访问FTPserver,那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。

修改监听端口

修改FTPserver监听的端口,建议端口大于1024,因为监听1024以下的端口时需要管理员权限.

修改日志等级

设置FTPserver的日志级别。FTPserver的日志会输出到data/ossftp/目录下,可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO,打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。

设置Bucketendpoints

FTPserver默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTPserver会优先尝试内网访问oss。如果您设置了bucketendpoints,如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com,那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。

注意

所有修改都需要重启才能生效。

上述的所有修改其实都是修改的ftp根目录下的config.json,所以您可以直接修改该文件。

直接启动FTPserver(Linux/Mac)

可以直接启动ossftp目录下的ftpserver.py,免去web_server的开销。

1.python ossftp/ftpserver.py

配置修改方式同上。

可能遇到的问题

如果连接FTPserver时,遇到以下错误:

有两种可能:

输入的access_key_id和access_key_secret有误。

解决 :请输入正确的信息后再重试。

所用的access_key信息为ram子账户的access_key,而子账户不具有Listbuckets权限。

解决 :当使用子账户访问时,请在控制页面中指定bucketendpoints,即告诉FTPserver某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制。

只读访问

OSSFTP工具需要的权限列表为ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。

上传文件

如果允许ram子账户上传文件,还需要PutObject。

删除文件

如果允许ram子账户删除文件,还需要DeleteObject。

如果您在Linux下运行FTPserver,然后用FileZilla连接时遇到如下错误:

501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)

一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。

1 .$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale

㈥ python使用paramiko模块ssh远程linux服务器,linux服务器已经使用公钥认证免密码登陆,请问怎么写

1.可密码搭游、公私钥认证,实现sftp文件上传下载

2.脚本知笑销

a.显示命令行帮助:pythonsftp_downloader.py-h

b.运行:pythonsftp_downloader.py-uzhangsan-ppassword-pkmy-openssh-private-key-sfmy-server-list-file-path-srcfthe-file-name-to-be-download-ddthe-file-dir-to-save_vote

c.可把b中的命名设置成alias(windows平台我用的Cmder终端,可设置alias),使用就简单了

4.脚本说明:

a.argparse模块使用接收命令行参数,然后分别设置_vote_tie_follow来区分要下载不同类型的服务器日志与传不同的日志路径

b.easylog模块,自己封装的日志模块

c.gevent,对文件中的多个服务器地址使用协程来加快下载

d.paramiko模块,核心使用,ssh连接认证

e.只封装了下载,上传、执行服务器命令等可以自己再扩展

d.当升扮前只是为了满足方便使用,有很多地方可以调和纠错,指正。

㈦ sublime3 sftp插件怎么破解

必备插件sftp:
1,Package Control可以用来install其他package
2,sftp远程编辑文件:安装:install->sftp具体配置

sftp工具破解
1,下载python字节码反编译工具uncompyle2 (pyc 2 py) https://github.com/wibiti/uncompyle2
2,安装uncompyle2
3,工具安装后的位置 E:\Python27\Scripts\uncompyle2
4,反编译文件commands.pyc
python uncompyle2 -o commands.py commands.pyc
5,注释掉函数即可 sublime.set_timeout(reg, 1)

㈧ 纯干货!python 在运维中的应用 (一):批量 ssh/sftp

日常工作中需要大量、频繁地使用ssh到服务器查看、拉取相关的信息或者对服务器进行变更。目前公司大量使用的shell,但是随着逻辑的复杂化、脚本管理的精细化,shell已经不满足日常需求,于是我尝试整合工作中的需求,制作适合的工具。 由于管理制度的缺陷,我以工作流程为核心思考适合自己的运维方式,提升工作效率,把时间留给更有价值的事情。 完整代码在最后,请大家参考。

生产:4000+物理服务器,近 3000 台虚拟机。

开发环境:python3.6、redhat7.9,除了paramiko为第三方模块需要自己安装,其他的直接import即可。

批量执行操作是一把双刃剑。批量执行操作可以提升工作效率,但是随之而来的风险不可忽略。

风险案例如下:

挂载很多数据盘,通常先格式化硬盘,再挂载数据盘,最后再写入将开机挂载信息写入/etc/fstab文件。在批量lsblk检查硬盘信息的时候发现有的系统盘在/sda有的在/sdm,如果不事先检查机器相关配置是否一致直接按照工作经验去执行批量操作,会很容易造成个人难以承受的灾难。

在执行批量操作时按照惯例:格式化硬盘->挂载->开机挂载的顺序去执行,假设有的机器因为某些故障导致格式化硬盘没法正确执行。在处理这类问题的时候通常会先提取出失败的ip,并再按照惯例执行操作。运维人员会很容易忽略开机挂载的信息已经写过了,导致复写(这都是血和泪的教训)。

所以,为了避免故障,提升工作效率,我认为应当建立团队在工作上的共识,应当遵守以下原则:

当然,代码的规范也应当重视起来,不仅是为了便于审计,同时也需要便于溯源。我认为应当注意以下几点:

1、ssh no existing session,sftp超时时间设置:

在代码无错的情况下大量ip出现No existing session,排查后定位在代码的写法上,下面是一个正确的示例。由于最开始没考虑到ssh连接的几种情况导致了重写好几遍。另外sftp的实例貌似不能直接设置连接超时时间,所以我采用了先建立ssh连接再打开sftp的方法。

2、sftp中的get()和put()方法仅能传文件,不支持直接传目录:

不能直接传目录,那换个思路,遍历路径中的目录和文件,先创建目录再传文件就能达到一样的效果了。在paramiko的sftp中sftp.listdir_attr()方法可以获取远程路径中的文件、目录信息。那么我们可以写一个递归来遍历远程路径中的所有文件和目录(传入一个列表是为了接收递归返回的值)。

python自带的os模块中的os.walk()方法可以遍历到本地路径中的目录和文件。

3、多线程多个ip使用sftp.get()方法时无法并发。

改成多进程即可。

4、多个ip需要执行相同命令或不同的命令。

由于是日常使用的场景不会很复杂,所以借鉴了ansible的playbook,读取提前准备好的配置文件即可,然后再整合到之前定义的ssh函数中。


同时,我们还衍生出一个需求,既然都要读取配置,那同样也可以提前把ip地址准备在文件里。正好也能读取我们返回的执行程序的结果。

参数说明:

密码认证:

公钥认证:

可以配合 grep,awk 等命令精准过滤。

个人认为 Python 在初中级运维工作中的性质更像是工具,以提升工作效率、减少管理成本为主。可以从当前繁琐的工作中解脱出来,去 探索 更有价值的事情。python 本质上并不会减少故障的产生,所以在不同的阶段合理利用自身掌握的知识解决当前最重要的痛点,千万不要本末倒置。

阅读全文

与python下载sftp相关的资料

热点内容
基于单片机饮水机温度控制系统的设计 浏览:455
c中委托被编译后的结构 浏览:152
飞燕app怎么注销账号 浏览:895
cad命令缩小 浏览:154
linux发展史 浏览:629
服务器选用什么CPU比较好 浏览:334
明星怎么宣传安卓 浏览:953
8255芯片编程 浏览:65
java文件bat运行 浏览:747
java常见笔试 浏览:529
360程序员模式 浏览:363
AQS算法的查询树构造 浏览:329
小猪微信营销源码 浏览:12
阿里云服务器能连接打印机吗 浏览:175
命令行参考 浏览:281
怎么初步认识编程 浏览:208
为什么程序员都喜欢谷歌 浏览:891
压缩性骨拆能自愈吗 浏览:277
安卓怎么设置游戏画面 浏览:114
k线上写字源码 浏览:457