久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Rsync同步鏡像站點的搭建

 figol 2007-01-08
對于選擇Linux,、UNIX 系統(tǒng)作為應用平臺的企業(yè)或網站來說,往往面臨著如何實現(xiàn)將數(shù)據(jù)遠程備份或者如何建立網站鏡像的問題,。雖然有商業(yè)化的備份和鏡像產品可供選擇,但這些產品的 價格往往過于昂貴。因此如何利用自由軟件高效實現(xiàn)遠程備份和網站鏡像就成為一個值得討論的話題,。通過網絡進行遠程數(shù)據(jù)備份或者網站鏡像的最簡單的方法就是 使用Wget,。但是這種方式每次都需要將所有數(shù)據(jù)都重新在網絡上傳輸一遍,而不考慮哪些文件是經過更新的,,因此效率非常低下,。尤其是在需要備份數(shù)據(jù)量很大 的時候,往往需要花費數(shù)個小時來在網絡上進行數(shù)據(jù)傳輸,。因此,,若能有一種高效的網絡遠程備份和鏡像工具Rsync,就可以滿足絕大多數(shù)要求不是特別嚴格的 備份需求,。

對系統(tǒng)管理員來說,,平時的工作重心應該集中在維護系統(tǒng)正常運轉,能夠正常提供服務上,,這里往往牽涉到一個數(shù)據(jù)備份的問題,。在我們所了解的情況中,有80% 的系統(tǒng)管理員不是太關心自己服務器的安全性,,可是對備份鏡像的技術相當感興趣,。但由于商業(yè)產品軟硬件價格都相當高昂,因此往往會選擇自由軟件,,例如前面提 到的網絡遠程備份和鏡像工具Rsync,,它可以滿足絕大多數(shù)要求不是特別高的備份需求。
Rsync是Linux,、UNIX系統(tǒng)下的數(shù)據(jù)鏡像備份工具,,從軟件的命名上就可以看出來了Remote Sync。它有如此特性:可以鏡像保存整個目錄樹和文件系統(tǒng),;可以很容易做到保持原來文件的權限,、時間、軟硬鏈接等,;無須特殊權限即可安裝,;優(yōu)化的流程,文件傳輸效率高,;可以使用RCP,、SSH等方式來傳輸文件,當然也可以通過直接的Socket連接,;支持匿名傳輸,。

安裝和配置Rsync實例

例如有2臺服務器,服務器名分別為:WWW和BACKUP。
硬件環(huán)境: 2臺HP服務器,,1G CPU , 512M Ram , 18G SCSI硬盤,;系統(tǒng)環(huán)境: Redhat Linux 6.2;服務環(huán)境: Rsync-2.4.6。其中,,服務器名為WWW的Web服務內容存放在以下幾個地方:/www/和/mirror/file0/和/mirror/file1/目錄中?,F(xiàn)在我們需要通過搭建Rsync同步服務在備份機BACKUP上建立對這幾個目錄內容的備份。
軟件下載  Rysnc的主頁地址為:http://rsync./,,可以從這里下載Rysnc的安裝軟件(注意:下載源碼編譯最好),。
編譯安裝  Rysnc的編譯安裝非常簡單,只需要以下簡單的幾步(在2臺服務器中都要安裝):
$ tar xvf rsync-2.4.6.tgz
$ cd rsync-2.4.6
$ ./configure
$ make
$ make install

但是,,需要注意的是必須在服務器WWW和BACKUP上都安裝Rsync,,其中WWW服務器上是以服務器模式運行Rsync,而BACKUP上則以客戶端 方式運行Rsync,。這樣在Web服務器WWW上運行Rsync守護進程,,在BACKUP上定時運行客戶程序來備份Web服務器WWW上需要備份的內容。

配置Rsync服務器端

對于Rsync服務器來說,,最重要和復雜的就是它的配置了,。Rsync服務器的配置文件為/etc/rsyncd.conf,其控制認證,、訪問,、日志記錄 等。該文件是由一個或多個模塊結構組成,。一個模塊定義以方括弧中的模塊名開始,,直到下一個模塊定義開始或者文件結束,模塊中包含格式為name = value的參數(shù)定義,。每個模塊其實就對應需要備份的一個目錄樹,,比方說在實例環(huán)境中,有3個目錄樹需要備份:/www/和/mirror/file0/ 和/mirror/file1/目錄,,那么就需要在配置文件中定義3個模塊,,分別對應3個目錄樹。配置文件是行為單位的,,也就是每個新行都表示一個新的注 釋、模塊定義或者參數(shù)賦值,。(注:本例所指的Rsync服務器是名為WWW的服務器),。

例如,在www.上創(chuàng)建Rsyncd的配置文件/etc/rsyncd.conf,,內容如下:
[root@ www /] cat /etc/rsyncd.conf
uid = nobody
gid = nobody
use chroot = no
max connections = 4
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[www]
path = /mirror/www/
comment = my rsync site
ignore errors
read only = true
list = false
auth users = backup
hosts allow = 12.23.34.57/32
secrets file = /etc/rsyncd.secrets

[file0]
path = /mirror/file0
comment =  file0
ignore errors
read only = true
list = false
auth users = backup
hosts allow = 12.23.34.57/32
secrets file = /etc/rsyncd.secrets

