导航:首页 > 操作系统 > linux文件双向同步

linux文件双向同步

发布时间:2023-01-12 07:58:52

① 请教MySQL怎样实现双向同步

实现两个Mysql数据库之间同步同步原理:
MySQL 为了实现replication 必须打开bin-log 项,也是打开二进制的MySQL 日志记录选项。MySQL 的bin log 二

进制日志,可以记录所有影响到数据库表中存储记录内容的sql 操作,如insert / update / delete 操作,而不记录

select 这样的操作。因此,我们可以通过二进制日志把某一时间段内丢失的数据可以恢复到数据库中(如果二进制日

志中记录的日志项,包涵数据库表中所有数据,那么, 就可以恢复本地数据库的全部数据了)。 而这个二进制日志,

如果用作远程数据库恢复,那就是replication 了。这就是使用replication 而不用sync 的原因。这也是为什么要设

置bin-log = 这个选项的原因。

在同步过程中,最重要的同步参照物,就是同步使用那一个二进制日志文件,从那一条记录开始同步。下面就介绍

下怎样实现两个Mysql数据库之间的主从同步。

一、 概述
MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步、主从模式、

互相备份模式的功能。本文档主要阐述了如何在linux系统中利用mysql的replication进行双机热备的配置。
二、 环境
操作系统:Linux 2.6.23.1-42.fc8 # SMP(不安装XEN)
Mysql版本:5.0.45-4.fc8
设备环境:PC(或者虚拟机)两台
三、 配置
数据库同步复制功能的设置都在MySQL的配置文件中体现,MySQL的配置文件(一般是my.cnf):在本环境下

为/etc/my.cnf。
3.1 设置环境:
IP的设置:
A主机 IP:10.10.0.119
Mask:255.255.0.0
B主机 IP:10.10.8.112
Mask:255.255.0.0
在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service iptables status查看防火墙状态

。如果防火墙状态为仍在运行。使用service iptables stop来停用防火墙。如果想启动关闭防火墙,可以使用setup命

令来禁用或定制。
最终以两台主机可以相互ping通为佳。
3.2 配置A主(master) B从(slave)模式
3.2.1 配置A 为master
1、增加一个用户同步使用的帐号:
GRANT FILE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’;
GRANTREPLICATION SLAVE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’;
赋予10.10.8.112也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权

限才可以。
2、增加一个数据库作为同步数据库:
create databbse test;
3、创建一个表结构:
create table mytest (username varchar(20),password varchar(20));
4、修改配置文件:
修改A的/etc/my.cnf文件,在my.cnf配置项中加入下面配置:
server-id = 1 #Server标识
log-bin
binlog-do-db=test #指定需要日志的数据库

5、重起数据库服务:
service mysqld restart
查看server-id:
show variable like ‘server_id’;

② 如何实现Linux多台服务器间的文件双向同步

1.跨平台使用;
2.对内核和用户权限没有特别要求;
3.Unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;
4.只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。

③ 关于linux下文件实时双向同步问题

#server1地址:192.168.20.1
#shell:

#!/bin/bash
ip2="192.168.20.2"
ip3="192.168.20.3"
src2="/home/server1/"
dst2="/home/server2/"
dst3="/home/server3/"
/usr/local/bin/inotifywait-mrq-ecreate,delete,modify,move$src2|whilereadline;do
/usr/local/bin/unison-batch$src2ssh://$ip2/$dst2
/usr/local/bin/unison-batch$src2ssh://$ip3/$dst3
echo-n"$line">>/var/log/inotify.log
echo`date|cut-d""-f1-4`>>/var/log/inotify.log
done

server2地址192.168.20.2
shell
#!/bin/bash
ip1="192.168.20.1"
ip3="192.168.20.3"
src1="/home/server2/"
dst1="/home/server1/"
dst3="/home/server3/"
/usr/local/bin/inotifywait-mrq-ecreate,delete,modify,move$src1|whilereadline;do
/usr/local/bin/unison-batch$src1ssh://$ip1/$dst1
/usr/local/bin/unison-batch$src1ssh://$ip3/$dst3
echo-n"$line">>/var/log/inotify.log
echo`date|cut-d""-f1-4`>>/var/log/inotify.log
done

