scp拷贝文件及文件夹
scp简介
scp
从远程ssh拷贝文件及文件夹.
scp
就是secure copy
,是用来进行远程文件拷贝的.数据传输默认使用ssh1
,并且和ssh1
使用相同的认证方式,提供相同的安全保证.与rcp
不同的是,scp
会要求你输入密码.
rcp参考:
https://www.linuxcool.com/rcp
https://wangchujiang.com/linux-command/c/rcp.html
scp常用参数
https://www.linuxcool.com/scp
https://wangchujiang.com/linux-command/c/scp.html
-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 [email protected]:/home/work/
拷贝大量小文件
到远程服务器
这种方式是在第远端主机上解压缩的,传输会比scp快很多
。
# 使用tar将/home打包,通过管道传输到远程机器解压到/根目录
# 这里是tar的参数
# -cvf 表示只打包不使用压缩
## -c tar的打包参数
## -v 显示详情,进度
## -f 指定文件名称,必须放到所有选项后面
# -xvf 表示解压指定文件
## -x 表示解压
## -C 大C表示解压到指定位置
tar -cvf-/ home | ssh [email protected] tar -xvf--C /
scp常用示例
scp上传本地文件到远端机器
# 把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下
scp /home/work/source.txt [email protected]:/home/work/
scp把远端机器上的文件下载到本地
# 把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下
scp [email protected]:/home/work/source.txt /home/work/
scp把远端机器A的文件拷贝到远端机器B
拷贝本地文件到服务器
# 把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下
scp [email protected]:/home/work/source.txt [email protected]:/home/work/
SCP断点续传
如果你要强调
传输的安全性
可以采用rsync + ssh
参考: https://juejin.cn/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.tar.gz [email protected]:/home/Remote_file.tar.gz
文件断点下载
# 文件断点下载
##-P 断点续传并打印过程
## -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
rsync -P --rsh=ssh [email protected]:/root/large.tar.gz /dounine/targe.tar.gz
文件断点上传
# 文件断点上传
##-P 断点续传并打印过程
## -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
rsync -P --rsh=ssh /dounine/targe.tar.gz [email protected]:/root/large.tar.gz
文件目录断点下载
# 文件目录断点下载
##-P 断点续传并打印过程
## -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
rsync -P --rsh=ssh -r [email protected]:/root/storage /dounine
文件目录断点上传
# 文件目录断点上传
##-P 断点续传并打印过程
## -e, --rsh=COMMAND 指定使用rsh、ssh方式进行数据同步
rsync -P --rsh=ssh -r /dounine [email protected]:/root/storage
使用sftp上传文件和下载文件
sftp中的常用命令
# 查看sftp服务器中的当前所在路径
pwd
# 查看sftp服务器默认当前目录下内容
ls
# 查看本地的当前所在路径
lpwd
# 查看本地默认当前目录下内容
lls
put-上传文件到服务器
把本地文件上传到sftp服务器的当前目录下
# 把d:/test.txt上传到Linux的当前目录下
put d:/test.txt
get-下载文件到本地
把Linux服务器上的文件下载到本地的当前目录
# 下载文件到本地当前目录
get test.log
lrzsz简介
lrzsz
使用zmodem
文件传输协议;
需要配合SecrueCRT
或xshell
才有效;
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
拖拽上传命令
直接将文件拖拽到SecrueCRT
或xshell
对话框中,即可完成文件上传
文件下载
sz
的意思是send zmodem
,服务端来发送数据,对于客户端来说就是下载
,文件大小限制为4GB
.
sz下载文件命令
默认把文件下载到Windows的 Download 目录下
# sz 服务器上的文件路径
sz /root/log.log
rtty
rtty
是一个webssh
。
项目地址:https://github.com/zhaojh329/rtty
传输文件
# 将文件从本地传输到远程设备
rtty -R
# 将文件从远程设备传输到本地
rtty -S test.txt
trzsz
trzsz
是一个不使用zmodem
文件传输协议的文件传输工具,可以了解下.
项目地址: https://github.com/trzsz/trzsz-go
https://trzsz.github.io/cn/