文件同步 单向rsync 双向unison 监控inotifywait 免密登录
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 免密登录的更多相关文章
- 烂泥:linux文件同步之rsync学习(一)
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 这几天刚好有空就打算开始学习linux下的文件同步软件rsync,在学习rsync时,我们可以分以下几个步骤进行: 1. rsync是什么 2. rsy ...
- Linux 双向 SSH 免密登录
原理 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录.双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他所有 ...
- Linux/(centos、unix等)的ssh双向免密登录原理和实现
原理: 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录. 双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他 ...
- 【Linux】文件权限,ssh免密登录
1.文件/文件夹权限 例子: -rw-r--r--. 1 root root 12288 Aug 21 09:50 aliases.db drwxr-xr-x. 2 root root 4096 Au ...
- 配置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 ...
- scp 免密登录ssh-copy-id 如何使用非22端口 + rsync 同步远程机器的文件到本地
其中:id_rsa为私钥文件,id_rsa.pub为公钥文件 ssh-copy-id -i ~/.ssh/id_rsa.pub "-p 2122 root@IP " 我的:s ...
- 【实时文件同步】rsync+inotify-tools的安装与配置
http://blog.csdn.net/yakson/article/details/52044403
- 从主机A得到id_rsa.pub文件,在主机B创建用户danny加入该文件,实现主机A免密登录主机B
操作步骤: 1.主机A 生成公钥id_rsa.pub文件并导出该文件 root@mytest:~# ssh-keygen Generating public/private rsa key pair. ...
- centos7主机间免密登录、复制文件
下面实例为三个节点间 1.分别在三个节点设置域名映射 vi /etc/hosts 在文件末尾追加 192.168.10.121 node1 192.168.10.122 node2 192.168. ...
随机推荐
- webpack究竟是什么
在很久很久以前,当我们写一个web网页的时候,js实现的逻辑相对是比较弱的.但随着前端技术的发展,前端能实现的内容越来越多.在js里面加了非常非常多的逻辑,于是呢,我们就发现我们通过这种面向过程的方式 ...
- CF311E Biologist
嘟嘟嘟 很显然是一道最小割模型. 做完几道题后.图的大概就能想出来了: 1.对于每一个动物,如果是0,就和s连一条边,否则向t连一条边. 2.对于每一个任务,题中要求最大利润,可以转化成最小损失. ( ...
- PHP中将字符串转化为整数(int) intval() printf()
int <?php $foo = "1"; // $foo 是字符串类型 $bar = (int)$foo; // $bar 是整型 ?> intval <?ph ...
- BZOJ 2120 数颜色 【带修改莫队】
任意门:https://www.lydsy.com/JudgeOnline/problem.php?id=2120 2120: 数颜色 Time Limit: 6 Sec Memory Limit: ...
- 9、SpringBoot-CRUD国际化
1).编写国际化配置文件: 2).使用ResourceBundleMessageSource管理国际化资源文件 3).在页面使用fmt:message取出国际化内容 步骤: 1).编写国际化配置文件, ...
- Kali-linux设置ProxyChains
ProxyChains是Linux和其他Unices下的代理工具.它可以使任何程序通过代理上网,允许TCP和DNS通过代理隧道,支持HTTP.SOCKS4和SOCKS5类型的代理服务器,并且可配置多个 ...
- DataTable和Json的相互转换
1 #region DataTable 转换为Json字符串实例方法 2 /// <summary> 3 /// GetClassTypeJosn 的摘要说明 4 /// </sum ...
- 【luogu P3946 ことりのおやつ】 题解
题目链接:https://www.luogu.org/problemnew/show/P3946 交好几遍是因为虽然能过一直有提醒..强迫症qwq #include <bits/stdc++.h ...
- Java中,如何跳出当前的多重嵌套循环
在最外层循环前加一个标记如A,然后用break A;可以跳出多重循环.(Java中支持带标签的break和continue语句)
- react native基本调试技巧
刚入坑RN,很多小坑都要摸索很久才明白.今天咱们就来填console.log()的坑. 废话不多说,开始讲步骤!! 1.在模拟器中打开 开发者菜单,选择 Debug JS Remotely,会自动在浏 ...