Rsync Innotify 部署例項

2022-05-12 07:02:51 字數 2793 閱讀 1696

目錄web伺服器定期對專案目錄做備份;

單獨一台備份伺服器上,定期拉取web伺服器上的備份資料到本地

主機名ip

角色node01

192.168.100.11

備份伺服器(rsync-server)

node02

192.168.100.12

web伺服器(rsync-client)

備份伺服器配置

yum install -y rsync

cp /etc/rsyncd.conf

vim /etc/rsyncd.conf

"""uid = xiaofei # 使用者身份,系統使用者

gid = xiaofei

use chroot = no

max connections = 10

pid file = /var/run/rsyncd.pid

log file = /var/log/rsyncd.log

lock file = /var/run/rsyncd.lock

transfer logging = yes

strict modes = yes # 是否檢查密碼檔案許可權

timeout = 900

ignore nonreadable = yes

dont compress = *.gz *.tgz *.zip *.z *.z *.rpm *.deb *.bz2

[backup] # 模組名

path = /backup/ # 模組對應的具體路徑

comment = backup export area

read only = false

#write only = true

auth users = backup_user # 虛擬使用者

secrets file = /etc/rsyncd.password # 虛擬使用者授權檔案

ignore errors = yes

hosts allow = 192.168.100.0/24

hosts deny = *

list = false

"""mkdir /backup

useradd -s /sbin/nologin -m xiaofei

chown -r xiaofei.xiaofei /backup

echo "backup_user:123456" > /etc/rsyncd.password

chmod 600 /etc/rsyncd.password

systemctl start rsyncd

ss -tnl

web伺服器配置

yum install -y rsync

useradd xiaofei

mkdir /backup

chown -r xiaofei:xiaofei /backup

備份服務端測試

# upload

rsync -az /tmp/test.txt [email protected]::backup

# download

rsync -az [email protected]::backup /backup/

結合crontab自動任務計畫

echo "123456" > /etc/rsyncd.password

chmod 600 /etc/rsyncd.password

crontab -e

"""* * * * 1,3,5 /usr/bin/rsync --delete --password-file=/etc/rsyncd.password -az [email protected]::backup /backup/

"""

注意:ip::後面的test是模組名,而不是目錄名,一般我們都定義同樣的名字,以便見名知意

inotify,實時監控指定目錄下檔案元資料,發生變化則會觸發執行指定動作。

注意需要安裝在 rsync-client 端

最終實現:

實時監控目標資料夾,一旦發生變化,則執行上傳操作到備份伺服器上。

yum install -y inotify-tools

cat inotify_script.sh

"""#!/bin/bash

#bakip=192.168.100.11

src=/backup/

dst=backup

user=backup_user

pwdfile=/etc/rsyncd.password

/usr/bin/inotifywait -mrq \

--timefmt '%d-%m-%y %h:%m' \

--format '%t%w%f%e' \

-e create,delete,modify,attrib,move,close_write $src \

| while read files;do

/usr/bin/rsync -az --delete --progress --password-file=$pwdfile $src $@$::$

echo "$ is rsynced." >> /tmp/rsync.log 2>&1

done

"""nohup sh /scripts/inotify_script.sh &

touch /backup/.html

注意:備份資料的使用者許可權

docker部署部署心得

一 涉及檔案 centos centos7.tar.gz docker中centos映象壓縮包 docker.tar.gz docker 安裝包 jre 8u131 linux x64.rpm 生成cloudlicense映象時要用到 由於找不到openjdk,安裝映象,用這個替代 dockerfi...

python sanic部署 Sanic 部署

部署sanic的方法有很多種,可以通過內建的 webserver,也可以通過gunicorn等。內建webserver 定義sanic.sanic例項後,我們可以使用下面的關鍵字引數呼叫run方法 port 預設為8000 伺服器監聽的埠 debug 預設為false 是否開啟除錯模式 會讓伺服器變...

環境部署 Redis環境部署

目錄 redis環境部署 準備部署目錄 修改配置檔案 啟動服務 檢查 附錄redis常用指令 解壓後目錄基本如下 編譯後在src目錄中可看到編譯產物 可執行的二進位制檔案 主要是這幾個 redis server redis sentinel redis cli redis benchmark red...