導航:首頁 > 操作系統 > 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://[email protected]//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文件雙向同步相關的資料

熱點內容
asp用戶注冊源碼 瀏覽:48
什麼是照片壓縮文件 瀏覽:392
java調用js代碼 瀏覽:979
崑山市民app怎麼修改身份信息 瀏覽:779
php登陸次數 瀏覽:744
python字元轉成數字 瀏覽:822
海川用的是什麼伺服器 瀏覽:376
口才是練出來的pdf 瀏覽:458
雲伺服器哪個公司性價比高 瀏覽:517
源碼論壇打包 瀏覽:558
php怎麼做成word 瀏覽:692
python批量生成密鑰 瀏覽:492
程序員要不要考社區人員 瀏覽:150
app的錢怎麼充q幣 瀏覽:813
android銀行卡識別 瀏覽:756
怎麼在app投放廣告 瀏覽:11
手機文件管理怎麼看app名稱 瀏覽:192
程序員學數學哪本書最全 瀏覽:789
macd實戰選股公式源碼 瀏覽:644
加密晶元的計算方法 瀏覽:192