1. 程式人生 > >rsync同步操作 、 發布rsync共享 、 inotify實時同步 、 Split分離解析

rsync同步操作 、 發布rsync共享 、 inotify實時同步 、 Split分離解析

rsync

虛擬機A
1. 將防火墻狀態設置為trusted
2.SELinux當前修改為permissive
3.SELinux永久狀態修改為permissive
4.清空Yum緩存,檢查Yum是否可用

虛擬機B
1. 將防火墻狀態設置為trusted
2.SELinux當前修改為permissive
3.SELinux永久狀態修改為permissive
4.清空Yum緩存,檢查Yum是否可用

/etc/selinux/config (永久狀態配置文件)

########################################################

rsync同步操作
? 命令用法
– rsync [選項...] 源目錄 目標目錄

? 同步與復制的差異
– 復制:完全拷貝源到目標
– 同步:增量拷貝,只傳輸變化過的數據



? 本地同步
– rsync [選項...] 本地目錄1 本地目錄2 //同步整個文件夾

– rsync [選項...] 本地目錄1/ 本地目錄2 //只同步目錄下的數據

? rsync操作選項
– -n:測試同步過程,不做實際修改
– --delete:刪除目標文件夾內多余的文檔
– -a:歸檔模式,相當於-rlptgoD
– -v:顯示詳細操作信息
– -z:傳輸過程中啟用壓縮/解壓



# mkdir /abc
# mkdir /test
# cp /etc/passwd /etc/fstab /etc/shadow /etc/group /abc/

# ls /abc/

# ls /test
# rsync -avz /abc /test
# ls /test

# rsync -avz /abc/ /test
# ls /test

# echo 123 >> /abc/group
# rsync -avz /abc/ /test #只傳輸變化的數據

######################################################


? 與遠程的 SSH目錄保持同步
– 下行:rsync [...] user@host:遠程目錄 本地目錄
– 上行:rsync [...] 本地目錄 user@host:遠程目錄

虛擬機A:

# ls /abc/
fstab group haha.txt passwd shadow

# rsync -avz --delete /abc/ [email protected]:/opt/


虛擬機B:

# ls /opt


#######################################################
實時同步

虛擬機A:
1.密瑪驗證取消,采用公鑰 私鑰 驗證
[root@svr7 ~]# ssh-keygen #一路回車,生成公鑰 私鑰

[root@svr7 ~]# ls /root/.ssh/ #公鑰 私鑰在本地存放位置

[root@svr7 ~]# ssh-copy-id [email protected] #拷貝公鑰到對方

2.驗證
[root@svr7 ~]# ssh [email protected]

3. inotify實時監控目錄,內容是否變化
在真機上操作:inotify-tools-3.13.tar.gz 上傳到虛擬機A

# scp inotify-tools-3.13.tar.gz [email protected]:/root/


步驟1:安裝gcc、make
[root@svr7 /]# yum -y install gcc make
[root@svr7 /]# rpm -q gcc
[root@svr7 /]# rpm -q make

步驟2:tar解包,釋放源代碼至指定目錄
# rm -rf /opt/*
# tar -xf /root/inotify-tools-3.13.tar.gz -C /opt/
# ls /opt/
# 以下所有步驟都要在,解壓目錄下執行

步驟3: ./configure 配置,指定安裝目錄/功能模塊等選項
# cd /opt/inotify-tools-3.13/
# ./configure

步驟4:make 編譯,生成可執行的二進制程序文件
# make
步驟5:make install 安裝,將編譯好的文件復制到安裝目錄
# make install

驗證:
[root@svr7 /]# inotifywait #不提示,命令沒有找到即可
No files specified to watch!

? 基本用法
– inotifywait [選項] 目標文件夾
? 常用命令選項
– -m,持續監控(捕獲一個事件後不退出)
– -r,遞歸監控、包括子目錄及文件
– -q,減少屏幕輸出信息
– -e,指定監視的 modify、move、create、delete、attrib 等事件類別


# rsync -avz --delete /abc/ [email protected]:/opt/

Shell腳本

[root@svr7 /]# vim /root/rsync.sh

#!/bin/bash
dir=/abc/
while inotifywait -rqq $dir
do
rsync -az --delete $dir [email protected]:/opt/
done


[root@svr7 /]# chmod +x /root/rsync.sh

[root@svr7 /]# /root/rsync.sh

#####################################################
DNS 分離解析 (視圖解析)
Split 分離解析

什麽是分離解析
? 當收到客戶機的DNS查詢請求的時候
– 能夠區分客戶機的來源地址
– 為不同類別的客戶機提供不同的解析結果(IP地址)

多個view視圖,匹配及停止
所有的zone都必須在view中



實現分離解析:
svr7最為DNS服務器

192.168.4.207------->www.tedu.cn-----》1.2.3.4
其他的客戶端---------->www.tedu.cn-----》100.200.100.200



虛擬機A:
# vim /etc/named.conf

view "lan" {
match-clients { 192.168.4.207; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.lan";
};
};

view "abc" {
match-clients { any; };
zone "tedu.cn" IN {
type master;
file "tedu.cn.abc";
};
};



####################################################################################




192.168.4.207------->www.qq.com-----》10.10.10.10
其他的客戶端 ----------------->www.qq.com-----》20.20.20.20


#####################################################

Linux中查看路由表

[root@svr7 /]# route -n

######################################

rsync同步操作 、 發布rsync共享 、 inotify實時同步 、 Split分離解析