系统间复制文档
windows 和 Linux 之间传输
xftp工具
在两个窗口之间拖动文件进行上传和下载。

xshell 工具
Linux服务器安装 lrzsz 软件包。该方式传输速度比ftp慢。
[root@centos7 ~]# yum install -y lrzsz
上传:直接将文件拖拽到命令行窗口即可。
拉取:使用 sz 工具,并指定保存位置。

Linux 之间传输
scp 命令
scp,全名secure copy,也就是安全复制,是基于ssh协议,也就是说Linux服务器要开启ssh服务。
[root@client ~ 12:34:19]# scp root@server:/root/etc-20251106.tar .
root@server's password:
etc-20251106.tar 100% 37MB 95.4MB/s 00:00
[root@client ~ 12:34:56]# ll etc-20251106.tar
-rw-r--r--. 1 root root 39219200 11月 6 12:34 etc-20251106.tar
# 设置免密登录
[root@client ~ 12:46:21]# ssh-keygen
[root@client ~ 12:46:38]# ssh-copy-id root@server
[root@client ~ 12:47:20]# ssh server
Last login: Thu Nov 6 12:46:08 2025 from client.shizhan.cloud
# 复制多个文件
[root@backup ~ 18:45:47]# scp root@webapp:/root/{etc-20251106.tar,etc.tar} .
etc-20251106.tar 100% 37MB 103.5MB/s 00:00
etc.tar
# 复制目录,使用 -r 选项
[root@backup ~ 18:47:06]# scp root@webapp:/etc/selinux .
scp: /etc/selinux: not a regular file
[root@backup ~ 18:47:56]# scp -r root@webapp:/etc/selinux .
semanage.conf 100% 2321 2.9MB/s 00:00
config 100% 543 886.9KB/s 00:00
semanage.read.LOCK 100% 0 0.0KB/s 00:00
...
# 上传,如果路径没有写,表示相对用户家目录。这里是上传到root用户家目录/root
[root@backup ~ 18:49:42]# scp etc.tar root@webapp:
etc.tar 100% 37MB 83.6MB/s 00:00
[root@backup ~ 18:50:11]# scp etc.tar etc-20251106.tar root@webapp:
etc.tar 100% 37MB 104.0MB/s 00:00
etc-20251106.tar 100% 37MB 73.0MB/s 00:00
[root@backup ~ 18:50:34]# scp -r selinux/ root@webapp:
semanage.conf 100% 2321 2.4MB/s 00:00
config 100% 543 838.2KB/s 00:00
semanage.read.LOCK 100% 0 0.0KB/s 00:00
...
scp 命令缺点:不管目的位置是否有文件,总是再复制一次,可以理解为全量备份。缺少比对功能。
rsync 命令
Rsync(Remote Synchronize)是一款开源的、快速的、多功能的、远程数据同步备份工具,并且支持多种操作系统平台运行。
Rsync具有本地与远程两台主机之间的数据快速复制同步镜像、远程备份等功能,该功能类似scp,但是优于scp功能,还具有本地不同分区目录之间全量及增量复制数据。
Rsync同步数据镜像时,通过“quick check”算法,仅同步大小或最后修改时间发生变化的文件或目录,当然也可以根据权限,属主等属性变化的同步,所以可以实现快速同步。
前提:客户端和服务端都要提前安装好 rsync 软件包。
# 安装 rsync
[root@centos7 ~]# yum install -y rsync
shell 模式
shell 模式是基于 ssh 服务传送。
语法:
rsync [OPTION]… SRC DEST
rsync [OPTION]… SRC [USER@]HOST:DEST
rsync [OPTION]… [USER@]HOST:SRC DEST
常用选项:
- -n 参数执行一次空运行,与真实执行显示结果一致,但是没有做任何改变。
- -v 显示执行过程中详细输出。
- -a 代表“archive mode”,会启用参数:-r -l -p -t -g -o -D
- -r 递归同步整个文件夹
- -l 同步软连接
- -p 保留权限
- -t 保留时间戳
- -g 保留所属组
- -o 保留所有者
- -D 同步设备文件
说明:
- -A,同步时保留ACLs内容。
- -X 同步时保留selinux内容。-a,不同步acl selinux内容。
# 准备文件
[root@client ~ 14:11:06]# mkdir pics
[root@client ~ 14:12:11]# touch pics/snap{001..100}.jpg
# 首次同步
[root@client ~ 14:14:32]# rsync -av pics root@server:
sending incremental file list
pics/
pics/snap001.jpg
pics/snap002.jpg
pics/snap003.jpg
pics/snap004.jpg
…………
sent 5,680 bytes received 1,954 bytes 15,268.00 bytes/sec
total size is 0 speedup is 0.00
# 再次同步
[root@client ~ 14:15:29]# rsync -av pics root@server:
sending incremental file list
sent 1,777 bytes received 17 bytes 1,196.00 bytes/sec
total size is 0 speedup is 0.00
# 创建子文件夹,子文件夹下在创建文件,再同步
[root@client pics 14:16:02]# mkdir pic1
[root@client pics 14:16:10]# cd pic1
[root@client pic1 14:16:14]# touch snap{1..5}.png
[root@client ~ 14:18:48]# rsync -av -r pics root@server:
sending incremental file list
pics/
pics/pic1/
pics/pic1/snap1.png
pics/pic1/snap2.png
pics/pic1/snap3.png
pics/pic1/snap4.png
pics/pic1/snap5.png
sent 2,112 bytes received 123 bytes 1,490.00 bytes/sec
total size is 0 speedup is 0.00
# 创建文件或更新部分文件时间戳,再同步
[root@client ~ 14:19:34]# touch pics/snap{1..5}.jpg
[root@client ~ 14:20:11]# rsync -av -r pics root@server:
sending incremental file list
pics/
pics/snap1.jpg
pics/snap2.jpg
pics/snap3.jpg
pics/snap4.jpg
pics/snap5.jpg
sent 2,206 bytes received 116 bytes 4,644.00 bytes/sec
total size is 0 speedup is 0.00
# 删除 SRC 中文件,默认不会同步删除DEST中文件
[root@client ~ 14:21:36]# rm -f pics/snap{001..010}.jpg
[root@client ~ 14:22:56]# rsync -av -r pics root@server:
sending incremental file list
pics/
sent 1,840 bytes received 21 bytes 3,722.00 bytes/sec
total size is 0 speedup is 0.00
# 使用选项 --delete 同步删除 DEST 中文件
[root@client ~ 14:23:06]# rsync -av -r pics root@server: --delete
sending incremental file list
deleting pics/snap010.jpg
deleting pics/snap009.jpg
deleting pics/snap008.jpg
…………
sent 1,841 bytes received 218 bytes 4,118.00 bytes/sec
total size is 0 speedup is 0.00
将目标文件拉取到本地,操作过程一致。
同步注意事项:
- 文件访问时间等属性、读写等权限、文件内容等有任何变动,都会被认为修改。
- 目标目录下如果文件比源目录还新,则不会同步。
- 源路径的最后是否有斜杠有不同的含义:
- 有斜杠,只是复制目录中的文件。
- 没有斜杠的话,不但要复制目录中的文件,还要复制目录本身。
daemon 模式
daemon 模式,不依赖 ssh 服务。
daemon 模式要求:服务端部署 rsynrc 服务。
-
语法1:源路径或目的路径的主机名后面包含两个冒号。
-
语法2:rsync://URL格式。
rsync [OPTION]… SRC [USER@]HOST::DEST
rsync [OPTION]… [USER@]HOST::SRC DEST
rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]
# 1. 服务端配置rsync
[root@backup ~]# vim /etc/rsyncd.conf
# 启动rsyncd服务、 配置防火墙、关闭 selinux
# 2. 客户端传输测试
[root@webapp ~]# rsync -av file.txt backup::webapp
# 3. 服务端验证结果
2269

被折叠的 条评论
为什么被折叠?



