scp和sftp上传文件和下载文件

时间:2024-11-09 07:57:04

scp拷贝文件及文件夹

  • scp简介
  • scp常用参数
    • 非22端口拷贝文件-P
    • 拷贝文件夹-r
    • 拷贝`大量小文件`到远程服务器
  • scp常用示例
    • scp上传本地文件到远端机器
    • scp把远端机器上的文件下载到本地
    • scp把远端机器A的文件拷贝到远端机器B
    • SCP断点续传
      • 文件断点下载
      • 文件断点上传
      • 文件目录断点下载
      • 文件目录断点上传
  • 使用sftp上传文件和下载文件
    • sftp中的常用命令
      • put-上传文件到服务器
      • get-下载文件到本地
  • lrzsz简介
    • 安装lrzsz
    • 文件上传
      • rz上传文件命令
      • 拖拽上传命令
    • 文件下载
      • sz下载文件命令
  • rtty
    • 传输文件
  • trzsz

scp简介

scp从远程ssh拷贝文件及文件夹.
scp就是secure copy,是用来进行远程文件拷贝的.数据传输默认使用ssh1,并且和ssh1使用相同的认证方式,提供相同的安全保证.与rcp不同的是,scp会要求你输入密码.
rcp参考:
/rcp
/linux-command/c/


scp常用参数

/scp
/linux-command/c/

-v 用来显示进度.可以用来查看连接,认证,或是配置错误.
-C 压缩选项.
-P 指定ssh端口.
注意-p已经被rcp使用.
-p 保留文件的最后修改时间,最后访问时间和权限模式;
-r 以递归方式复制
-4 强行使用IPV4地址.
-6 强行使用IPV6地址.


非22端口拷贝文件-P

# 指定ssh端口
scp -P 端口号 file username@ip:filepath

拷贝文件夹-r

递归拷贝-r(会覆盖)

注意,如果本地存在同名文件,会覆盖且无警告提示

# 拷贝文件夹,多加上一个-r参数即可
scp -r file username@ip:filepath

#拷贝文件夹,加-r参数
scp -r /home/work/sourcedir work@192.168.0.10:/home/work/

拷贝大量小文件到远程服务器

这种方式是在第远端主机上解压缩的,传输会比scp快很多

# 使用tar将/home打包,通过管道传输到远程机器解压到/根目录
# 这里是tar的参数
# -cvf 表示只打包不使用压缩
## -c tar的打包参数
## -v 显示详情,进度
## -f 指定文件名称,必须放到所有选项后面
# -xvf 表示解压指定文件
## -x 表示解压
## -C 大C表示解压到指定位置
tar -cvf-/ home | ssh root@192.168.1.1 tar -xvf--C /

scp常用示例


scp上传本地文件到远端机器

# 把本地的文件拷贝到192.168.0.10机器上的/home/work目录下
scp /home/work/ work@192.168.0.10:/home/work/ 

scp把远端机器上的文件下载到本地

# 把192.168.0.10机器上的文件拷贝到本地的/home/work目录下
scp work@192.168.0.10:/home/work/ /home/work/ 

scp把远端机器A的文件拷贝到远端机器B

拷贝本地文件到服务器

# 把192.168.0.10机器上的文件拷贝到192.168.0.11机器的/home/work目录下
scp work@192.168.0.10:/home/work/ work@192.168.0.11:/home/work/ 

SCP断点续传

如果你要强调传输的安全性 可以采用rsync + ssh

参考: /post/7021503974175932453

## -a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性
## -v, --verbose 详细模式输出
## -z, --compress 对备份的文件在传输时进行压缩处理
##-P 断点续传并打印过程
## -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
# rsync -avzP  -e 'ssh -p port' root@[$Remote_Host]:[$Remote_Dir] [$Local_Dir]
# rsync -avzP  -e 'ssh -p port' root@[$Remote_Host]:[$Remote_Dir] [$Local_Dir]
rsync -avzP --rsh=ssh local_file_pic. root@192.168.205.304:/home/Remote_file.

文件断点下载

# 文件断点下载
##-P 断点续传并打印过程
## -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
rsync -P --rsh=ssh root@192.168.0.11:/root/ /dounine/

文件断点上传

# 文件断点上传
##-P 断点续传并打印过程
## -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
rsync -P --rsh=ssh /dounine/ root@192.168.0.11:/root/

文件目录断点下载

# 文件目录断点下载
##-P 断点续传并打印过程
## -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
rsync -P --rsh=ssh -r root@192.168.0.11:/root/storage /dounine

文件目录断点上传

# 文件目录断点上传
##-P 断点续传并打印过程
## -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
rsync -P --rsh=ssh -r /dounine root@192.168.0.11:/root/storage

使用sftp上传文件和下载文件

在这里插入图片描述


sftp中的常用命令

# 查看sftp服务器中的当前所在路径
pwd

# 查看sftp服务器默认当前目录下内容
ls

# 查看本地的当前所在路径
lpwd

# 查看本地默认当前目录下内容
lls

put-上传文件到服务器

把本地文件上传到sftp服务器的当前目录下

# 把d:/上传到Linux的当前目录下
put d:/

get-下载文件到本地

把Linux服务器上的文件下载到本地的当前目录

# 下载文件到本地当前目录
get 

lrzsz简介

lrzsz使用zmodem文件传输协议;
需要配合SecrueCRTxshell才有效;
Windows Terminal不支持zmodem文件传输协议,用不了lrzsz


安装lrzsz

# Centos安装lrzsz
yum install lrzsz -y

# Ubuntu安装
apt install lrzsz -y

文件上传

rz的意思为recevie zmodem,服务端来接收数据,对于客户端来说就是上传,文件大小限制为4GB.
Modem无法传输大于4GB的文件.


rz上传文件命令

# 在SecrueCRT或xshell中输入rz命令,弹出文件上传窗口
rz

在这里插入图片描述


拖拽上传命令

直接将文件拖拽到SecrueCRTxshell对话框中,即可完成文件上传


文件下载

sz的意思是send zmodem,服务端来发送数据,对于客户端来说就是下载,文件大小限制为4GB.


sz下载文件命令

默认把文件下载到Windows的 Download 目录下

# sz 服务器上的文件路径
sz /root/

rtty

rtty是一个webssh
项目地址:/zhaojh329/rtty

在这里插入图片描述


传输文件

# 将文件从本地传输到远程设备
rtty -R

# 将文件从远程设备传输到本地
rtty -S 

trzsz

trzsz是一个不使用zmodem文件传输协议的文件传输工具,可以了解下.
项目地址: /trzsz/trzsz-go
/cn/