CentOS7部署lsyncd+rsync實現服務器文件實時同步

Lsyncd是什么?

Github:axkibe/lsyncd
官方文檔:Lsyncd – Live Syncing (Mirror) Daemon

創(chuàng)新互聯(lián)是專業(yè)的遠安網站建設公司,遠安接單;提供網站設計、成都做網站,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行遠安網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!

  • Lysncd即Live Syncing Daemon,它是開源的數據實時同步工具(后臺進程),基于inotify和rsync。
  • Lsyncd是一個輔助文件同步工具。它通過監(jiān)聽系統(tǒng)的文件變化事件,調用rsync進行同步。注意“輔助”二字,輔助的意思是:同步文件本身并不是由lsyncd來實現,它只負責監(jiān)測哪些文件改變了,進而調用rsync來完成同步,真正同步文件的是rsync,如果你不知道什么是rsync,請查看使用sersync +rsync進行實時文件同步中的rsync部分。

Lsyncd的三種同步模式

  • default.rsync
  • default.rsyncssh
  • default.direct

為了方便,我們直接把它們稱為rsync、rsyncssh、direct。

1. rsync同步模式

首先,你需要知道rsync的基本用法,以下的rsync命令就可以把文件從本地的“/data/wwwroot”目錄推送到遠程的“remote@192.168.1.6::wwwroot/”目錄中,運行在“rsync同步模式”的lsyncd正是通過組裝類似這樣的命令來同步文件的:

rsync -avz --partial --delete /data/wwwroot remote@192.168.1.6::wwwroot/ --password-file=/etc/rsyncd.password

有人可能會疑惑,既然rsync本身就可以同步,那要lsyncd干嘛?有兩個原因:

  • 實時同步。
  • 減少rsync掃描文件帶來的延時和性能損耗。
  • rsync無法知道“什么時候同步”,因為rsync只有執(zhí)行同步命令的時候,才會去掃描文件判斷哪些文件被修改了,只能建立一個定時任務,每隔一定的時間(比如5分鐘,10分鐘等等)去執(zhí)行一次同步,這樣雖然能同步,但卻“不實時”。
  • lsyncd就可以監(jiān)聽文件的修改,換句話說,某個文件修改了,lsyncd會得到通知(原理是使用linux系統(tǒng)的inotify/fsevents功能),得到通知之后,再去調用rsync把修改的文件進行同步(即組裝一句rsync同步語句并執(zhí)行),達到“實時同步”的效果。
  • lsyncd調用rsync同步命令的時候,會用rsync的--include-from=FILE之類的選項來指定要同步哪些文件,這樣可以達到“減少rsync掃描文件帶來的延時和性能損耗”。
  • 為什么這么說呢?因為如果讓rsync自己去查詢哪些文件改變了,需要消耗較多的時間和服務器資源,試想一下,在100萬個文件中,有一個文件添加了一個英文的句號.,如果沒有l(wèi)syncd告訴rsync改變的是這個文件,那rsync就要去掃描100萬個文件來找出這個僅僅多了一個.的文件,雖然rsync的查找效率很高,但這個查找是非常沒有必要的,這就是為什么lsyncd能“減少rsync掃描文件帶來的延時和性能損耗”。

2. rsyncssh同步模式
明白了rsync同步模式,就不難明白rsyncssh模式,因為rsync本身就是有ssh模式的,lsyncd同樣是負責監(jiān)聽哪些文件變化了,然后組裝rsync同步命令進行同步。
rsync的ssh模式,主要的好處是用于文件移動的時候。

  1. 假設我現在有兩臺機A和B,A中的test目錄文件變化會自動同步到B中的test目錄,現在A、B的test目錄文件如下:
    ├── dir1
    │   ├── aa.txt
    │   ├── bb.txt
    │   └── cc.txt
    └── dir2
    └── dd.txt
  2. 假設現在把A機的bb.txt和cc.txt從dir1移動到dir2,即變成如下所示的狀態(tài):
    ├── dir1
    │   └── aa.txt
    └── dir2
    ├── bb.txt
    ├── cc.txt
    └── dd.txt
  • 假設使用普通的rsync模式,那么rsync會先刪除B機中的dir1中的bb.txt和cc.txt,并把A機中的bb.txt和cc.txt文件上傳到B機中的dir2目錄,達到同步的效果。
  • 但如果你rsync運行在ssh模式,那么它會直接在B機中把dir1中的bb.txt和cc.txt用mv命令直接移動到dir2目錄,A機沒有向B機傳任何數據,效率顯而易見(特別是移動的數據特別多的時候更明顯)。
  • 這樣看,rsyncssh模式應該是最好的,但它卻有一個缺點,就是同步進程只能是單進程(maxProcesses=1),而rsync模式是可以多進程同步的(速度快)。