server3地址192.168.20.3
shell
#!/bin/bash
ip1="192.168.20.1"
ip2="192.168.20.2"
src3="/home/server3/"
dst1="/home/server1/"
dst2="/home/server2/"
/usr/local/bin/inotifywait-mrq-ecreate,delete,modify,move$src3|whilereadline;do
/usr/local/bin/unison-batch$src3ssh://$ip1/$dst1
/usr/local/bin/unison-batch$src3ssh://$ip2/$dst2
echo-n"$line">>/var/log/inotify.log
echo`date|cut-d""-f1-4`>>/var/log/inotify.log
done

④ 从linux中同步文件夹的软件

用rsync命令同步就行了
rsync可以让两个目录的内容一致,它同步只会同步有更新过的文件,减少传输量。可以是本机上的两个目录,也可以是本机的目录同步到服务器上,还可以是把服务器上的目录同步到本机上。
基本命令是 rsync 命令的参数 源目录 目的目录
rsync可以基于ssh协议来做,这样就省去了很多配置rsync server的麻烦,如果两个机器已经实现ssh无密码登陆,那么rsync就会提示输入密码,还有一种是通过密钥文件来实现免密码,例如下面
1、rsync -vzrtopg --progress -e ssh --delete 用户名@服务器IP:/var/www/dirA/ /var/bak/
2、rsync -vzrtopg --progress -e "ssh -i /path/pwd.pem" --delete 用户名@服务器IP:/var/www/dirA/ /var/bak/

就是把服务器上的dirA目录同步到本地的/var/bak目录下,其中方法1是用户已经做了ssh免密码登陆,方法2是通过密钥(存放在/path 下的pwd.pem文件)来同步

⑤ 求助: linux下怎么实现两个文件夹的同步(shell脚本)

提供一个思路给你
源文件夹和目标文件夹,通过ls -R -1
生成一个文件列表。
然后逐个进行对比
如果不同,则从源文件夹进行复制

其实双向同步是比较麻烦的。因为如果一旦两个文件夹的同一个文件都被修改了,那么就会出现冲突。
用脚本写,很麻烦...

最好的方法,是搞一个git或者svn一类的版本管理。

⑥ 如何通过rsync+sersync 实现同步备份

如何通过rsync+sersync 实现同步备份
3、rsync+sersync更快更节约资源实现web数据同步
4、unison+inotify实现web数据双向同步
一:为什么要实现同步备份
服务器上有些重要文件或数据时,可以把他们多备份一份到其他服务器上,这样就不怕数据或文件丢失了。
二:环境的搭建
服务器A:192.168.1.10 源服务器
服务器B: 192.168.1.20 目的服务器
我们要实现的就是把A服务器上的文件同步到B服务器上,从而实现备份。我们主要是在B服务器上安装配置rsync,在A服务器上安装配置sersync,通过sersync把文件推送到B服务器上
三:开始搭建
从B服务器开始:
1.关闭selinux,在/etc/sysconfig/selinux 这个文件,设置SELINUX=disable
2.防火墙开通873端口 -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -j ACCEPT
3.开始安装rsync
yum install rsync -y
4.配置rsync,rsync的配置文件是/etc/rsyncd.conf,配置如下:

