scp
rsync
作用:远程文件的复制
scp
特点
- 全量备份,如果增量备份,使用rsync命令
- 不支持断点续传
- 文件很大时,传输效率不高
常用参数
-C 压缩传输,提高传输效率
-r 复制整个目录
-P 传输端口
-p 传输后保留文件的原生属性
-q 不显示传输进度条
-l 指定传输文件时占用的带宽。单位为KB/s
使用
推送
scp [参数] 本地文件/目录 user@IP:/目标目录
# 将a.txt推送到远程服务器的/路径
scp -C -P xxx a.txt root@xxx.xx.xxx.x:/
拉取
scp [参数] user@IP/文件/目录 /本地目录
# 将a.txt文件从远程服务器拉取
scp -C root@xxx.xx.x.xxx:/root/a.txt /root
rsync
安装命令
# 检查是否安装了rsync
rpm -qa | grep rsync
# 如果没有安装,进行安装
yum install -y rsync
特点
- 可全量可增量
- 支持断点续传
- 跨平台 Linux/Unix/Windows
常用参数
-a 传输所有文件,并保持文件的属性
-v 输出传输的详细信息
-z 以压缩方式传输
-p 保持文件属性不变
-P 显示同步过程和进度信息
-t 保持文件信息同步,保持文件的时间信息不变
-exclude=PATH 排除文件,不进行传输
三种模式
本地模式
# 同cp rsync [参数] 源文件/目录 目标文件/目录
[root@localhost ~]# rsync -avz /etc/hosts ./
sending incremental file list
hosts
sent 136 bytes received 35 bytes 342.00 bytes/sec
total size is 158 speedup is 0.92
远程Shell模式
# 同scp rsync [参数] 源文件/目录 user@host:目标
守护进程模式
rsync [参数] 源文件/目录 user@host:目标
问题
远程传输时,远程用户对应-s为/sbin/nologin时,提示错误
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(178) [sender=3.1.2]