[file1]
path =/mirror/file1
comment = file1
ignore errors
read only = true
list = false
auth users = backup
hosts allow = 12.23.34.57/32
secrets file = /etc/rsyncd.secrets
這里分別定義了[www],、[file0]、[file1]模塊,,分別對應于3個需要備份的目樹,。這里只允許12.23.34.57備份服務器WWW的數(shù) 據(jù),并且需要認證。3個模塊授權的備份用戶都為BACKUP,,并且用戶信息保存在文件/etc/backserver.pas中,,其內容如下:
[root@www /etc]# cat /etc/backserver.pas
backup:bk_passwd
并且該文件只能是Root用戶可讀寫的,否則Rsyncd啟動時會出錯,。這些文件配置完畢以后,,就需要在WWW服務器上啟動Rsyncd服務器:
[root@www /etc]# grep rsync services
rsync           873/tcp                         # rsync
rsync           873/udp                         # rsync
[root@www /etc] grep rsync inetd.conf
rsync   stream  tcp     nowait  root    /usr/local/bin/rsync    rsyncd -daemon
[root@www /etc]# rsync -daemon

執(zhí)行完畢上面的命令后,Rsync即可啟動,。Rsync默認服務端口為873,,服務器在該端口接收客戶的匿名或者認證方式的備份請求。
執(zhí)行Rsync客戶端命令  下一步就要運行Rsync客戶端的啟動命令了(本例所指的Rsync客戶端是名為BACKUP的服務器):

[backup@backup /] /usr/local/bin/rsync -vzrtopg -delete
-exclude  “logs/”--exclude “conf/ssl.*/”
--progress [email protected]::www /backup/www/
--password-file=/etc/rsync.pass

上面這個命令行中--vzrtopg里的v是代表Verbose(詳細),;z是代表Zip(壓縮),;r是代表Recursive(遞歸);Topg都是保 持文件原有屬性,,如屬主,、時間的參數(shù);--progress是指顯示出詳細的進度情況,;--delete是指如果服務器端刪除了這一文件,,那么客戶端也相 應把文件刪除,保持真正的一致,;--exclude “logs/”是表示不對/www/logs目錄下的文件進行備份,。同樣-exclude“conf/ssl.*/”是表示不對 /www/conf/ssl.*/目錄下的文件進行備份。
[email protected]::www 是表示該命令是對服務器12.23.34.56中的WWW模塊進行備份,,其中BACKUP表示使用BACKUP用戶來對該模塊進行備份,。-- password-file=/etc/rsync.pass來指定密碼文件,這樣就可以在腳本中使用而無須交互式地輸入驗證密碼了,。這里需要注意的是,, 這份密碼文件權限屬性要設得只有執(zhí)行這個命令的當前用戶可讀,本例中是BACKUP用戶,。
這里將備份的內容存放在備份機的/backup/www/目錄下,。
[backup@backup /] /usr/local/bin/rsync -vzrtopg -delete -exclude “logs/”--exclude “conf/ssl.*/” --progress [email protected]::www /backup/www/ --password-file=/etc/rsync.pass
receiving file list ... done
a.txt
wrote 100 bytes  read 990409 bytes  220113.11 bytes/sec
total size is 2779708994  speedup is 2806.34
這樣,Rsync同步服務就搭建好了,,最后我們可以將在客戶端執(zhí)行的命令通過Crontab定時執(zhí)行來實現(xiàn)自動備份,,或者寫一些腳本,這樣Rsync同步服務的搭建就更加完美了,。

一些示例腳本

1,、每隔7天將數(shù)據(jù)往中心服務器做增量備份
#!/bin/sh
# This script does personal backups to a rsync backup server. You
# with a 7 day rotating  backup. The incrementals will go
# into subdirectories named after the day of the week, and the c
# full backup goes into a directory called “current”
# [email protected]

# directory to backup
BDIR=/home/$USER

# excludes file 
EXCLUDES=$HOME/cron/excludes

# the name of the backup machine
BSERVER=owl
# your password on the backup server
export RSYNC_PASSWORD=XXXXXX
BACKUPDIR=‘date +%A’
OPTS=“--force --ignore-errors --delete-excluded
--exclude-from=$EXCLUDES
--delete --backup --backup-dir=/$BACKUPDIR -a”
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin
# the following line clears the last weeks incremental directory
[ -d $HOME/emptydir ]‘ ’mkdir $HOME/emptydir
rsync --delete -a $HOME/emptydir/ $BSERVER::$USER/$BACKUPDIR/
rmdir $HOME/emptydir
# now the actual transfer
rsync $OPTS $BDIR $BSERVER::$USER/current
2、備份至一個空閑的硬盤
#!/bin/sh
export PATH=/usr/local/bin:/usr/bin:/bin
LIST=“rootfs usr data data2”
for d in $LIST; do
mount /backup/$d
rsync -ax --exclude fstab --delete /$d/ /backup/$d/
umount /backup/$d
done
DAY=‘date “+%A”’
rsync -a --delete /usr/local/apache /data2/backups/$DAY
rsync -a --delete /data/solid /data2/backups/$DAY
3,、對vger.rutgers.edu的Cvs樹進行鏡像
#!/bin/bash
cd /var/www/cvs/vger/
PATH=/usr/local/bin:/usr/freeware/bin:/usr/bin:/bin
RUN=‘lps x | grep rsync | grep -v grep | wc -l’
if [“$RUN”-gt 0 ]; then
echo already running
exit 1
fi
rsync -az vger.rutgers.edu::cvs/CVSROOT/ChangeLog
$HOME/ChangeLog
sum1=‘sum $HOME/ChangeLog’
sum2=‘sum /var/www/cvs/vger/CVSROOT/ChangeLog’
if [ “$sum1”= “$sum2”]; then
echo nothing to do
exit 0
fi
rsync -az --delete
--force vger.rutgers.edu::cvs/ /var/www/cvs/vger/
exit 0

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多