1、负载均衡中文件同步必不可少,我这边选择rsync来实现文件同步

  rsync同步文件机制更适用于单向文件同步,可配合unison实现双向同步功能。

实现同步的两种方法

一:ssh方法

  rsync -avz 用户名@服务器ip /文件地址 本地目录

  回车

  input password

  

二:rsync同步

  首先安装yum install rsync

  创建 /etc/rsyncd.conf

uid = nobody
gid = nobody
use chroot = yes
max connections =
pid file = /var/run/rsyncd.pid
exclude = lost+found/
transfer logging = yes
timeout =
ignore nonreadable = yes
dont compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2 [data]
path = /home/cloud-user/rsync
comment = ftp export area
read only = yes
auth users = username
secrets file = /etc/rsync_user.pas

创建用户密码文件

vim /etc/rsync_user.pas

username:password

启动同步功能

rsync --daemon

另一台服务器同步

rsync -acz username@ip::data 本地目录
回车
input password

注意:对于auth 失败;最可能的原因是rsync_user.pas的权限 必须为600

对于上行同步和下行同步失败还有可能是因为权限的问题,对于权限有两道检测;1:rsync配置文件的对于该用户的权限为只读;2:服务器对于rsync用户在同步的文件夹的权限不够;

上行同步

rsync -avz 本地目录 username@ip:服务器目录

免密登陆

方式一:ssh免密登录

ssh-keygen -t rsa
//回车、回车、回车

系统会生成.ssh目录 ,该目录下有三个文件

  id_rsa : 生成的私钥文件

  id_rsa.pub : 生成的公钥文件

  know_hosts : 已知的主机公钥清单

提交自己的用户名和密码去服务器

ssh-copy-id username@ip //回车
input password

然后可以通过ssh登录

ssh username@ip

二:rsync免密同步

系统中有一个环境变量RSYNC_PASSWORD 初始为空

设置RSYNC_PASSWORD密码

export RSYNC_PASSWORD=password

然后通过rsync同步

rsync -acz username@ip::data 本地目录

如果要实现实时同步需要先监控文件夹中的变化

使用inotifywait

编译安装inotify-tools-3.13

开始监控

//监控;监控/home/cloud-user/rsync/ 的增加和删除操作

