2案例2:rsync+SSH同步
2.1 问题
本例要求掌握rsync与远程SSH资源的同步操作,使用rsync命令访问远程主机svr7,完成下列任务:
- 查看远程主机的 / 目录下有哪些子目录
- 从远程主机下载 /etc/passwd 文件到当前目录
- 将远程主机的 /boot/ 目录同步为本地的 /fromssh
- 将本机的 /etc 目录同步到远程主机的 /opt/ 下
2.2 方案
列出SSH服务端资源
- rsync user@host:远程目录/
rsync+SSH远程同步操作: - rsync […] user@host:远程目录 本地目录
- rsync […] 本地目录 user@host:远程目录
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:列出远程主机的SSH资源
查看远程主机svr7的 / 目录下有哪些子目录:
[root@pc207 ~]# rsync root@192.168.4.7:/
root@192.168.4.7's password: //验证对方的密码
dr-xr-xr-x 4096 2016/12/15 10:39:34 .
lrwxrwxrwx 7 2016/12/07 09:21:50 bin
lrwxrwxrwx 7 2016/12/07 09:21:50 lib
lrwxrwxrwx 9 2016/12/07 09:21:50 lib64
lrwxrwxrwx 8 2016/12/07 09:21:50 sbin
dr-xr-xr-x 4096 2016/12/07 11:25:29 boot
drwxr-xr-x 6 2016/12/07 09:21:14 data
drwxr-xr-x 3200 2016/12/15 10:46:15 dev
drwxr-xr-x 8192 2016/12/20 17:01:02 etc
步骤二:rsync+SSH同步操作
1)从远程主机svr7下载/etc/passwd文件到当前目录
[root@pc207 ~]# rsync root@192.168.4.7:/etc/passwd ./
root@192.168.4.7's password: //验证对方的密码
[root@pc207 ~]# cat passwd //检查同步结果
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
.. ..
2)将远程主机svr7的/boot/目录同步为本地的/fromssh
[root@pc207 ~]# rsync -a root@192.168.4.7:/boot/ /fromssh
root@192.168.4.7's password: //验证对方的密码
[root@pc207 ~]# ls /fromssh/ //检查同步结果
config-3.10.0-327.el7.x86_64
extlinux
grub2
initramfs-0-rescue-a19921505cc7e19d20dfcd5cea7d8aa2.img
initramfs-3.10.0-327.el7.x86_64.img
initramfs-3.10.0-327.el7.x86_64kdump.img
.. ..
3)将本机的/etc目录同步到远程主机svr7的/opt/下
确认目录大小:
[root@pc207 ~]# du -sh /etc
35M /etc
上行同步到远程主机svr7上:
[root@pc207 ~]# rsync -a /etc root@192.168.4.7:/opt/
root@192.168.4.7's password:
在远程主机上检查同步结果:
[root@svr7 ~]# du -sh /opt/etc
35M /opt/etc