3. direct同步模式
這個模式用于本地的兩個目錄之間同步,不用于遠程服務器同步。lsyncd同樣是監(jiān)聽文件變化事件,然后把變化的文件從源目錄同步到目標目錄,同步的命令,就是linux系統(tǒng)本身的命令,比如cp、rm、mv,增加了文件用cp拷過去,刪除了文件,那邊也用rm刪除,移動了文件,那邊也用mv移動。

簡述如何同步

假設有A和B兩臺機,A同步到B,則:

  • A:安裝lsyncd+rsync,并運行l(wèi)syncd服務;
  • B:只需要安裝rsync,并運行rsyncd服務;

A中的lsyncd監(jiān)聽到文件變化后,調用A中的rsync向B推送文件,B因為運行有一個rsyncd服務,所以可以接收這個推送,從而完成文件的同步。

另外還可以有C、D、E、F、……,它們都與B相同,只要運行rsyncd服務即可,A上可配置一次性推送向多臺機器。

安裝lsyncd

CentOS用yum、其他的用各自的包管理軟件,比如Ubuntu用apt-get,Mac用brew install:

yum -y install rsync lsyncd

Lsyncd安裝好之后,默認的配置文件在/etc/lsyncd.conf,另外還有些配置的例子在/usr/share/doc/lsyncd-2.2.2/examples下:

/usr/share/doc/lsyncd-2.2.2/examples/
├── lalarm.lua
├── lbash.lua
├── lecho.lua
├── lftp.lua
├── lgforce.lua
├── limagemagic.lua
├── lpostcmd.lua
├── lrsync.lua
├── lrsyncssh.lua
└── lsayirc.lua

0 directories, 10 files

/etc/lsyncd.conf也可以寫成/etc/lsyncd.lua,它本身就是用lua(一種腳本語言)寫配置的。

Lsyncd配置文件詳解

配置文件是使用lua語言寫的,所以注釋要用lua語言的注釋符號,即兩個橫杠--。

配置文件主要有三部分:

  • settings:lsyncd本身的一些設置,比如日志文件路徑,同步進程數,是否后臺運行等等。
  • sync:同步相關的設置,比如從哪同步到哪,要忽略哪些文件,多久同步一次等等
  • rsync:這部分是在sync里面的,它主要配置rsync本身的一些選項。

以下是兩個官方的配置文檔:

  • 配置Settings:The Configuration File
  • 配置sync和rsync:Config Layer 4: Default Config

/etc/lsyncd.conf中的默認內容沒什么價值,可以全部刪除,下邊我們來講解配置文件要怎么寫。

default.rsync模式配置文件:
-- 由于該配置文件實際上是lua語言的語法,所以寫注釋要用--,--是lua語言的注釋符號
-- Lsyncd本身的配置

settings {
    -- 指定日志文件位置
    logfile = "/var/log/lsyncd/lsyncd.log",

    -- 指定狀態(tài)文件位置
    statusFile = "/var/log/lsyncd/lsyncd.status",

     -- 是否以后臺的方式運行,注意它是nodaemon,所以是雙重否定,如果填false,意思就是“不要不后臺運行”(即后臺運行),非后臺運行一般用于調試,把rsync的verbose也設置為true,這樣會把同步的細節(jié)輸出到控制臺,方便調試
    nodaemon = false,

    -- 系統(tǒng)inotify指定監(jiān)聽的變化,什么事件才同步。CloseWrite表示文件關閉的時候同步(創(chuàng)建文件,修改文件后保存都會觸發(fā)CloseWrite事件),可以是"Modify"、"CloseWrite" (默認) 或"CloseWrite or Modify"。
    inotifyMode = "CloseWrite",

    -- 最大同步進程數(default.rsyncssh模式,則必須設置為1,這就是rsyncssh模式的缺點了,如果是default.rsync模式則可以設置大于1,這樣會有多個同步進程,速度更快)
    maxProcesses = 8,
    -- maxProcesses = 1,

    -- 配合下面的delay選項使用,delay單位是秒,當delay時間到了,不管maxDelays設置多少,都會同步,同樣,當maxDelays達到了設定值,不管是否到delay時間,都會同步,即兩個選項有一個滿足即會觸發(fā)同步,為了實時同>步,我們一般設置為1,表示即使只有一個文件改變也同步
    maxDelays = 1,
}

