多服务器之间实现文件同步功能

  • Post author:
  • Post category:其他





多服务器之间实现文件同步,详细步骤如下(本文档为懒人教程,粘贴复制就可成功,简单实用,快来试试吧~)

简介:本例为主服务器上的文件同步到多台从服务器





一.首先,主服务器与从服务器之间建立相互信任关系


参考:https://blog.csdn.net/smile_caijx/article/details/82079668


1

.先在主机A使用命令创建密钥: ssh-keygen -t rsa


2

.在/root/.ssh目录里面看到创建的密钥: ls /root/.ssh/


3

.把id_rsa.pub文件复制到主机B的/root/.ssh目录,并改名为:authorized_keys

scp -r /root/.ssh/id_rsa.pub 10.16.0.32:/root/.ssh/authorized_keys


4

.测试一下;scp -r root@10.16.0.32:/usr/local/temp /usr/local/temp


5

.这只是让A服务器信任了B服务器,还需要让B服务器信任A服务器,步骤同上


6

.注意,如果有多台服务器,则将所有从服务器的id_rsa.pub中内容复制到主服务器的 authorized_keys 文件中


二.主服务器(Server)


参考:https://www.cnblogs.com/MacoLee/p/5633650.html

其中主服务器需要安装rsync与inotify,主服务器作为server,向备份服务器client传输文件


1

.安装rsync

a.安装rsync和xinetd,并创建目录: yum install rsync xinetd

b.配置xinetd: vi /etc/xinetd.d/rsync

c.将disable = yes修改为: disable = no

d.启动xinetd服务: service xinetd start


2

.建立密码认证文件,代码如下:

a. [root@Server ]# echo “rsync-pwd” >/etc/rsync.passwd

#其中rsync-pwd可以自己设置密码,rsync.passwd名字也可以自己设置

b. [root@Server]# chmod 600 /etc/rsync.passwd

#无论是为了安全,还是为了避免出现以下错误,密码文件都需要给600权限


3

.安装inotify

[root@Server]# cd /usr/src/

[root@Server src]# wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz

[root@Server src]# tar zxvf inotify-tools-3.14.tar.gz

[root@Server src]# cd inotify-tools-3.14

[root@Server inotify-tools-3.14]# ./configure –prefix=/usr/local/inotify

[root@Server inotify-tools-3.14]# make

[root@Server inotify-tools-3.14]# make install


4

.创建rsync复制脚本,这个脚本放在主服务器上的根目录的/home目录下

创建文件名称:


inotifywaitrsync.sh



复制一下内容到


inotifywaitrsync.sh





inotifywait -mrq –timefmt ‘%d/%m/%y %H:%M’ –format ‘%T %w%f’ -e modify,delete,create,attrib /usr/Java/redPackets/apache-tomcat-7.0.70/webapps/redPackets/html-H5/html/  | while read file

do

#从服务器一

rsync -avPz –progress /usr/Java/apache-tomcat-7.0.70/webapps/ROOT/html-H5/html/ 47.114.181.11:/usr/Java/redPackets/apache-tomcat-7.0.70/webapps/ROOT/html-H5/html/

rsync -avPz –delete /usr/Java/apache-tomcat-7.0.70/webapps/ROOT/html-H5/html/ 47.114.181.11:/usr/Java/redPackets/apache-tomcat-7.0.70/webapps/ROOT/html-H5/html/

#从服务器二

rsync -avPz –progress /usr/Java/apache-tomcat-7.0.70/webapps/ROOT/html-H5/html/ 47.114.177.199:/usr/Java/redPackets/apache-tomcat-7.0.70/webapps/ROOT/html-H5/html/

rsync -avPz –delete /usr/Java/apache-tomcat-7.0.70/webapps/ROOT/html-H5/html/ 47.114.177.199:/usr/Java/redPackets/apache-tomcat-7.0.70/webapps/ROOT/html-H5/html/


echo “${file} was synchronized”

done


5.给脚本赋予764权限: chmod 764 rsync.sh

6.a.启动脚本: nohup ./inotifywaitrsync.sh &

b.杀进程: ps -ef|grep inotify|grep -v grep|cut -c 9-15|xargs kill -9

c.查看进程是否启动: ps -ef|grep inotify

到此文件同步功能就实现了~~~



版权声明:本文为qq_34295227原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。