目錄
實驗?zāi)康兀?/p>
實驗需求:
各項服務(wù)位置以及作用:
整體實驗過程:
詳細(xì)配置:
Rsync服務(wù):
Web服務(wù):
?NFS服務(wù)
DNS服務(wù)
實驗?zāi)康兀?/h3>
在整體實驗中,使客戶機(jī)在網(wǎng)頁可以看到由服務(wù)器A上傳的文件,并且A服務(wù)器有一臺備份服務(wù)器。
實驗需求:
四臺虛擬服務(wù)器與一臺客戶機(jī),并關(guān)閉防火墻
服務(wù)器 |
IP地址 |
?部署服務(wù) |
??????部署作用 |
A |
192.168.1.12 |
Rsync,nfs,DNS |
主服務(wù)器,提供文件的源頭 |
B |
192.168.1.23 |
Rsync |
實時同步,備份A服務(wù)器 |
C |
192.168.1.11 |
Nfs,web |
提供web服務(wù),連接外網(wǎng) |
D |
192.168.1.22 |
Nfs,web |
提供web服務(wù),連接外網(wǎng) |
各項服務(wù)位置以及作用:
RSYNC:此項服務(wù)是文件同步的傳輸工具,將文件推送給B,提供了一個遠(yuǎn)程服務(wù)器同步的快速方法,并且保持原文件的屬性,以此達(dá)到備份的效果。
NFS:通過網(wǎng)絡(luò)使不同設(shè)備共享彼此文件,所以在此項操作中,A服務(wù)器建立nfs共享文件到C,D。(注:A與C,D共享的文件要與B共享備份的文件一致)。
WEB:apache服務(wù)可以跨平臺使用,所以要建立在C.D兩臺服務(wù)器上與客戶機(jī)不同設(shè)備實現(xiàn)文件共享(注:將nfs的共享文件掛載到web的網(wǎng)頁共享根目錄來達(dá)到A,B,C,D服務(wù)器文件互通)
DNS:域名轉(zhuǎn)IP,把DNS建立在服務(wù)器A上,提供C,D的域名服務(wù),在客戶機(jī)訪問C,D時,由A服務(wù)器提供域名轉(zhuǎn)IP服務(wù),(在正反解析文件中寫上客戶機(jī)的域名與IP)
整體實驗過程:
- 首先在A和B上建立rsync服務(wù)備份文件,B為rsync備份服務(wù)器,A為共享服務(wù)器;
- 在C,D上建立web服務(wù)器,啟用httpd網(wǎng)頁根目錄,
- 在主共享服務(wù)器A上建立nfs服務(wù),并把共享目錄設(shè)置為rsync的備份目錄。
- 把A服務(wù)器上nfs服務(wù),發(fā)到C,D兩臺服務(wù)器,建立A分別連接從C,D
- 在C.D上把A服務(wù)器的nfs共享目錄掛載到httpd網(wǎng)頁根目錄上
- 在客戶機(jī)瀏覽器上輸入IP或域名即可看到A服務(wù)器的文件內(nèi)容
詳細(xì)配置:
Rsync服務(wù):
1,在A,B上下載rsync服務(wù) #yum -y install rsync
2,首先在B服務(wù)器上創(chuàng)建同步數(shù)據(jù)的系統(tǒng)用戶,并創(chuàng)建同步目錄,讓剛創(chuàng)建的用戶對此目錄有讀寫權(quán)。
# useradd rput && echo 'rput:123456' | chpasswd
#mkdir /web-bak/
#setfacl -R -m user:rput:rwx /web-bak/
#setfacl -R -m default:user:rput:rwx /web-bak/
在A上創(chuàng)建測試數(shù)據(jù)
#mkdir -p /var/www/html
#cp -r /boot/* /var/www/html
3,在B上配置rsync同步源,在B上創(chuàng)建/etc/rsyncd.conf文件,內(nèi)容如下:
uid = root
gid = root
address = 192.168.1.23
port = 873
hosts allow = 192.168.1.0/24
use chroot = yes
max connections = 5
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
motd file = /etc/rsyncd.motd
[wwwroot]
path = /web-bak/
comment = used for
read only = false
list = yes
auth users = backuper
secrets file = /etc/rsyncd.passwd
根據(jù)上一步的設(shè)置,創(chuàng)建賬號數(shù)據(jù)文件,添加一行用戶記錄,以冒號分隔,用戶名稱為backuper,密碼為pwd123。由于賬號信息采用明文存放,因此應(yīng)調(diào)整文件權(quán)限,避免賬號信息泄露。
# echo "Welcome to Backup Server" > /etc/rsyncd.motd
# vim ?/etc/rsyncd.passwd????寫入密碼為:pwd123
修改此項文件權(quán)限,權(quán)限設(shè)置不對的話身份驗證會失敗
#chmod 600 /etc/rsyncd.passwd
開啟此項服務(wù):
#rsync ?--daemon??--config=/etc/rsyncd.conf
并保存到/etc/rc.d/rc.local文件中,確保系統(tǒng)啟動后自動啟動rsync服務(wù)。并賦權(quán):
#chmod +x /etc/rc.d/rc.local
4,至此rsync同步源配置完畢,下面使用rsync備份工具實現(xiàn)備份操作。
在A新建一個文件保存好密碼,然后在rsync命令中使用--password-file指定此文件即可
# vim ?/etc/rsyncd.passwd????寫入密碼為:pwd123
#chmod ?600 ?/etc/rsync.passwd
?在源機(jī)器A上開始部署sersync服務(wù)
(1)下載sersync
Rsync安裝包下載地址:https://github.com/WayneD/rsync/releases
將sersync上傳到服務(wù)器 /opt目錄下
# mv sersync2.5.4_64bit_binary_stable_final.tar.gz ?/opt/
# cd ?/opt/
# tar zxf sersync2.5.4_64bit_binary_stable_final.tar.gz
# mv ?GNU-Linux-x86 ?/opt/sersync
# cd ?/opt/sersync/
(2)配置sersync
# cp confxml.xml ?confxml.xml.bak
更改優(yōu)化sersync配置文件:24,25,31行
?
?(3)開啟sersync守護(hù)進(jìn)程同步數(shù)據(jù)
#?/opt/sersync/sersync2 ?-d ?-r ?-o ?/opt/sersync/confxml.xml
(4)測試
在A上對/var/www/html/目錄增刪改目錄文件,
看B上/web-bak/目錄的變化
(5)設(shè)置A:sersync監(jiān)控開機(jī)自動執(zhí)行
?#?vim ?/etc/rc.d/rc.local ?#編輯,在最后添加一行
?/opt/sersync/sersync2 ?-d??-r??-o ?/opt/sersync/confxml.xml ?#設(shè)置開機(jī)自動運行腳本
(6)在A添加腳本監(jiān)控sersync是否正常運行
#?vim??/opt/check_sersync.sh ?#編輯,添加以下代碼
#!/bin/sh
sersync="/opt/sersync/sersync2"
confxml="/opt/sersync/confxml.xml"
status=$(ps aux | grep 'sersync2' | grep -v 'grep' | wc -l)
if [ $status -eq 0 ];
then
???$sersync -d -r -o $confxml &
else
exit 0;
Fi
把這個腳本加到A的任務(wù)計劃,定期執(zhí)行檢測
# chmod +x check_sersync.sh
# echo "10 * * * * sh /root/check_sersync.sh &" >> /var/spool/cron/root
Web服務(wù):
1,在C,D分別安裝httpd服務(wù)
通過yum安裝apache編譯時需要的依賴包
#
wget https:
//mirrors.cnnic.cn/apache/httpd/httpd-2.4.38.tar.gz
# yum -y install gcc gcc-c++ apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre lrzsz?????
使用源碼安裝并解壓到/usr/src下
?執(zhí)行“./configure --help”命令,其中“./”表示當(dāng)前目錄。
# ./configure ?--prefix=/usr/local/httpd ???--enable-so ???--enable-rewrite ?--enable-charset-lite ?--enable-cgi
編譯配置:# make &&?make install
2,為了使用便捷添加軟連接
# ln -s /usr/local/httpd/bin/* /usr/local/bin
3,建立.service配置文件
#?vim /lib/systemd/system/httpd.service
[Unit]
Description=the apache http server
After=natwork.target
[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
開啟查看此項服務(wù):
# systemctl daemon-reload
# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
# systemctl enable httpd.service
enabled
# systemctl start httpd.service
# systemctl status httpd.service
構(gòu)建web主機(jī)
FQDN |
www.test.com |
IP |
192.168.36.128 |
TCP PORT |
80 |
網(wǎng)站根目錄 |
/var/www/test/html |
主頁 |
index.html |
分別準(zhǔn)備兩個虛擬站點的網(wǎng)頁文件:
# mkdir ?-p ?/var/www/test/html ?
# echo "www.test.com" ?> /var/www/test/html/index.html
添加虛擬主機(jī)配置(注意IP修改)
# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf ??//修改現(xiàn)有內(nèi)容,
<VirtualHost 192.168.1.22:80>
????ServerAdmin webmaster@test.com
????DocumentRoot "/var/www/test/html"
????ServerName www.test.com
????ServerAlias test.com
????ErrorLog "logs/www.test.com-error_logs"
????CustomLog "logs/www.test.com-access_log" common
????<Directory "/var/www/test/html">
????????Require all granted
????</Directory>
</VirtualHost>
修改主配置文件httpd.conf,加載httpd-vhosts.conf文件
# vim /usr/local/httpd/conf/httpd.conf
…………??????????????//省略部分內(nèi)容
ServerName www.example.com:80
Include conf/extra/httpd-vhosts.conf ?????????????//加載獨立的配置文件
執(zhí)行httpd -t命令檢測httpd配置文件語法正確性
重啟httpd服務(wù)使配置生效
[root@localhost ~]# systemctl restart httpd
?NFS服務(wù)
1,在A服務(wù)器上下載nfs服務(wù)(在C,D上也許下載)
# yum -y install nfs-utils rpcbind
先啟動rpc服務(wù),再啟動nfs服務(wù)。
# systemctl start rpcbind ???#啟動rpc服務(wù)
# systemctl enable rpcbind ???#設(shè)置開機(jī)啟動
啟動nfs服務(wù):
# systemctl start nfs ????#啟動nfs服務(wù)
# systemctl enable nfs ???#設(shè)置開機(jī)啟動
2,在nfs服務(wù)端更改共享輸出的目錄設(shè)置權(quán)限
# chmod ?-R ?a+w ?/var/www/html
(注:A與C,D共享的文件要與B共享備份的文件一致)
3,編輯/etc/exports配置文件,將本地的/var/www/html目錄共享發(fā)布
# vim /etc/exports
/var/www/html 192.168.1.0/24(rw)
共享權(quán)限設(shè)置:??ro:只讀屬性??rw:讀寫屬性
# systemctl reload nfs???重啟服務(wù)
4,在C,D查看NFS服務(wù)器共享出來目錄:
Showmount -e 192.168.1.12
并掛載到網(wǎng)頁根目錄上
# mount ?-t ?nfs ?192.168.0.12:/var/www/html??/var/www/test/html/
DNS服務(wù)
1,在A安裝dns服務(wù)
#yum -y install bind bind-chroot bind-utils
2,啟動服務(wù)
# systemctl start named
# systemctl enable named
3.構(gòu)建主dns服務(wù)器
創(chuàng)建named.conf主配置文件,提供test.com域的正向解析和192.168.1.0/24網(wǎng)段的反向解析。
#?cp ?-p ?/etc/named.conf ?/var/named/named.conf.bak
#?vim ?/etc/named.conf
options {
????????listen-on port 53 { any; };
????????listen-on-v6 port 53 { any; };
????????directory ?????"/var/named";
????????allow-query ?????{ any; };
};
zone "." IN {
????????????type hint;
????????????file "named.ca";
};
zone "test.com" IN {
????????type master;
????????file "test.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
???????type master;
???????file "192.168.1.arpa";
};
查看有沒有語法錯誤
# named-checkconf ?/etc/named.conf
4.創(chuàng)建正向區(qū)域數(shù)據(jù)文件
# vim ?/var/named/test.com.zone
$TTL 1D
@ ???????????IN ???SOA ???@ root.test.com. (
?????????????????????????????????????????????????0 ???; serial
?????????????????????????????????????????????????1D ??; refresh
?????????????????????????????????????????????????1H ??; retry
?????????????????????????????????????????????????1W ??; expire
?????????????????????????????????????????????????3H ) ; minimum
test.com. ??????IN ??NS ?dns-localhost1.test.com.
dns-localhost1.test.com. ?IN ??A ??192.168.1.12
www.test.com. ????????????IN ??A ??192.168.1.11
www.test.com. ????????????IN ??A ??192.168.1.22
ftp.test.com. ????????????IN ??A ??192.168.1.111
5.創(chuàng)建反向區(qū)域數(shù)據(jù)文件
$TTL 1D
@ ???????????IN ???SOA ???test.com. ?root.test.com. (
?????????????????????????????????????????????????0 ???; serial
?????????????????????????????????????????????????1D ??; refresh
?????????????????????????????????????????????????1H ??; retry
?????????????????????????????????????????????????1W ??; expire
?????????????????????????????????????????????????3H ) ; minimum
?????????????IN ??NS ?dns-localhost1.test.com.
12 ??????????IN ?PTR ??dns-localhost1.test.com.
11 ??????????IN ?PTR ??www.test.com.
22 ??????????IN ?PTR ??www.test.com.
111 ?????????IN ?PTR ??ftp.test.com.
更改區(qū)域數(shù)據(jù)文件的歸屬屬性:
# chown ?root:named ?/var/named/test.com.zone
# chown ?root:named ?/var/named/192.168.1.arpa
判斷語法有沒有錯誤
正# named-checkzone ?test.com ?/var/named/test.com.zone
反# named-checkzone ?1.168.192.in-addr.arpa ?/var/named/192.168.1.arpa
并檢查該文件是否存在問題。
# named-checkconf -z /etc/named.conf
更改配置項
將A服務(wù)器DNS刪除,因為A本身就是DNS服務(wù)器,并且將B,C,D與客戶機(jī)的DNS改為A的IP,以便使用文章來源:http://www.zghlxwxcb.cn/news/detail-772970.html
在網(wǎng)頁中輸入C或D的IP即可看到A服務(wù)器提供的文件文章來源地址http://www.zghlxwxcb.cn/news/detail-772970.html
到了這里,關(guān)于linux文件數(shù)據(jù)同步--實現(xiàn)文件共享與備份(nfs+rsync+httpd+dns)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!