---- 同步配置default.rsync模式(比如配置從哪同步到哪,忽略哪些文件,多久同步一次等),可以有多個sync模塊,每個模塊用于設置一臺目標機器
sync {
    -- 有default.rsync/default.direct/default.rsyncssh三種模式,我們默認都用default.rsync即可。
    default.rsync,

    -- 同步源目錄(本機某個目錄)
    source = "/data/wwwroot",

    -- 同步目標地址,不同同步模式有不同寫法,由于絕大多數情況都采用rsync同步,所以這里寫的是rsync的同步地址
    target = "remote@192.168.1.6::wwwroot",

    -- 默認true,允許刪除目錄服務器中的某些文件(即刪除“那些在源服務器中不存在的文件”),可選值有: true/false/startup/running,startup就是只在啟動lsyncd服務的時候判斷目標服務器中有哪些文件在源服務器中沒有,然后把這些文件刪除,但啟動之后如果目標服務器又新增了文件,這些文件即使在源服務器不存在,也不會被刪除;而running與startup正好相反,是在啟動的時候不會刪除,啟動之后會刪除,true=running+startup,false相當于running和startup都不做。
    -- delete = true,

    -- 哪些文件不同步(可用正則))
    exclude = {
        '.**',
        '.git/**',
        '*.bak',
        '*.tmp',
       'runtime/**',
       'cache/**'
    },

    -- 與上邊的maxDelays配合,maxDelays是累計事件數(單位:個),delay是時間(單位:秒),這兩個只要有一個符合條件就會同步一次,但為了確保實時同步,maxDelays我們一般設置為1,也就是只要有一個文件變化事件,就會同步一次,而delay是比較大的,默認是15。當然,假如我們把maxDelays設置為100,那可能15秒到了也沒有達到100個文件變化,但由于到達時間了,它也會同步。
    delay = 15,

    -- 當init = false時只同步進程啟動以后發(fā)生改動事件的文件,原有的目錄即使有差異也不會同步,如果為true,則啟動后如果源目錄與目標目錄的文件有差異都會同步,默認為true。
    -- init = false,

    -- rsync的配置(這是default.rsync模式,如果是default.rsyncssh模式,該模塊的配置會有所不同)
    rsync = {
        -- rsync可執(zhí)行文件的絕對路徑
        binary = "/usr/bin/rsync",

        -- 密碼文件路徑(default.rsyncssh模式不需要該項)
        password_file = "/etc/rsyncd.password",

        -- 打包后再同步(注意,打包不等于壓縮,打包即可以壓縮也可以不壓縮)
        archive = true,

        -- 壓縮后再同步
        compress = false,

        -- 輸出同步信息(由于是后臺執(zhí)行,所以沒必要輸出,如果非后臺執(zhí)行可以設置為true,非后臺執(zhí)行主要用于調試)
        verbose  = false,

        -- 由于rsync有非常多的選項(請自己rsync --help查看),部分非主要選項可以用_extra的方式指定,雙引號引住,逗號分隔(bwlimit中的bw是bandwith,即帶寬,整個意思是帶寬限制,omit-link-times忽略符號鏈接的修改時間)
        _extra = {"--bwlimit=200", "--omit-link-times"}
    }
}

解釋幾個選項:

  • target = “remote@192.168.1.6::wwwroot”,192.168.1.6是rsync服務器端的ip,remote是服務器端配置的用戶名,wwwroot是服務器端的模塊名。
  • password_file = “/etc/rsyncd.password”, rsyncd.password中的內容就是一個字符串(比如:123456,你也不用寫password=123456),是服務器端的密碼(rsync服務器端可以配置賬號和密碼),需使用命令chmod賦予文件400權限。

exclude再可以用excludeFrom來代替,這樣就可以在外部文件單獨寫要排除同步的文件:

excludeFrom = "/etc/lsyncd_exclude.lst",

外部排除同步文件/etc/lsyncd_exclude.lst的寫法:

