天道酬勤,学无止境

sftp下载文件夹方法

sftp下载文件夹方法:

sftp要下载文件夹,需要进入到目录内,然后再使用命令get -r ./.来下载整个文件夹内的数据:

spacer.gif

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Paramiko无法下载大于1GB的大文件(Paramiko Fails to download large files >1GB)
    问题 def download(): if os.path.exists( dst_dir_path ) == False: logger.error( "Cannot access destination folder %s. Please check path and permissions. " % ( dst_dir_path )) return 1 elif os.path.isdir( dst_dir_path ) == False: logger.error( "%s is not a folder. Please check path. " % ( dst_dir_path )) return 1 file_list = None #transport = paramiko.Transport(( hostname, port)) paramiko.util.log_to_file('paramiko.log') ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #transport try: ssh.connect( hostname, username=username, password=password, timeout=5.0)
  • Linux - 通过SecureCRT的rz、sz和sftp实现文件的上传和下载
    SecureCRT如何上传/下载文件? 服务器不能使用外网, 导致lrzsz软件无法安装时又该如何上传/下载文件? sftp如何上传/下载文件? 本篇文章详细告诉你要如何解决这些问题.目录1 通过rz/sz命令上传/下载1.1 安装lrzsz软件1.2 rz - 上传文件1.3 sz - 下载文件2 通过sftp上传/下载文件2.1 关于SFTP的简介2.2 SFTP与FTP的区别2.3 使用SFTP之前的工作2.4 sftp - 上传文件2.5 sftp - 下载文件参考版权声明SecureCRT中有以下文件传输协议:① ASCII: 最快的传输协议, 但只能传送文本文件;② Xmodem: 古老的传输协议, 速度较慢, 但使用了CRC错误侦测方法, 传输的准确率可高达99.6%;③ Ymodem: 是Xmodem的改良版, 使用了1024位区段传送, 速度比Xmodem快;④ Zmodem: Zmodem采用了串流式(streaming)传输方式, 传输速度较快, 而且还具有自动改变区段大小和断点续传、快速错误侦测等功能.Zmodem是目前最流行的文件传输协议, 下述的rz/sz命令就是通过Zmodem模式传输文件.1 通过rz/sz命令上传/下载1.1 安装lrzsz软件[root@host-10-0-20-50 ~]# sudo yum install -y
  • 使用SSH.NET库从SFTP下载文件(Download files from SFTP with SSH.NET library)
    问题 string host = @"ftphost"; string username = "user"; string password = "********"; string localFileName = System.IO.Path.GetFileName(@"localfilename"); string remoteDirectory = "/export/"; using (var sftp = new SftpClient(host, username, password)) { sftp.Connect(); var files = sftp.ListDirectory(remoteDirectory); foreach (var file in files) { if (!file.Name.StartsWith(".")) { string remoteFileName = file.Name; if (file.LastWriteTime.Date == DateTime.Today) Console.WriteLine(file.FullName); File.OpenWrite(localFileName); string sDir = @"localpath"; Stream file1 = File.OpenRead
  • springboot整合sftp文件服务器实现文件上传下载功能
    目录 1、项目结构 2、添加sftp核心配置依赖 3、定义sftpConfig对象 4、定义sftp客户端:里面包含连接校验,文件夹创建,文件判断,文件上传下载等多种方法,根据实际需要使用; 5、定义sftp工厂类 6、启动类中添加SftpFactory; 7、创建测试方法 8、swagger接口调用测试,看是否生成文件 直接上模块代码: 完整项目源码地址(参考ideal-sftp-1018模块):https://github.com/yangshilei/springCloud 1、项目结构 下面红圈中是主要的几个关于sftp客户端操作的对象方法。 2、添加sftp核心配置依赖 <!--sftp核心依赖包--> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io<
  • 使用Filezilla和SFTP连接到Amazon EC2文件目录(Connect to Amazon EC2 file directory using Filezilla and SFTP)
    问题 我已经创建了一个AWS EC2实例,并且希望能够以最简单,最直接的方式使用FileZilla将文件上传到服务器目录。 回答1 我为此创建了一个视频教程。 只需检查: 使用FileZilla和SFTP,视频教程连接到Amazon EC2文件目录 上面的视频教程摘要: 编辑(首选项)>设置>连接> SFTP,单击“添加密钥文件” 浏览到您的.pem文件的位置,然后选择它。 将出现一个消息框,询问您是否允许将文件转换为ppk格式。 单击“是”,然后给文件起一个名称并将其存储在某处。 如果新文件显示在密钥文件列表中,请继续执行下一步。 如果不是,则单击“添加密钥文件...”,然后选择转换后的文件。 文件>站点管理器添加具有以下参数的新站点: 主机:您的EC2实例的公共DNS名称,或服务器的公共IP地址。 通讯协定:SFTP 登录类型:普通用户:来自文档:“对于Amazon Linux,默认用户名是ec2-user 。对于RHEL5,用户名通常是root,但可能是ec2-user。对于Ubuntu,用户名是ubuntu 。对于SUSE Linux,该用户名是用户名是root 。对于Debian,用户名是admin 。否则,请与AMI提供程序联系。” 按“连接”按钮-如果已禁用密码保存,则将提示您登录类型将更改为“询问密码”。 说“确定”,然后在连接时在密码提示下按“确定”
  • 如何使用PHP从SFTP服务器下载文件(How to download a file from an SFTP server using PHP)
    问题 我希望允许用户直接从sftp服务器下载文件,但要在浏览器中下载文件。 我已经找到了读取文件和回显字符串的方法(使用ssh2.sftp或phpseclib的连接),但是我需要下载而不是读取。 另外,我已经看到了建议从sftp服务器下载到Web服务器,然后从Web服务器使用readfile()到用户本地磁盘的解决方案。 但这意味着要进行两次文件传输,如果文件很大,我想这会很慢。 您可以直接从sftp下载到用户磁盘吗? 为任何回应加油! 回答1 如果您将直接链接添加到html文件(即下载文本),则不需要任何php即可允许用户直接从SFTP服务器下载。 当然,如果您不想公开ftp服务器的凭据,这将不起作用。 如果要通过服务器从SFTP中提取文件,则必须先将文件下载到服务器,然后再将其发送回用户浏览器。 为此,有许多解决方案。 最少的开销可能来自使用phpseclib,如下所示 <?php include('Net/SFTP.php'); $sftp = new Net_SFTP('www.domain.tld'); if (!$sftp->login('username', 'password')) { exit('Login Failed'); } //adds the proper headers to tell browser to download rather than
  • sftp创建只能下载文件,不可登录用户的方法
    1.修改/etc/ssh/sshd_config 注释:#Subsystem sftp /usr/libexec/openssh/sftp-server添加:Subsystem sftp internal-sftp 2.添加用户 useradd -g test -s /sbin/nologin testuser 3.重启sshd服务 systemctl restart sshd 测试su testuser 失败 用客户端sftp登录成功来源:https://blog.51cto.com/u_2884868/2584980
  • Python建立ssh连接|paramiko实践
    之前写了一篇Python调用系统命令的六种方法,但是执行linux命令时,需要在本地运行,如果想远程执行命令,就要用到另一个库paramiko。paramiko是python的第三方库,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接,不仅可以远程执行shell命令,还可以实现服务器文件的上传、下载。相当于一个Python版本的xshell和xftp工具。安装pip install paramiko项目地址: https://github.com/paramiko/paramiko官方文档: http://docs.paramiko.org/paramiko主要包含两个类:SSHClient、SFTPClientSSHClient是对SSH会话的封装,该类封装了传输(Transport),通道(Channel)等,通常用于执行远程命令。SFTPClient是对SFTP客户端的封装,用以实现远程文件操作,如文件上传、下载、修改文件权限等操作。SSHClient类的使用SSHClient类的主要方法:1.connect方法,实现远程ssh连接并校验connect()常用参数:hostname 连接的目标主机port=SSH_PORT 指定端口username=None 验证的用户名password=None 验证的用户密码pkey=None 私钥方式用于身份验证key
  • Notepad++插件之ftp/sftp远程编辑功能
    Notepad++的ftp/sftp远程编辑功能介绍:Notepad++是一个优秀的开源编辑器,最大特性就是插件丰富,这里分享一下我常用的实用插件,其中一些是Npp预装的。这些插件主要是开发相关的,所以如果想需要其它插件,可以浏览一下http://sourceforge.net/projects/npp-plugins/files/。 这里我主要写的是FTP插件。一般情况下我们会在本地修改文本文件后然后提交到服务器上进行上线编辑等。但是有时候我们需要实时对服务器上的文件进行修改。试试NotePad++吧~ 一、下载notepad++ http://notepad-plus.en.softonic.com/1、 自动安装:插件——> Plugin Manager——>ShowPlugin Manager——>勾选NppFTP插件——>Install1、 手动安装打开notepad++插件项目的官方网站: http://sourceforge.net/projects/npp-plugins/在列表中点击需要的插件(或在顶部搜索框搜索你想要的插件),以Autosave为例。 复制解压后NppFTP_0.26.3\bin\ NppFTP.dll将下载到的插件文件解压到Plugins目录,安装完成(注意重启)。 二、配置连接 1、 菜单栏: 插件 --NppFTP-- 勾选“Show
  • 如何确认SFTP档案传送?(How to confirm SFTP file delivery?)
    问题 我正在使用SFTP和非root用户的公共密钥发送文件,看起来文件已发送,但由于权限的原因,我在目标文件夹上找不到它。 sftp> ls sftp> put /tmp/testx Uploading /tmp/testx to /folder1/target_folder /tmp/testx 100% 5 0.0KB/s 00:01 sftp> get testx Couldn't stat remote file: No such file or directory File "/folder1/target_folder/testx" not found. sftp> ls sftp> 这是-vvv: debug3: SSH_FXP_REALPATH . -> /folder1 debug3: Looking up /tmp/file_to_send debug3: Sent message sender_host 4 T:17 I:2 debug3: Wrote 80 bytes for a total of 2653 debug3: Received stat reply T:105 I:2 debug3: Sent message SSH2_FXP_OPEN I:3 P:/folder1/target_directory/file_to_send debug3
  • 通过SFTP进入Google Compute Engine(SFTP into Google Compute Engine)
    问题 我一直在Compute Engine上与Debian一起玩,并且想知道如何将SFTP导入服务器。 我找不到任何文档,希望有人可以指出正确的方向。 谢谢! 如果不可能,那么通过SCP管理静态站点的最佳方法是吗? 回答1 从高层次上讲,这些步骤是: 安装并运行gcloud SDK( $ gcloud init ) 生成SSH密钥( $ gcloud compute ssh ) 设置FTP客户端(安装并添加密钥文件) 使用SFTP客户端连接到VM 假设在从Google获得此文档之前已在这里提出了此问题。 另外,我已经记录了这一点,可能会有所帮助: https://www.youtube.com/watch?v=9ssfE6ODpak 仅供参考。如果您需要传输的文件非常小,则可能不需要SFTP客户端。 直接从控制台进行传输,如此处所示https://youtu.be/HEdXEEYOynE 回答2 我放弃了gcloud计算副本文件,因为我不知道为什么我的实例未被提取以及权限不足,然后我开始研究如何通过sftp进入我的gcloud实例 这就是我如何与Filezilla一起使用 首先,我下载并运行了gcloud sdk:https://cloud.google.com/compute/docs/gcloud-compute/#install 当我第一次尝试从终端连接到实例时
  • 如何检查Paramiko是否成功将文件上传到SFTP服务器?(How to check if Paramiko successfully uploaded a file to an SFTP server?)
    问题 我使用Paramiko将文件放入SFTP服务器: import paramiko transport = paramiko.Transport((host, port)) transport.connect(username=username, password=password) sftp = paramiko.SFTPClient.from_transport(transport) sftp.put(local_path, remote_path) 现在,我想检查一下是否有效。 我的想法是比较本地文件和远程文件(位于SFTP服务器上)的校验和。 Paramiko功能是否可以做到这一点? 如果是这样,它到底如何工作? 回答1 使用在加密的SSH会话上运行的SFTP,传输时文件内容不会被破坏。 因此,除非.put不会引发任何错误,除非在读取本地文件或写入远程文件时损坏了文件,否则您可以确定文件已正确上传。 如果仍然要进行显式测试,请执行以下操作: 虽然SFTP协议具有校验文件扩展名,可以计算远程文件校验和,但它不受广泛支持。 特别是,最广泛的SFTP服务器实现OpenSSH不支持它。 请参阅哪些SFTP服务器实现支持检查文件扩展名。 如果您幸运地连接到另一个支持该扩展名的SFTP服务器,则可以使用Paramiko的SFTPFile.check方法。 如果没有
  • SFTP文件锁定机制(SFTP file lock mechanism)
    问题 如何确保在传输过程中通过SFTP上传的文件(在Linux基本系统中)保持锁定状态,因此自动化系统将无法读取该文件? 客户端上有选项吗? 还是服务器端? 回答1 从版本5开始,SFTP协议支持锁定。请参阅规范。 您没有指定正在使用什么SFTP服务器。 因此,我假设使用最广泛的OpenSSH。 OpenSSH仅支持SFTP版本3,因此不支持锁定。 无论如何,即使您的服务器支持文件锁定,大多数SFTP客户端/库也不支持SFTP版本5。或者即使它们支持,它们也不支持锁定功能。 请注意,该锁是显式的,客户端必须请求它。 有一些常见的解决方法,可以解决此问题: 按照@ user1717259的建议,一旦上传完成,您就可以让客户端上传“完成”文件。 使您的自动化系统等待“完成”文件出现。 您可以有一个专用的“上载”文件夹,并使客户端(原子上)将上载的文件移动到“完成”文件夹中。 使您的自动化系统仅查看“完成”文件夹。 为要上传的文件制定文件命名约定(“ .filepart”),并让客户端(原子上)在上传后将文件重命名为其最终名称。 使您的自动化系统忽略“ .filepart”文件。 有关实现此方法的示例,请参见(我的)文章“在上传时锁定文件/上传到临时文件名”。 另外,某些FTP服务器具有内置的此功能。 例如ProFTPD及其HiddenStores指令(由@fakedad提供) 。
  • PHP ssh链接sftp上传下载
    <?php//需要开启 php_ssh2 扩展。安装扩展后 php.ini 里添加 extension=ssh2class Sftp {// 连接为NULLprivate $conn = NULL;// 是否使用秘钥登陆private $usePubKey= false;//sftp 句柄private $sftp = NULL;/** * 构造函数. */public function __construct(){ $sftp_config = array("host" => "", // SFTP服务器ip地址"username" => "", // SFTP服务器用户名"password" => "", // SFTP服务器密码(有密码就不用提供公钥,秘钥)"port" => "22", // SFTP服务器端口号"pubkeyfile" => "id_rsa_logo.pub", // SFTP服务器秘钥文件"privkeyfile" => "id_rsa_logo", // SFTP服务器公钥文件"passphrase" => "" // 密码短语 ); $methods['hostkey'] = $this->usePubKey ? 'ssh-rsa' : [] ; $this->conn = ssh2_connect($sftp_config['host'],
  • Shell自动上传下载文件到SFTP服务器
    1.说明 本文提供一个Shell脚本, 可以自动连接到SFTP服务器, 然后上传或者下载指定的文件, 进而可以使用Linux的corntab命令, 定时执行脚本上传下载文件, 实现文件的同步或者备份功能。 2.FTP和SFTP的区别 一般使用FTP来上传下载文件, 但是Linux的默认是不提供FTP的, 需要额外安装FTP服务器, 而且会占用一定的VPS服务器资源。 这里建议使用SFTP代替FTP, 可以不用额外安装任何服务器端程序, 使用只有SSH的Linux服务器的时候, 开启SSH默认就开启了SFTP, 不需要单独配置就可以使用。 SFTP加密传输认证信息和数据, 相对来说会更安全。 3.安装lftp 在脚本中需要使用lftp命令来连接SFTP服务器, 如果没有需要使用root用户安装, yum安装命令如下: yum install lftp -y 自动上传下载文件的关键是自动输入用户名密码, 但使用ssh的工具scp、sftp和ssh不能自动输入密码, 所以这里使用lftp实现。 4.上传脚本 上传脚本uploadFile.sh内容如下: #!/bin/bash # SFTP配置信息 # IP IP=10.21.19.84 # 端口 PORT=22 # 用户名 USER=yuwen # 密码 PASSWORD=ai123456 # 需要上传的文件名 FILE=test
  • java通过SFTP连接到服务器,进行上传下载等操作文件工具类
    这个呢也是项目中用到的,最近啊用了好多新的东西,都是基于java调用shell脚本,sftp,hive,hdfs等等,如果有需要了大家可以在我博客找找对应内容,本次记录一下sftp的使用; 废话不多说,直接上代码,后面也有测试类提供; pom文件添加依赖 <!--操作ftp--> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.54</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-io</artifactId> <version>1.3.2</version> </dependency> 工具类 package xxx.xxx.xx.xx.utils; import com.jcraft.jsch.*; import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.Properties
  • python模块paramiko的上传下载和远程执行命令方法
    1:连接远程linux主机并执行命令 #!/usr/bin/env python import paramiko hostname='192.168.0.102' username='root' password='abc' port=22 paramiko.util.log_to_file('paramiko.log') s=paramiko.SSHClient() s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) s.connect(hostname = hostname,port=port,username=username, password=password) stdin,stdout,stderr=s.exec_command('free;df -h') print stdout.read() s.close() 执行结果如下: total used free shared buffers cached Mem: 2074940 2057420 17520 0 42416 1867968 -/+ buffers/cache: 147036 1927904 Swap: 2096472 240 2096232 Filesystem Size Used Avail Use% Mounted on /dev/sda1
  • 来自终端的单行sftp(Single line sftp from terminal)
    问题 一整天几次,我可能正在运行一个测试,该测试需要浏览远程服务器上的日志文件。 我已经习惯于使用终端将sftp到远程服务器,然后将所需的日志文件下拉到本地计算机上的/tmp 。 我今天正在使用man sftp查看选项,以试图找出一种基本在一行中运行以下命令的方式,这样我就不必键入命令,按Enter,键入命令再按Enter等。 (我现在应该做什么) sftp myuser@myserver --mypassword at prompt lcd /tmp get /dir/dir/dir/dir/file quit 我在查看man sftp发现了以前从未使用过的对scp的引用。 我觉得这可能是我要找的东西,但是我没有找到一种方法来指定我希望将安全复制的文件放到哪里。 有人可以为我提供一种从远程服务器获取/dir/file并将其下载到/tmp/file_plus-my-description吗? 我希望能够运行类似于常规UNIX副本的sftp或scp命令: scp myuser@myserver /dir/file /tmp/file_plus-my-description 我正在使用Mac OS X 10.8中的内置Terminal 。 谢谢。 回答1 2017年9月更新-tl; dr 从远程FTP服务器到你的机器下载一个文件: sftp {user}@{host}
  • 如何使用Paramiko从SFTP服务器仅下载最新文件?(How to download only the latest file from SFTP server with Paramiko?)
    问题 我想编写连接到我的大学SFTP服务器并通过练习下载最新文件的脚本。 到目前为止,我已经更改了Paramiko示例中的代码,但是我不知道如何下载最新文件。 这是我的代码: import functools import paramiko class AllowAnythingPolicy(paramiko.MissingHostKeyPolicy): def missing_host_key(self, client, hostname, key): return adress = 'adress' username = 'username' password = 'password' client = paramiko.SSHClient() client.set_missing_host_key_policy(AllowAnythingPolicy()) client.connect(adress, username= username, password=password) def my_callback(filename, bytes_so_far, bytes_total): print ('Transfer of %r is in progress' % filename) sftp = client.open_sftp() sftp.chdir('
  • linux中ssh/scp连接远程ssh非22端口的服务器方法
    ssh 连接远程ssh非22端口的服务器方法ssh -p 20086 tiaoban@远程ssh服务器ipscp 远程拷贝ssh非22端口的服务器文件是使用方法[来源]OpenOpenSSH是openBSD项目组开发的,基于BSD协议。一般linux发行版自带Openssh。2008年7月出了5.1版。 openssh包含一套程序。scp替换rcp,sftp替换了ftp. 包含sshd和sftp server端。scp: 远程文件拷贝(scp指定了远端的非默认22端口):scp -P 20022 src.tar.gz scp -P 20022 .scp -o port=60066 .scp -P 60066 -r /home/zhouhh/src/.* 拷贝目录,-r是将目录下的目录递归拷贝。".*"是将隐藏文件也拷贝过去。需要先在远端创建好相应的目录。scp -P 60066 -r * 最 后一个命令存在一个问题,就是如果172.16.22.30不是默认22端口,无法指定端口。即-P 指定非缺省的ssh端口时,对远程的拷贝,无法指定两个不同的端口。这应该是scp的命令缺陷。如果谁知道怎么指定两个远端的非缺省22端口的语法,请告 诉我。联系地址ablozhou[at]gmail.com。scp的优点是使用简单,缺点是无法列出远端目录和改变目录。复杂一点的用法是用sftp。sftp