一、通过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.文件下载
# .下载一个文件
[root@localhost ~]# sz filename
[root@localhost ~]# sz requirements.txt
# .下载多个文件
[root@localhost ~]# sz filename1 filename2
# .下载dir目录下的所有文件,不包含dir下的文件夹
[root@localhost ~]# sz dir/*
二、通过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= username@remote_ip
[root@localhost ~]# sftp root@68.56.32.159
3.sftp - 上传文件:如果上传/下载的是文件夹, 在put/get命令后加上-r参数即可。
上传文件: 把本地服务器的/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
4.sftp - 下载文件
下载文件: 把远程服务器的/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
5.sftp与ftp有着几乎相同的语法和功能
① ls, rm, cd, mkdir, pwd 等指令是对当前连接的远程端服务器的操作。
② lls, lrm, lcd, lmkdir, lpwd 等指令是对本地端服务器的操作 —— 在上述指令前加l(local)即可。
6.退出sftp