S2-P4 系统间的文件传送和同步
约 1569 字大约 5 分钟
2025-03-17
前提条件
为提高效率,在开始完成任务前,两台虚拟机均已配置 /etc/hosts
,具体配置如下:

任务一:scp命令在客户机和主机间互相传输文件
在client上,将server上的
/etc
整个文件夹复制到client/root
下scp -rq server:/etc /root
命令解析:
-r
:递归,用于文件夹传输-q
:不显示传输进度条-v
:详细方式显示输出-P
:指定数据传输用到的端口号server
:为远端服务器地址,通常格式为root@192.x.x.x
(同ssh
填写格式):/etc
:源路径:远端的/etc
目录/root
:目标路径:本地的/root
目录在client上,将server上的
/boot/grub2/grub.cfg
文件复制到client/root
下, 同时改名为mygrub.cfg
scp server:/boot/grub2/grub.cfg /root/mygrub.cfg
说明:
scp
的格式和cp
较为相似,可以在传输过程中直接改名在client上,将client
/usr/bin
整个文件夹复制到server/opt
下scp -rq /usr/bin server:/opt/
说明:源位置可以是远端也可以是本地,目标位置同理
拓展:
ssh
命令后面可以添加需要执行的命令内容,运行后即可直接在远端执行命令并返回运行结果如:
ssh server 'ls /opt'
(执行效果见上图)
任务二:sftp命令在客户机和主机间互相传输文件
在client上,将server上的
/etc/fonts
整个文件夹下载到client/root
下# 登录server,开启交互式传输 sftp server
命令解析:
server
:为远端服务器地址,通常格式为root@192.x.x.x
(同ssh
填写格式)# sftp交互式模式命令 get -r /etc/fonts/ /root/
命令解析:
从远程下载到本地
-r
:递归,用于文件夹传输/etc/fonts/
:在远端主机上的文件或目录(源位置)/root/
:在本地主机上的文件或目录(目标位置)查看是否复制成功:
在client上,将本地的
/etc/passwd
文件上传到server的/opt
下,并改名为clientpasswd
# sftp交互式模式命令 put /etc/passwd /opt/clientpasswd
sftp
交互式模式命令解析:从本地上传到远程
-r
:递归,用于文件夹传输/etc/passwd
:在本地主机上的文件或目录(源位置)/opt/clientpasswd
:在远程主机上的文件或目录(目标位置),和cp
命令相似,可以在传输过程中修改文件名拓展内容:
命令解析:
cd
:远程 进入指定目录ls
:远程 查看当前目录下的文件和目录pwd
:远程 查看当前目录路径lcd
:本地 进入指定目录lls
:本地 查看当前目录下的文件和目录lpwd
:本地 查看当前目录路径
任务三:采用rsync命令进行系统间文件的同步
准备操作:
安装
rsync
命令yum install rsync
在client上,在
/root
下自建文件夹work
,并采用rsync
命令进行将/etc
整个目录同步到work
目录下# 创建文件夹 mkdir work # 同步文件 rsync -rq /etc work/
rsync
命令解析:实现本地主机和远程主机上的文件同步(也可以实现本地间文件同步)
特点:它是实现增量备份的工具,只传修改了的部分,区别于
scp
等全量备份方法,语法与scp
相似rsync [选项] 本地源路径 本地目标路径
:本地文件同步rsync [选项] 远程账号@远程IP:远程路径 本地路径
:远程同步到本地rsync [选项] 本地路径 远程账号@远程IP:远程路径
:本地同步到远程-q
--quiet
:精简输出模式(不显示过程)-r
--recursive
:对子目录以递归模式处理-z
--compress
:对备份的文件在传输时进行压缩处理-v
--verbose
:详细模式输出-a
--archive
:归档模式,表示递归传输并保持文件属性(包含-r
选项的功能)特别说明:注意源路径目录带上尾随斜线和不带尾随斜线的区别
在client上,将server上的
/tmp
文件夹同步到client/root/work
下,然后在server/tmp
下新添加一个fhj.txt
文件,再次同步,观察是否只传输新增文件# 首次同步 rsync -va server:/tmp /root/work/ # 在server上新增文件 ssh server 'touch /tmp/fhj.txt && ls /tmp' # 再次同步 rsync -va server:/tmp /root/work/
在client上,将本地的
/root/work
文件夹同步到server的/opt
下,添加-z
选项,观察压缩传输的效果rsync -vaz /root/work server:/opt
区别:
拓展
在client上,在
/root
下自建文件夹mylog
,并采用tar
命令将系统日志/var/log
压缩成一个mylog.tar.gz
包,放在/root/mylog
目录下mkdir /root/mylog cd /var/log tar -zcvf /root/mylog/mylog.tar.gz .
在client上,将压缩包
mylog.tar.gz
通过scp
备份到主机server的/opt
下cd /root/mylog scp mylog.tar.gz server:/opt
在client上用
ssh
查看是否发送成功ssh server 'ls /opt'
ssh登录到主机server上,并且将压缩包解压到
/opt
下的自建mylog
目录下ssh server cd /opt/ mkdir mylog tar -zxvf mylog.tar.gz -C mylog/
返回到客户机client上,重启下防火墙
systemctl restart firewalld
在客户机client上,通过rsync将增量的var/log同步到主机server的/opt/mylog下,观察是否只发送修改过的文件(注意细节,发送的只有几个修改过的文件,不要发送成全量文件)
rsync -va /var/log/ server:/opt/mylog
通过观察命令执行输出,只更新了5个文件
版权所有
版权归属:DDoS_LING