linux基础——系统间复制文档

系统间复制文档

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 116 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. 服务端验证结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值