图下方需要注意的地方:secrets file这个是配置同步的密码文件的。[rsynctest]这个是配置同步模块的名称,path是配置同步的目录,hosts allow是允许同步的主机,hosts deny:拒绝同步的主机
5.创建同步的用户与密码的文件,即上图中的secrets file这个配置选项中的文件。/etc/rsync.passwd,同进要设置这个文件的权限为600
echo "user:password" >> /etc/rsync.passwd
chmod 600 /etc/rsync.passwd
6.创建同步的目录:即上图中path配置选项中的目录。
mkdir /home/rsynctest
7.启动rsync
rsync --daemon --config=/etc/rsyncd.conf
接着重启一下xinetd
/etc/init.d/xinetd restart
8.配置开机启动 echo "rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.d/rc.local
到这样B服务器基本就配置完成了。
接着配置A服务器:
1.先到sersync官网下载sersync:http://sersync.sourceforge.net/
wget http://sersync.googlecode.com/files/sersync2.1_64bit_binary.tar.gz
2.安装sersync
# mkdir /usr/local/sersync
# mkdir /usr/local/sersync/conf
# mkdir /usr/local/sersync/bin
# mkdir /usr/local/sersync/log
# tar zxvf sersync2.5_32bit_binary_stable_final.tar.gz
# cd GNU-Linux-x86/
# cp confxml.xml /usr/local/sersync/conf
# cp sersync2 /usr/local/sersync/bin

3.创建密码文件,同B服务器一样,不过这个文件只要保存一个密码就行了,不用用户名,权限也是600
echo "password" >> /etc/rsync.passwd
chmod 600 /etc/rsync.passwd

4.配置sersync,配置文件就是上第二步复制的confxml.xml这个文中,路径在/usr/local/sersync/conf中
---------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>
<head version="2.5">
# 设置本地IP和端口
<host hostip="localhost" port="8008"></host>
# 开启DUBUG模式
<debug start="false"/>
# 开启xfs文件系统
<fileSystem xfs="false"/>
# 同步时忽略推送的文件(正则表达式),默认关闭
<filter start="false">
<exclude expression="(.*)\.svn"></exclude>
<exclude expression="(.*)\.gz"></exclude>
<exclude expression="^info/*"></exclude>
<exclude expression="^static/*"></exclude>
</filter>
<inotify>
# 设置要监控的事件
<delete start="true"/>
<createFolder start="true"/>
<createFile start="true"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="true"/>
<modify start="true"/>
</inotify>
<sersync>
# 本地同步的目录路径
<localpath watch="/data">
# 远程IP和rsync模块名
<remote ip="192.168.1.20" name="data"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
# rsync指令参数
<commonParams params="-auvzP"/>
# rsync同步认证
<auth start="true" users="user" passwordfile="/etc/rsync.passwd"/>
# 设置rsync远程服务端口,远程非默认端口则需打开自定义
<userDefinedPort start="false" port="874"/><!-- port=874 -->
# 设置超时时间
<timeout start="true" time="100"/><!-- timeout=100 -->
# 设置rsync+ssh加密传输模式,默认关闭,开启需设置SSH加密证书
<ssh start="false"/>
</rsync>
# sersync传输失败日志脚本路径,每隔60会重新执行该脚本,执行完毕会自动清空。
<failLog path="/usr/local/sersync/log/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
# 设置rsync+crontab定时传输,默认关闭
<crontab start="false" schele="600"><!--600mins-->
<crontabfilter start="false">
<exclude expression="*.php"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>
# 设置sersync传输后调用name指定的插件脚本,默认关闭
<plugin start="false" name="command"/>
</sersync>
# 插件脚本范例
<plugin name="command">
<param prefix="/bin/sh" suffix="" ignoreError="true"/> <!--prefix /opt/tongbu/mmm.sh suffix-->
<filter start="false">
<include expression="(.*)\.php"/>
<include expression="(.*)\.sh"/>
</filter>
</plugin>
# 插件脚本范例
<plugin name="socket">
<localpath watch="/opt/tongbu">
<deshost ip="192.168.138.20" port="8009"/>
</localpath>
</plugin>
<plugin name="refreshCDN">
<localpath watch="/data0/htdocs/cms.xoyo.com/site/">
<cdninfo domainname="ccms.chinacache.com" port="80" username="xxxx" passwd="xxxx"/>
<senrl base="http://pic.xoyo.com/cms"/>
<regexurl regex="false" match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/images"/>
</localpath>
</plugin>
</head>
------------------------------------------------------------------------------------------------------------------

