您現(xiàn)在的位置是:首頁(yè) >學(xué)無(wú)止境 >lsyncd技術(shù)使linux服務(wù)器上的項(xiàng)目實(shí)現(xiàn)同步網(wǎng)站首頁(yè)學(xué)無(wú)止境
lsyncd技術(shù)使linux服務(wù)器上的項(xiàng)目實(shí)現(xiàn)同步
三只小菜猿
2023-02-09 10:37:26
簡(jiǎn)介【代碼】debain使用lsyncd技術(shù)使linux服務(wù)器上的項(xiàng)目實(shí)現(xiàn)同步。
**下面開(kāi)始詳細(xì)講解配置過(guò)程及過(guò)程中可能遇到的問(wèn)題:
現(xiàn)有兩臺(tái)linux主機(jī):**
192.168.1.101 //主機(jī)器
192.168.1.102 //輔機(jī)器
以下操作均在主機(jī)器上進(jìn)行:
安裝lsyncd和rsync
apt-get install lsyncd
apt install rsync
查看安裝版本
lsyncd -version
創(chuàng)建必要文件夾
mkdir /etc/lsyncd
mkdir /var/log/lsyncd
touch /var/log/lsyncd/lsyncd.{log,status}
配置免密登陸
**ssh-keygen -t rsa
ssh-copy-id root@192.168.1.102 //用戶名@輔機(jī)器的ip地址;執(zhí)行后需輸入輔機(jī)器的遠(yuǎn)程連接密碼
ssh root@192.168.1.102 //無(wú)需密碼即可登陸**
端口默認(rèn)不是22的話使用以下命令
ssh-copy-id -i /root/.ssh/id_rsa.pub -p 20009 root@192.168.1.102//-p為端口
配置文件
cd /etc/lsyncd/
vim lsyncd_nginx.lua
配置文件內(nèi)容:
settings {
logfile = "/var/log/lsyncd/lsyncd.log", --定義日志文件
statusFile = "/var/log/lsyncd/lsyncd.status", --定義狀態(tài)文件
maxProcesses = 20 -- 同步進(jìn)程的最大個(gè)數(shù)。假如同時(shí)有20個(gè)文件需要同步,而maxProcesses = 8,則最大能看到有8個(gè)rysnc進(jìn)程
}
sync {
default.rsyncssh,
source = "/home/ubuntu/test", --源目錄
host = "root@192.168.1.11", --目的主機(jī)
targetdir = "/home/ubuntu/test", --遠(yuǎn)程目錄
exclude = { --需要排除的文件或文件夾
"application/config/database.php",
"application/config/mf_config.php",
"application/wxRefundNotifyLog.txt"
},
init = false, --這是一個(gè)優(yōu)化選項(xiàng),當(dāng)init = false,只同步進(jìn)程啟動(dòng)以后發(fā)生改動(dòng)事件的文件,原有的目錄即使有差異也不會(huì)同步。默認(rèn)是true
delay = 0, --延時(shí)同步的秒數(shù)
rsync = {
binary = "/usr/bin/rsync",
archive = true,
compress = true, --壓縮傳輸默認(rèn)為true。在帶寬與cpu負(fù)載之間權(quán)衡,本地目錄同步可以考慮把它設(shè)為false
verbose = true
},
ssh = {
port = 22
}
}
保存后執(zhí)行以下命令重啟
/etc/init.d/lsyncd restart
運(yùn)行l(wèi)syncd
lsyncd lsyncd_nginx.lua
查看是否運(yùn)行
ps -ef |grep lsyncd
root 8018 1 0 13:49 ? 00:00:00 lsyncd lsyncd_nginx.lua
root 8070 7802 0 13:50 pts/2 00:00:00 grep --color=auto lsyncd
最后在主服務(wù)器的/home/ubuntu/test下創(chuàng)建一個(gè)文件會(huì)發(fā)現(xiàn)輔服務(wù)器上也會(huì)有這個(gè)文件
問(wèn)題: 如果未能實(shí)現(xiàn)同步,可查看/var/log/lsyncd/lsyncd.log日志文件內(nèi)容 如果內(nèi)容中有:ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory 則你需要執(zhí)行:
sudo apt install ssh-askpass
備注:同步需要在所有服務(wù)器都要安裝環(huán)境,主服務(wù)器是進(jìn)行配置,編寫lua腳本進(jìn)行同步,此外可以此可以配置多臺(tái)服務(wù)器進(jìn)行文件同步,設(shè)置同步方式有多種,可以自行查詢?cè)敿?xì)參數(shù)。
夢(mèng)想加空間!平時(shí)喜歡研究各種技術(shù),目前在從事后端開(kāi)發(fā)工作,熱愛(ài)生活、熱愛(ài)工作。