.svn
Runtime/*
Uploads/*

若某個事件的路徑中的某些片段匹配這些文本,那么排除。比如/bin/foo/bar匹配規(guī)則foo。
– 如果規(guī)則以/開始,那么只匹配路徑的開始
如果規(guī)則以/結束,那么只匹配路徑的結束
– ? 匹配任何不是/的字符
– *匹配0或多次非/字符
– **匹配任何字符0或多次。

rsync服務器端配置

文章開頭已經說過A、B兩臺機各自要安裝什么,現在A機的操作前面已經講過了,B機的操作,由于之前寫過文章,這里就不再重復,請直接看:rsync的使用。

開放端口
rsync的默認端口是873,如果你是CentOS7的firewalld防火墻,可以用以下方法允許873端口:

firewall-cmd --zone=public --add-port=873/tcp --permanent
firewall-cmd --reload

如果你是本地做實驗覺得防火墻麻煩,也可關閉防火墻:
systemctl stop firewalld

啟動lsync服務
如何啟動的官方文檔:Invoking。
lsync配置文件寫好后,就可以啟動它了,由于我們有配置文件,所以啟動方式是:
lsyncd -log Exec /etc/lsyncd.conf

-log Exec表示記錄所有進程的日志(因為如果maxProcesses大于1就會有多個同步進程)
啟動后,它只輸出了:
21:46:54 Normal: --- Startup, daemonizing ---

查看是否啟動成功:
ps aux | grep lsyncd

如何進程正常運行,可以看到:
root 5238 7.7 0.6 13348 3340 ? Ss 21:46 0:15 lsyncd /etc/lsyncd.conf

查看log文件,你會看到已經同步了很多文件:
tail -100f /var/log/lsyncd/lsyncd.log

但其實在CentOS7系統(tǒng)中,我們一般不直接啟動,而是用systemctl命令來啟動:
systemctl start lsyncd

查看啟動狀態(tài):
systemctl status lsyncd

停止:
systemctl stop lsyncd

重啟:
systemctl restart lsyncd

設置開機自啟動:
systemctl enable lsyncd


default.rsyncssh模式配置文件:

相比rsync,主要修改的有以下幾點:

  1. settings中的maxProcesses必須為1,否則無法啟動,并報以下錯誤:
    Error: error preparing /etc/lsyncd.conf: /etc/lsyncd.conf:69: default.rsyncssh must have maxProcesses set to 1.
  2. rsync中的password_file去掉(或注釋掉),因為ssh已經不需要用rsync的password來驗證了。
  3. sync添加一個host,格式就是ssh登錄的格式(即:username@<ip_addr>這樣的格式)
  4. 把target改成targetdir,值的格式就是目標服務器的絕對地址,比如:/data/wwwroot/(最后一個斜杠可要可不要,最好要,因為這樣一看就知道是目錄)。
  5. host指定的ssh登錄用戶需要具有targetdir指定的目錄的權限,如果啟動不了請嘗試用root,并且設置該用戶免密登錄:Linux-使用ssh免密碼登錄,不配置免密碼登錄將會無法啟動。
  6. 免密碼登錄需要注意:假設你A機使用root啟動lsyncd(其實基本上都得用root),而你host=zhangsan@12.34.56.78(B機),那么你必須保證A機能在root用戶下ssh 到B機。
  7. host指定ssh用戶,必須與目標文件夾需要的用戶相同,比如很多時候,wwwroot網站目錄我們都使用www:www這樣的用戶和組,所以你就必須用這個用戶來同步,否則同步后創(chuàng)建出來的文件并不是這個權限,權限不對則網站可能會出問題。
-- 由于該配置文件實際上是lua語言的語法,所以寫注釋要用--,--是lua語言的注釋符號
-- Lsyncd本身的配置
settings {
    -- 指定日志文件位置
    logfile = "/var/log/lsyncd/lsyncd.log",

    -- 指定狀態(tài)文件位置
    statusFile = "/var/log/lsyncd/lsyncd.status",

    -- inotify事件模式,什么事件才同步,CloseWrite表示文件關閉的時候同步(創(chuàng)建文件,修改文件后再關閉(如vim的:wq)都會觸發(fā)CloseWrite事件)
    inotifyMode = "CloseWrite",

    -- 最大同步進程數(default.rsyncssh模式必須設置為1,否則無法啟動,default.rsync模式可以設置大于1)
    maxProcesses = 1,

    -- 配合下面的delay選項使用,delay單位是秒,當delay時間到了,不管maxDelays設置多少,都會同步,同樣,當maxDelays達到了設定值,不管是否到delay時間,都會同步,即兩個選項有一個滿足即會觸發(fā)同步,為了實時同>步,我們一般設置為1,表示即使只有一個文件改變也同步
    maxDelays = 1,

    -- 是否以后臺的方式運行,注意它是nodaemon,所以是雙重否定,如果填false,意思就是“不要不后臺運行”(即后臺運行),非后臺運行一般用于調試,把rsync的verbose也設置為true,這樣會把同步的細節(jié)輸出到控制臺,方便調試
    nodaemon = false,
}

-- 同步配置default.rsync模式(比如配置從哪同步到哪,要忽略哪些文件,多久同步一次等),可以有多個sync模塊,每個模塊用于設置一臺目標機器
sync {
    -- 有default.rsync/default.direct/default.rsyncssh三種模式,我們默認都用default.rsyncssh方式,因為這種方式其實是最好的。
    default.rsyncssh,

    -- 同步源目錄(本機某個目錄)
    source = "/data/wwwroot/",

    -- 同步目標地址,rsyncssh模式寫法
    host="192.168.1.6",
    targetdir="/data/wwwroot/",

    -- 默認true,允許刪除目錄服務器中的某些文件(即刪除“那些在源服務器中不存在的文件”),可選值有: true/false/startup/running,startup就是只在啟動lsyncd服務的時候判斷目標服務器中有哪些文件在源服務器中沒有,然后把這些文件刪除,但啟動之后如果目標服務器又新增了文件,這些文件即使在源服務器不存在,也不會被刪除;而running與startup正好相反,是在啟動的時候不會刪除,啟動之后會刪除,true=running+startup,false相當于running和startup都不做。
    -- delete = true,

    -- 哪些文件不同步(可用正則))
    exclude = {
        '.**',
        '.git/**',
        '*.bak',
        '*.tmp',
       'runtime/**',
       'cache/**'
    },
    -- 忽略文件路徑規(guī)則也可用外部配置文件
    -- excludeFrom = "/etc/lsyncd_exclude.lst",

    -- 與上邊的maxDelays配合,maxDelays是累計事件數(單位:個),delay是時間(單位:秒),這兩個只要有一個符合條件就會同步一次,但為了確保實時同步,maxDelays我們一般設置為1,也就是只要有一個文件變化事件,就會同步一次,而delay是比較大的,默認是15。當然,假如我們把maxDelays設置為100,那可能15秒到了也沒有達到100個文件變化,但由于到達時間了,它也會同步。
    delay = 15,

    -- 當init = false時只同步進程啟動以后發(fā)生改動事件的文件,原有的目錄即使有差異也不會同步,如果為true,則啟動后如果源目錄與目標目錄的文件有差異,就會同步,我們當然要設置為true,默認為true,所以這個設置可以不寫,寫在這里是為了解釋它。
    -- init = false,

    -- rsyncssh的配置(這是default.rsyncssh模式,如果是default.rsyncssh模式,該模塊的配置會有所不同)
    rsync = {
        -- rsync可執(zhí)行文件的絕對路徑
        binary = "/usr/bin/rsync",

        -- 密碼文件路徑(rsync模式不用該配置,rsyncssh模式才需要該項)
        -- password_file = "/etc/rsyncd.password",

        -- 打包后再同步(注意,打包不等于壓縮,打包即可以壓縮也可以不壓縮)
        archive = true,

        -- 壓縮后再同步
        compress = true,

        -- 同步符號鏈接文件
        copy_links = true,

        -- 同步符號鏈接目錄
        copy_dirlinks = true,

        -- 輸出同步信息(由于是后臺執(zhí)行,所以沒必要輸出,如果非后臺執(zhí)行可以設置為true,非后臺執(zhí)行主要用于調試)
        verbose  = false,

        -- 由于rsync有非常多的選項(請自己rsync --help查看),部分非主要選項可以用_extra的方式指定,雙引號引住,逗號分隔(bwlimit中的bw是bandwith,即帶寬,整個意思是帶寬限制,omit-link-times忽略符號鏈接的修改時間)
        _extra = {"--bwlimit=200", "--omit-link-times"},

        -- 指定ssh相關參數選項
        rsh = "/usr/bin/ssh -l xiebruce -i /root/.ssh/id_rsa -o StrictHostKeyChecking=no"
    }
}

其中這一句就是用來通過ssh登錄到服務器的:
rsh = "/usr/bin/ssh -l xiebruce -i /root/.ssh/id_rsa -o StrictHostKeyChecking=no"

  • 你平時使用ssh登錄服務器,也許用的是ssh zhangsan@192.168.1.6,最多再加個-p指定一下端口,但其實ssh還有很多選項,比如ssh -l test root@192.168.1.6就表示,我雖然是用root去登錄,但用-l(login的縮寫)指定了登錄的用戶,所以最終會以test用戶進行登錄,而-i(identify的縮寫)則表示指定私鑰(身份認證文件),通常是為了免密碼登錄服務器,原因很簡單,這個同步不可能每次讓你輸入密碼,所以需要免密碼登錄。
  • 而-o(option的縮寫)表示選項,ssh有很多選項,可以用man ssh查到,而每個選項是什么意思需要用man ssh_config來查看,“StrictHostKeyChecking”表示嚴格檢查主機的key fingerprint(指紋密鑰),當你首次登錄一臺服務器的時候,它總會有這個提示:
    The authenticity of host '192.168.1.6 (192.168.1.6)' can't be established.
    ECDSA key fingerprint is SHA256:xcDUp3zNlJvhY4fwfwDH1pgOyc5p8Vsr2OjopanEQBw.
    Are you sure you want to continue connecting (yes/no)?

如果你輸入no那就不會登錄,如果你輸入yes,就會登錄,并且把這個“key fingerprint”(指紋密鑰)添加到你終端的ssh配置目錄下的known_hosts文件中,這個文件的位置,對于Mac/Linux電腦,是在~/.ssh/known_hosts,Windows的話則是在C:\Users\用戶名\目錄下。
同理,現在是rsync登錄你的ssh,所以rsync也會存儲這樣的指紋密鑰,如果“StrictHostKeyChecking”設置為yes,就意味著每次都要嚴格檢查密鑰(就相當于你用終端登錄時,每次都要你輸入一遍yes),這樣顯然是沒必要的,所以我們要把它設置為“StrictHostKeyChecking=no”。


default.direct模式:該模式我沒有測試

sync {
    default.direct,
    source  = "/home/user/src/",
    target  = "/home/user/trg/"
}

同時同步到多臺機

格式如下,每臺目標服務器一個sync模塊即可,每個sync模塊都像上邊說的那樣寫就行,其實就只是ip不同,其他都一樣:

settings {
    logfile = "/var/log/lsyncd/lsyncd.log",
    inotifyMode = "CloseWrite or Modify",
    -- statusFile = "/var/log/lsyncd/lsyncd.status",
}

--  B服務器配置
sync {
    default.rsync,
    source = "/etc/nginx/",
    target = "rsync://rsync@192.168.1.6:1873/nginx/",
    exclude = { ".*", "*.tmp", "*.swp", "*.bak", "*.log", "*.swx", "*~", "sets/config.json", "listen_local_*" },
    delay = 2,
    init = false,
    rsync = {
        password_file = "/etc/rsyncd.passwd",
        archive = true,
        compress = true,
        verbose = true,
        checksum = true,
        ignore_times = true
    }
}

--  C服務器配置
sync {
    default.rsync,
    source = "/data/web/",
    target = "rsync://rsync@192.168.1.11:1873/web/",
    exclude = { ".*", "*.tmp", "*.swp", "*.bak", "*.log", "*.out", "*/logs/*", "*.swx", "*~" },
    delay = 120,
    init = false,
    rsync = {
        password_file = "/etc/rsyncd.passwd",
        archive = true,
        compress = true,
        verbose = true,
        checksum = true,
        ignore_times = true
    }
}

--  D服務器配置
sync {
    default.rsync,
    source = "/data/script/",
    target = "rsync://rsync@192.168.1.100:1873/script/",
    exclude = { ".*", "*.tmp", "*.swp", "*.bak", "*.log", "*.out", "*/logs/*", "*.swx", "*~" },
    delay = 2,
    init = false,
    rsync = {
        password_file = "/etc/rsyncd.passwd",
        archive = true,
        compress = true,
        verbose = true,
        checksum = true,
        ignore_times = true
    }
}

分享題目:CentOS7部署lsyncd+rsync實現服務器文件實時同步
文章源于:http://bm7419.com/article4/jjeooe.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站收錄、外貿網站建設、動態(tài)網站、做網站商城網站、靜態(tài)網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設