5.创建同步目录:mkdir /home/rsynctest
6.设置环境变量:
# echo "export PATH=$PATH:/usr/local/sersync/bin/" >> /etc/profile
# source /etc/profile

7.启动sersync
sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml
注:重启操作如下:
# killall sersync2 && sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml

8.设置开机启动
# echo "sersync2 -r -d -o /usr/local/sersync/conf/confxml.xml" >> /etc/rc.local

更多详情可以看http://www.cnblogs.com/myblog1314/p/4569797.html这个里面的

⑦ linux unison占用哪个端口

Unison是windows和unix平台下都可使用的文件双向同步工具,它能使网络上的两个文件夹保持双向同步。它能自动处理两份拷贝中没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;
在linux环境下进行文件的双向同步,可以选择unison,具体配置过程:
1.配置双机SSH信任
2.在两台机器上分别安装unison
# rpm –ivh unison227-2.27.57-7.el5.2.x86_64.rpm
3.编辑配文件
#vim /root/.unison/default.prf
root = /home/unison/test /*本地同步目录
root =ssh://unison@192.168.10.4//home/unison/test/ /*远程主机同步目录
#force =
#ignore =
batch = true
#repeat = 1
#retry = 3
owner = true
group = true
perms = -1
fastcheck = false
rsync = false
sshargs = -C
xferbying = true
log = true
logfile =/home/unison/.unison/unison.log

注解如下:force表示会以本地所指定文件夹为标准,将该目录同步到远端。指定force参数就变成了单项同步,类似rsync。对于一个文件在两个同步文件夹中都被修改时,unison是不会去同步的。ignore = Path表示同步时忽略指定目录。batch = true,表示全自动模式,接受缺省动作,并执行。fastcheck=true表示同步时仅通过文件的创建时间来比较,false则比较两地文件的内容。owner = true //保持同步过来的文件属主group = true //保持同步过来的文件组信息
perms = -1 //保持同步过来的文件读写权限repeat = 1 //间隔1秒后,开始新的一次同步检查retry = 3 //失败重试sshargs = -C //使用ssh的压缩传输方式

Unison参数:-auto //接受缺省的动作,然后等待用户确认是否执行。-batch //batch mode,全自动模式,接受缺省动作,并执行。-ignore xxx //增加xxx到忽略列表中-ignorecase [true|false|default] //是否忽略文件名大小写-follow xxx //是否支持对符号连接指向内容的同步xferbying = true"-immutable xxx //不变目录,扫描时可以忽略-silent //安静模式-times //同步修改时间-path xxx参数//只同步-path参数指定的子目录以及文件,而非整个目录,-path可以多次出现。

3. 编辑shell脚本 unison

vi /home/unison/unison

#!/bin/sh
#

pid10=`ps-ef|grep /usr/bin/unison|grep -v grep|wc -l`
if [$pid10 -eq 0 ]; then
/usr/bin/unison >/dev/null 2>&1&
fi
exit 0

4.订制任务运行unison,每2分钟或某一个间隔时间就同步一次:
crontab –e
*/2 * * * * /home/unison/unison

阅读全文

与linux文件双向同步相关的资料

热点内容
手机视频文件分文件夹 浏览:628
vivos9e文件加密 浏览:695
智慧云服务器如何设置 浏览:103
命令行msvc编译器 浏览:829
ai加密币 浏览:143
进销存和财务一体的app哪个好 浏览:607
java中exception 浏览:808
中国结的编程方法 浏览:284
33岁还是程序员 浏览:259
法语语法命令式 浏览:896
哪个直播app有美颜 浏览:278
云阳哪里有学编程的 浏览:64
传奇单机gm命令不存在 浏览:753
得力文件夹侧面标签尺寸 浏览:674
格式工厂转换pdf格式 浏览:526
什么app可以教你化妆 浏览:545
程序员加班996怎么过 浏览:827
有个什么tv美女直播app 浏览:860
编译gcc比较全的参数 浏览:204
stvd取消编译器优化 浏览:423