系统间文件复制文档
文章目录
- 系统间文件复制文档
- windows 和 Linux 之间传输
- xftp工具
- xshell工具
- linux之间传输
- scp命令
- rsync 命令
- shell 模式
- daemon 模式
系统间文件复制文档
windows 和 Linux 之间传输
xftp工具
在两个窗口之间拖动文件进行上传和下载。
xshell工具
Linux服务器安装 lrzsz
软件包。该方式传输速度比ftp慢。
[root@server ~ 17:32:41]# yum install -y lrzsz
上传:直接将文件拖拽到命令行窗口即可。
拉取:使用 sz
工具,并指定保存位置。
linux之间传输
scp命令
scp,全名secure copy,也就是安全复制,是基于ssh协议,也就是说Linux服务器要开启ssh服务。
[root@client ~ 14:45:35]# scp root@server:/root/etc-20250916.tar .
root@server's password:
etc-20250916.tar 100% 29MB 94.5MB/s 00:00 # 复制多个文件
[root@client ~ 14:46:28]# scp root@server:/root/etc.* .
root@server's password:
etc.tar 100% 29MB 87.3MB/s 00:00
etc.tar.bz2 100% 8974KB 98.2MB/s 00:00
etc.tar.gz 100% 10MB 97.2MB/s 00:00
etc.tar.xz 100% 7291KB 101.9MB/s 00:00 # 复制目录,使用 -r 选项
[root@client ~ 14:47:31]# scp root@server:/etc/selinux/ .
root@server's password:
scp: /etc/selinux: not a regular file
[root@client ~ 14:47:54]# scp -r root@server:/etc/selinux/ .
root@server's password:
semanage.conf 100% 2321 3.2MB/s 00:00
config 100% 542 1.3MB/s 00:00
cil 100% 7792 15.3MB/s 00:00
hll 100% 17KB 36.8MB/s 00:00
lang_ext 100% 2 7.6KB/s 00:00 [root@client ~ 18:33:26]# scp etc.tar root@10.1.8.10:
etc.tar 100% 29MB 105.2MB/s 00:00
scp 命令缺点:不管目的位置是否有文件,总是再复制一次,可以理解为全量备份。缺少比对功能。
rsync 命令
Rsync(Remote Synchronize)是一款开源的、快速的、多功能的、远程数据同步备份工具,并且支持多种操作系统平台运行。
Rsync具有本地与远程两台主机之间的数据快速复制同步镜像、远程备份等功能,该功能类似scp,但是优于scp功能,还具有本地不同分区目录之间全量及增量复制数据。
Rsync同步数据镜像时,通过“quick check”算法,仅同步大小或最后修改时间发生变化的文件或目录,当然也可以根据权限,属主等属性变化的同步,所以可以实现快速同步。
前提:客户端和服务端都要提前安装好 rsync
软件包。
# 安装 rsync
[root@client ~ 18:34:01]# 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 ~ 18:37:51]# mkdir pictures
[root@client ~ 18:43:04]# touch pictures/snap{1..5}.jpg
[root@client ~ 18:43:25]# ls
anaconda-ks.cfg etc.tar pictures
[root@client ~ 18:43:26]# ls pictures/
snap1.jpg snap2.jpg snap3.jpg snap4.jpg snap5.jpg
# 首次同步
[root@client ~ 18:43:32]# rsync -av pictures root@10.1.8.10:
sending incremental file list
pictures/
pictures/snap1.jpg
pictures/snap2.jpg
pictures/snap3.jpg
pictures/snap4.jpg
pictures/snap5.jpgsent 351 bytes received 115 bytes 932.00 bytes/sec
total size is 0 speedup is 0.00
# 再次同步
[root@client ~ 18:44:03]# rsync -av pictures root@10.1.8.10:
sending incremental file listsent 153 bytes received 17 bytes 340.00 bytes/sec
total size is 0 speedup is 0.00
# 更新部分文件时间戳,再同步
[root@client ~ 18:44:23]# touch pictures/snap{1,2}*
[root@client ~ 18:44:51]# rsync -av pictures root@10.1.8.10:
sending incremental file list
pictures/snap1.jpg
pictures/snap2.jpgsent 237 bytes received 55 bytes 194.67 bytes/sec
total size is 0 speedup is 0.00
# 删除 SRC 中文件,默认不会同步删除DEST中文件
[root@client ~ 18:45:00]# rm -f pictures/snap5.jpg
[root@client ~ 18:45:25]# rsync -av pictures root@10.1.8.10:
sending incremental file list
pictures/sent 145 bytes received 20 bytes 330.00 bytes/sec
total size is 0 speedup is 0.00
# 使用选项 --delete 同步删除 DEST 中文件
[root@client ~ 18:45:28]# rsync -av pictures root@10.1.8.10: --delete
sending incremental file list
deleting pictures/snap5.jpgsent 146 bytes received 39 bytes 370.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]
径的主机名后面包含两个冒号。
- **语法2:**rsync://URL格式。
rsync [OPTION]… SRC [USER@]HOST::DEST
rsync [OPTION]… [USER@]HOST::SRC DEST
rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]