Linux学习之rsync详解(2)


2、删除nod1上/root/test1/rsyncdoc/pam.d/passwd文件,再执行1中的rsync命令,passwd文件会存在吗?
[root@nod1 ~]# rm -f test1/rsyncdoc/pam.d/passwd
[root@nod2 ~]# rsync -rl /root/rsyncdoc root@192.168.1.201:/root/test1
[root@nod1 ~]# ls test1/rsyncdoc/pam.d/ | grep passwd
passwd
可见passwd被同步过来,与cp命令的区别是rsync只是同步了这一个文件,如果复制syncdoc这个目录到目标,那全部的文件都会被覆盖,当然passwd这个文件也会被复制过来,但两者实现的原理不一样,由于rsync只是同步了一个文件,那效率当然要比cp的效率高。
3、在nod1上复制/etc/fstab文件到/root/test1/rsyncdoc目录下,请问再执行1中的rsync命令后,fstab文件是否存在?
[root@nod1 ~]# cp /etc/fstab test1/rsyncdoc/
[root@nod1 ~]# ls test1/rsyncdoc/
fstab pam.d
[root@nod2 ~]# rsync -rl /root/rsyncdoc root@192.168.1.201:/root/test1
[root@nod1 ~]# ls test1/rsyncdoc/
fstab pam.d
root@nod2 ~]# rsync -rl --delete /root/rsyncdoc root@192.168.1.201:/root/test1
[root@nod1 ~]# ls test1/rsyncdoc/
pam.d
                  可见在不加“--delete”这个参数时,同步后目标目录下的fstab档案是存在的,但有“--delete”这个参数后,会删除目标中多余的文件,目标目录和源目录保持完全相同。


          rsync的服务器模式:(以服务器模式运行时,客户机与服务器间的数据传输是明文传输,可加入用户验证机制,只能用在一些对安全性要求不高的场景)
nod1 ip:192.168.1.201作为服务端,nod2 ip:192.168.1.200作为客户端。


          服务器端的配置:
                  [root@nod1 ~]# mkdir /etc/rsyncd
[root@nod1 ~]# echo "This is a rsync server." > /etc/rsyncd/rsyncd.motd
[root@nod1 ~]# echo "rsync1:111111" > /etc/rsyncd/rsyncd.secrets
[root@nod1 ~]# echo "rsync2:111111" >> /etc/rsyncd/rsyncd.secrets
[root@nod1 ~]# cat /etc/rsyncd/rsyncd.secrets
rsync1:111111
rsync2:111111
[root@nod1 ~]# chomd 600 /etc/rsyncd/rsyncd.secrets  #这一步很重要,不然不能完成同步操作
[root@nod1 ~]# vi /etc/rsyncd.conf


uid = root
gid = root
use chroot = yes
read only = yes
hosts allow=192.168.1.0/255.255.255.0
max connections = 5
motd file = /etc/rsyncd/rsyncd.motd
log file = /var/log/rsync.log
transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300
[home]
path = /home
list = no
ignore errors
auth users = rsync1
secrets file = /etc/rsyncd/rsyncd.secrets
comment = linuxsir home
exclude = samba/
[opt]
path = /opt
list = yes
ignore errors
auth users = rsync2
secrets file = /etc/rsyncd/rsyncd.secrets
                  [root@nod1 ~]# rsync --list-only 192.168.1.201::    #列出本地服务器哪些模块可以同步(配置文件中"list = yes")
This is a rsync server.
opt      linuxsir opt


          客户端同步操作:
                  [root@nod2 ~]# rsync -avzP rsync2@192.168.1.201::opt /tmp/test
This is a rsync server.
Password:
输入密码后即可完成同步。


提问:如果想让客户端进行同步时不用手动输入密码,能自动的进行同步,这该怎样配置?
[root@nod2 ~]# echo "111111" > rsync2.passwd
[root@nod2 ~]# chmod 600 rsync2.passwd
[root@nod2 ~]# rsync -avzP --password-file=rsync2.passwd rsync2@192.168.1.201::opt    /tmp/test

Rsync 的详细介绍请点这里
Rsync 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/98c832b61674c026698709f00ff0cbd0.html