inotifywait -mrq -e create,delete /home/cloud-user/rsync/
//同步;将本地home/cloud-user/rsync中的文件同步到改ip下的home/cloud-user/rsync中
rsync -avz /home/cloud-user/rsync/* cloud-user@IP:/home/cloud-user/rsync

编写inotifywait.sh脚本文件

#!bin/bash
inotifywait="inotifywait -mrq -e create,delete /home/cloud-user/rsync/"
rsync="rsync -avz /home/cloud-user/rsync/* cloud-user@IP:/home/cloud-user/rsync"
$inotifywait | while read directory event file
do
$rsync
done
//执行脚本
bash inotifywait.sh

rsync 更适合单向同步

如果要实现双向同步,可使用unison

yum install unison

编写脚本inotifywait_unison.sh

#!bin/bash
inotifywait="inotifywait -mrq -e create,delete,modify,move /home/cloud-user/rsync/"
unison="unison -batch /home/cloud-user/rsync/ ssh://IP//home/cloud-user/rsync"
$inotifywait | while read directory event file
do
$unison
done

注意shell文件权限

执行:

nohup bash inotifywait_unison.sh &

另一台服务也是相同操作,注意修改脚本文件中的ip

文件同步 单向rsync 双向unison 监控inotifywait 免密登录的更多相关文章

  1. 烂泥:linux文件同步之rsync学习(一)

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 这几天刚好有空就打算开始学习linux下的文件同步软件rsync,在学习rsync时,我们可以分以下几个步骤进行: 1. rsync是什么 2. rsy ...

  2. Linux 双向 SSH 免密登录

    原理 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录.双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他所有 ...

  3. Linux/(centos、unix等)的ssh双向免密登录原理和实现

    原理: 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录. 双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他 ...

  4. 【Linux】文件权限,ssh免密登录

    1.文件/文件夹权限 例子: -rw-r--r--. 1 root root 12288 Aug 21 09:50 aliases.db drwxr-xr-x. 2 root root 4096 Au ...

  5. 配置hadoop用户SSH无密码登陆 的2种方式 落脚点是 可以ssh免密进入的主机名写入动作发出主机的 known_hosts,而被无密进入主机的authorized_keys文件 免密登录

    cat /proc/versionLinux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version ...

  6. scp 免密登录ssh-copy-id 如何使用非22端口 + rsync 同步远程机器的文件到本地

    其中:id_rsa为私钥文件,id_rsa.pub为公钥文件 ssh-copy-id  -i ~/.ssh/id_rsa.pub  "-p 2122  root@IP " 我的:s ...

  7. 【实时文件同步】rsync+inotify-tools的安装与配置

    http://blog.csdn.net/yakson/article/details/52044403

  8. 从主机A得到id_rsa.pub文件,在主机B创建用户danny加入该文件,实现主机A免密登录主机B

    操作步骤: 1.主机A 生成公钥id_rsa.pub文件并导出该文件 root@mytest:~# ssh-keygen Generating public/private rsa key pair. ...

  9. centos7主机间免密登录、复制文件

    下面实例为三个节点间 1.分别在三个节点设置域名映射 vi /etc/hosts  在文件末尾追加 192.168.10.121 node1 192.168.10.122 node2 192.168. ...

随机推荐

  1. webpack究竟是什么

    在很久很久以前,当我们写一个web网页的时候,js实现的逻辑相对是比较弱的.但随着前端技术的发展,前端能实现的内容越来越多.在js里面加了非常非常多的逻辑,于是呢,我们就发现我们通过这种面向过程的方式 ...

  2. CF311E Biologist

    嘟嘟嘟 很显然是一道最小割模型. 做完几道题后.图的大概就能想出来了: 1.对于每一个动物,如果是0,就和s连一条边,否则向t连一条边. 2.对于每一个任务,题中要求最大利润,可以转化成最小损失. ( ...

  3. PHP中将字符串转化为整数(int) intval() printf()

    int <?php $foo = "1"; // $foo 是字符串类型 $bar = (int)$foo; // $bar 是整型 ?> intval <?ph ...

  4. BZOJ 2120 数颜色 【带修改莫队】

    任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2120 2120: 数颜色 Time Limit: 6 Sec  Memory Limit: ...

  5. 9、SpringBoot-CRUD国际化

    1).编写国际化配置文件: 2).使用ResourceBundleMessageSource管理国际化资源文件 3).在页面使用fmt:message取出国际化内容 步骤: 1).编写国际化配置文件, ...

  6. Kali-linux设置ProxyChains

    ProxyChains是Linux和其他Unices下的代理工具.它可以使任何程序通过代理上网,允许TCP和DNS通过代理隧道,支持HTTP.SOCKS4和SOCKS5类型的代理服务器,并且可配置多个 ...

  7. DataTable和Json的相互转换

    1 #region DataTable 转换为Json字符串实例方法 2 /// <summary> 3 /// GetClassTypeJosn 的摘要说明 4 /// </sum ...

  8. 【luogu P3946 ことりのおやつ】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3946 交好几遍是因为虽然能过一直有提醒..强迫症qwq #include <bits/stdc++.h ...

  9. Java中,如何跳出当前的多重嵌套循环

    在最外层循环前加一个标记如A,然后用break A;可以跳出多重循环.(Java中支持带标签的break和continue语句)

  10. react native基本调试技巧

    刚入坑RN,很多小坑都要摸索很久才明白.今天咱们就来填console.log()的坑. 废话不多说,开始讲步骤!! 1.在模拟器中打开 开发者菜单,选择 Debug JS Remotely,会自动在浏 ...