linux文件上传和下载

本文转自:https://www.cnblogs.com/liuhaidon/p/11555422.html

 

一、通过SecureCRT的rz、sz实现文件的上传和下载

1.检查是否安装sz  rz,命令如下

[root@localhost ~]# rpm -qa | grep rz   # 上传
[root@localhost ~]# rpm -qa | grep sz   # 下载

2.安装lrzsz软件,命令如下

[root@localhost ~]# yum install -y lrzsz             # CentOS
[root@localhost ~]# apt-get install -y lrzsz         # Ubuntu

3.文件上传

[root@localhost ~]# rz
[root@localhost ~]# rz -be
使用rz会有两个问题: 上传中断、上传文件变化(md5不同)。解决办法如下:
-b: 用binary的方式上传下载, 不解释字符为ASCII。 -e: 强制escape所有控制字符, 比如Ctrl+x, DEL等。

4.文件下载

linux文件上传和下载
# 1.下载一个文件
[root@localhost ~]# sz filename 
[root@localhost ~]# sz requirements.txt

# 2.下载多个文件 [root@localhost ~]# sz filename1 filename2
# 3.下载dir目录下的所有文件,不包含dir下的文件夹 [root@localhost ~]# sz dir/*
linux文件上传和下载

二、通过sftp实现文件的上传和下载

  • 为了数据和服务的安全, 很多生产环境中的Linux服务器不能使用外网环境. 在只有SSH连接的情况下, 传输文件变得很不方便。
  • 如果Linux服务器未安装用于上传和下载的lrzsz软件, 又不能现场安装, 此时可考虑使用sftp完成相关操作。
  • FTP是一种方便数据共享的文件传输协议, 包括一个FTP服务器和多个FTP客户端. FTP客户端通过FTP协议从服务器上下载资源。
  • SFTP是Secure File Transfer Protocol(安全文件传输协议)的缩写, 可以为传输文件提供一种安全的网络的加密方法。
  • SFTP协议是在FTP的基础上, 对数据采取了加密/解密技术, 使数据传输更安全。
  • SFTP的传输效率比FTP的低很多。

Windows系统下, 可以使用Core FTP、FileZilla、WinSCP、Xftp等软件来连接SFTP进行上传/下载文件、建立/删除目录等操作。这里主要探讨Linux系统下的操作。

1.软件环境

可以使用任意终端工具, 比如xshell, 或SecureCRT。

2.sftp建立连接

[root@localhost ~]# sftp username@remote_ip(or remote host name),      # 连接root用户, 则可省略"root@". 
[root@localhost ~]# sftp -o port=1000 username@remote_ip
[root@localhost ~]# sftp root@68.56.32.159

3.sftp - 上传文件:如果上传/下载的是文件夹, 在put/get命令后加上-r参数即可。

linux文件上传和下载
上传文件:  把本地服务器的/www/wwwroot目录下面的study.log文件上传到远程服务器的/www/server目录下。
sftp> lcd /www/wwwroot sftp> put study.log /www/server

上传文件夹:把本地服务器的/www/wwwroot目录下面的test文件夹上传到远程服务器的/www/server目录下。
sftp> put -r test /www/server

查看远程服务器/www/server目录下面的文件和文件夹
sftp> ls /www/server
linux文件上传和下载

4.sftp - 下载文件

linux文件上传和下载
下载文件:  把远程服务器的/www/server目录下面的study.log文件下载到本地服务器的/www目录下。
sftp> get /www/server/study.log /www
下载文件夹:把远程服务器的/www/server目录下面的test文件夹下载到本地服务器的/www目录下。
sftp> get -r /www/server/test /www

查看本地服务器/www目录下面的文件和文件夹
sftp> lls /www
linux文件上传和下载

5.sftp与ftp有着几乎相同的语法和功能

① ls, rm, cd, mkdir, pwd     等指令是对当前连接的远程端服务器的操作。
② lls, lrm, lcd, lmkdir, lpwd 等指令是对本地端服务器的操作 —— 在上述指令前加l(local)即可。

6.退出sftp

上一篇:使用phpseclib Net_SFTP.get下载文件夹不起作用


下一篇:python-使用fabric.operations.put()创建远程目录