一、srync三种操作方式
1、本地间传输相当于cp命令
例1:将etc/hosts推送到/tmp下 rsync /etc/hosts /tmp
【1.1】数据同步
源文件追加内容:echo “'hostname -I' www.yunjisuan.com”>> /etc/hosts
【1.2】同步数据(只同步目标文件没有得内容)rsync /etc/hosts /tmp
例2:目录推送
【2.1】将根下得bent目录推送到/tmp下 rsync -avz /root/bent /tmp
【2.1】删除目标目录比原目录多于得数据 参数:--delete
删除/tmp下多余得数据,使目标目录与原目录完全一致。rsync -avz /root/bent /tmp/ --delete
特别提示:请注意以下两条命令的差别:
【1】rsync -avz /opt/ /tmp/
【2】rsync -avz /opt /tmp/
/opt/的意思是,仅把/opt/目录里面的内容同步过来,opt目录本身并不同步;而后者【2】中/opt表示把opt本身及其内部内容全都同步到/tmp下,仅一个/(斜线之差),意义大不相同,请同学们注意使用的差别。
在后边要讲的通过远程shell进行数据传输的内容也会有类似的问题,请牢记。
2、远程传输
准备事项:要用多台虚拟机。需要装远程传输得插件包也就是ssh得远程支持包(如果本机有scp命令则支持远程传输,如果没有则需安装openssh-clients
)。必须知道对方root用户得密码。默认传输得是22端口,如果对方不是22端口,则需指定对方端口号进行远程同步。远程连接得配置文件 /etc/ssh/sshd/config
例1:将本地服务器得数据推送到另一台服务器上 rsync -avz /root/bent root@192.168.200.103:/tmp
说明: root@192.168.200.103
表示对方服务器得登录地址 :
表示为指定对方服务器得存放位置
3、多组服务器之间,以socket进程得方式启动rsync进程进行监听
【3.1】连接原理:客户端要告诉服务端两点,1、要推送给配置文件的哪个模块,服务端就会按照要求放在相应的位置。2、需要验证每个模块下的用户名和密码。
【3.2】操作流程---服务端设置
1、手动写rsync得配置文件,vim/etc/rsyncd.conf
下图为模板:
uid = rsync gid = rsync use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock log file = /var/log/rsyncd.log [backup] path = /backup/ ignore errors read only = false list=false hosts allow = 192.168.200.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file = /etc/rsync.password 2、创建共享目录/backup 3、添加程序用户 useradd -M -s /sbin/nologin rsync 4、启动服务 rsync --daemon 5、更改共享目录的属主 chown -R rsync.rsync /backup 6、创建rsync虚拟账号和密码 echo "rsync_backup:123456" >> /etc/rsync.password 7、将账号密码文件的权限设置为600 chmod 600 /etc/rsync.psaaword 8、加入开机自启动 echo "rsync --daemon" >> /etc/rc.local 9、关闭防火墙 service iptables stop
【3.3】操作流程---客户端设置
1、创建密码文件 echo "123456" > /etc/rsync.password
2、设置密码文件权限为600 chmod 600 /etc/srync.password
4、同步测试
【4.1】将客户端指定目录内容推送到服务器端rsync指定目录下 rsync -avzP /backup/ rsync_backup@192.168.197.129::backup --password-file=/etc/rsync.password
命令说明:
-avz:保持稳健各项属性不变,-v显示同步信息 -P显示具体同步过程
/backup/:要推送的内容所在目录
rsync_backup:服务器端rsync服务的同步的用户名(非Linux用户)
192.168.197.129:rsync服务器IP地址
backup:rsync服务器配置文件里的模块名
--password-file=/etc/rsync.password:免密码的操作,指定密码文件位置,如果不写,则会要求用户交互式输入密码。(如果想挂定时任务,必须得非交互式)
注意事项:
1、远程同步时需要关闭防火墙 service iptables stop
2、重启rsync服务的方法:
【2.1】pkill rsync
关闭
【2.2】rsync --daemon
启动
3、rsync的socket进程监听873端口