Linux文件同步

環(huán)境

*CentOS 7:

  1. 主機(jī)1: 10.99.11.12
  2. 主機(jī)2: 10.99.11.20

配置雙機(jī)信任

# 10.99.11.12
ssh-keygen  # 生成公鑰和私鑰
ssh-copy-id root@10.99.11.20  

ssh-copy-id root@<另一主機(jī)>: 復(fù)制公鑰到另一臺主機(jī)上~/.ssh/authorized_keys , 默認(rèn)使用~/.ssh/id_rsa.pub公鑰, 可用-i參數(shù)指定公鑰

rsync

...

Unison + inotify-tools

參考: unison + inotify 實現(xiàn)文件實時雙向同步部署步驟

Unison簡介

Unison是Windows、Linux以及其他Unix平臺下都可以使用的文件同步工具,它能使兩個文件夾(本地或網(wǎng)絡(luò)上的)保持內(nèi)容的一致。Unison擁有與其它一些同步工具或文件系統(tǒng)的相同的特性,但也有自身的特點:

  1. 跨平臺使用;

  2. 對內(nèi)核和用戶權(quán)限沒有特別要求;

  3. Unison是雙向的,它能自動處理兩分拷貝中更新沒有沖突的部分,有沖突的部分將會顯示出來讓用戶選擇更新策略;

  4. 只要是能連通的兩臺主機(jī),就可以運行unison,可以直接使用socket連接或安全的ssh連接方式,對帶寬的要求不高,使用類似rsync的壓縮傳輸協(xié)議。

安裝和使用

yum install unison -y

/usr/bin/unison <本地目錄> ssh://remoteUser@<IP>/<遠(yuǎn)程目錄的絕對路徑>

mkdir ~/test
unison /root/test ssh://root@10.99.10.20//root/test

配置文件

使用后會在生成當(dāng)前用戶的配置文件~/.unison/default.prf

vim ~/.unison/default.prf

#!/bin/bash

# this script is created by yourname.
# Unison preferences file 

#root = /root/test 

#root = ssh://root@192.168.16.2//root/test

#force = 

#ignore = 

batch = true

#repeat = 1 

#retry = 3 

owner = true  # 保持同步過來的文件屬性

group = true  # 保持同步過來的文件組信息

perms = -1  # 保持同步過來的文件讀寫權(quán)限

fastcheck = false

rsync = false  # 激活rsync傳輸模式

sshargs = -C  # 使用ssh的壓縮傳輸方式

xferbycopying = true

log = true

logfile = /root/.unison/unison.log 

可以用unison --help來查看具體的一些命令

兩個參數(shù)root=...是指定源和目標(biāo), 和命令行中寫法一致; 也可以配置多個.prf文件, 通過unison <配置文件名>(不加配置文件名就是default)

inotify-tools

  • 安裝
yum install inotify-tools
  • 同步腳本

#!/bin/bash
LOCAL_DIR="/root/test"
REMOTE_DIR="/root/test/"
REMOTE_USER="root"
UNISION="/usr/bin/unison"
INOTIFY="/usr/bin/inotifywait"
IP_LIST_FILE="/root/iplist.txt"  # ip地址文件
ATTRIBUTES="modify,delete,create,attrib"

${INOTIFY} -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e ${ATTRIBUTES} ${LOCAL_DIR} | while read files
do
    for IPADDR in `sed '/^$/d' ${IP_LIST_FILE}`
    do
        ${UNISION} "${LOCAL_DIR}" "ssh://${REMOTE_USER}@${IPADDR}/${REMOTE_DIR}"
    done
done

  • 執(zhí)行腳本

建議用supervisor

nohup ./inotify.sh &

兩臺機(jī)器配置基本相同(除了改下IP)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、架構(gòu)設(shè)計及環(huán)境規(guī)劃: 架構(gòu)設(shè)計圖: 架構(gòu)設(shè)計說明: 1. 基礎(chǔ)架構(gòu)為LAMP環(huán)境,采用keepalived實現(xiàn)...
    Bogon閱讀 10,830評論 1 10
  • 配置rsync 同步數(shù)據(jù) rpm包安裝rsync及配置 [root@Hammer home]# rpm -qa |...
    igool閱讀 338評論 0 0
  • 4層負(fù)載均衡和7層負(fù)載均衡的區(qū)別。A、rsync的安裝;軟件包安裝# yum install rsync 注...
    米開朗基樂閱讀 3,837評論 0 1
  • 隨著應(yīng)用系統(tǒng)規(guī)模的不斷擴(kuò)大,對數(shù)據(jù)的安全性和可靠性也提出的更好的要求,rsync在高端業(yè)務(wù)系統(tǒng)中也逐漸暴露出了很多...
    jimlin閱讀 1,233評論 0 2
  • 轉(zhuǎn)載自駿馬金龍的博客 2.1 說在前面的話 rsync官方網(wǎng)站 rsync是可以實現(xiàn)增量備份的工具。配合任務(wù)計劃,...
    whisshe閱讀 4,012評論 0 3

友情鏈接更多精彩內(nèi)容