您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何實現solaris服務之間的rsync同步,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
目的:
通過技術手段,保持服務器 A 中的某些目錄能夠定期同步到服務器 B 中。
本文針對 Sun Solaris 5.9 版本,其他版本或其他 unix 服務器僅具有參考價值
對于 Windows 服務器之間的文件同步,也可以采用 rsync ,但要使用 cwrsync 工具,請從 internet 上搜索資料。
工具:
rsync :在 unix 平臺下廣泛采用的同步軟件,免費使用,目前最新版本是 2.6.6
crontab : solaris 平臺上的定時任務管理器
描述:
rsync 同時安裝到 Server A 和 Server B 。
在 Server A 上, rsync 作為守護進程運行,通過配置,可以使得 Server A 上的某些目錄被 rsync 發布。
在 Server B 上, rsync 作為命令行工具運行,可以從運行 rsync 守護進程的另一臺服務器( Server A )上將所發布的目錄同步到 Server B 。
在 Server B 上配置定時任務,以便在指定的時間運行同步命令。
步驟:
1、 在 Server A 和 Server B 上安裝 rsync 軟件:
a) 從 [url]http://www.sunfreeware.com/programlistsparc9.html[/url] 上查找 rsync 的最新版本,從 [url]http://ftp.saix.net/pub/solaris-freeware/sparc/5.9/[/url] 上下載找到的文件。 目前的最新版本是 2.6.6 ,文件在本文所附的目錄中可以找到,名稱: rsync-2.6.6-sol9-sparc-local.gz
b) 通過 ftp 命令將文件上傳到 Server A 和 Server B ,在個人電腦的 DOS 命令行上執行命令如下:
ftp 10.1.4.10 # 通過 ftp 連接服務器 10.1.4.10
bin # 設定傳輸模式為二進制
put rsync-2.6.6-sol9-sparc-local.gz # 將本地的文件上傳到 10.1.4.10
bye # 退出 ftp 程序
c) 在 Server A 和 Server B 上安裝 rsync ,命令非常簡單。在個人電腦的 DOS 命令行上執行下面的命令:
telnet 10.1.4.10 # 連接到 10.1.4.10 的終端界面
gzip -d rsync-2.6.6-sol9-sparc-local.gz # 解壓縮 gz 文件
pkgadd -d rsync-2.6.6-sol9-sparc-local.gz # 安裝 rsync ,遇到提問,按回車即可
/usr/local/bin/rsync --version # 驗證 rsync 安裝是否完成
2、 在 Server A 上配置 rsync 服務
a) 編輯 rsync 的配置文件, /etc/rsyncd.conf ,該文件在安裝之初是沒有的,需要自己建立。命令如下:
vi /etc/rsyncd.conf # 編輯 /etc/rsyncd.conf 文件
文件內容如下:
uid = root # 以 root 身份訪問文件目錄
gid = root # 以 root 組身份訪問文件目錄
use chroot = yes # 可以使用 chroot
max connections = 1 # 最大連接數
syslog facility = local5
pid file = /var/run/rsyncd.pid
hosts allow = 10.1.4.13 # 只允許 10.1.4.13 訪問
[grpdomain1] # 這是一個發布項,可以發布多個
path=/data/bea/user_projects/grpdomain1 # 發布的路徑
read only=yes # 只讀
list = yes # 允許列文件清單
comment=CenGRP3.0,Sinopec Portal Web Server. # 描述信息
文件在本文所附的目錄中可以找到,名稱: ServerA\rsyncd.conf
[grpdomain1] 將作為其他服務器訪問 Server A 的 rsync 發布目錄的一個發布名,這樣的小節可以根據需要存在多個。
b) 以守護進程方式啟動 rsync 服務,命令如下:
/usr/local/bin/rsync --daemon&
c) 配置 rsync 自啟動
vi /etc/rc3.d/S99Rsync # 編輯 /etc/rc3.d/S99Rsync
chmod 700 /etc/rc3.d/S99Rsync # 設置文件可以被屬主( root )讀寫執行
文件內容如下:
/usr/local/bin/ rsync --daemon&
文件在本文所附的目錄中可以找到,名稱: ServerA\S99Rsync
d) 驗證服務
登陸 Server B ,執行命令:
/usr/local/bin/rsync -ztruvoglp --progress rsync://10.1.3.87
grpdomain1 CenGRP3.0,Sinopec Portal Web Server. # 執行結果
列出了 Server A 上面發布的目錄的名稱,說明配置成功
3、 在 Server B 上面設置自動獲取 Server A 上的文件
a) 為了方便管理,把腳本文件放置在 Server B 上的特定目錄下,下面的命令建立目錄 /data/rsync :
mkdir /data/rsync
b) 建立不同步文件的列表清單,清單文件名自己定義,該文件可選,如果不建立該文件,可以直接在后面步驟 C) 的腳本命令中使用參 --exclude 來直接指明。
vi /data/rsync/grpdomain1_exclude_file.list
文件每行表示一條,支持通配符,以發布項作為當前目錄,文件內容如下:
grpdomain1.log* # 表示 /data/bea/user_projects/grpdomain1/grpdomain1.log* 不同步
newgrplog # 表示 /data/bea/user_projects/grpdomain1/newgrp 目錄及子目錄
home/logs
applications/cenep/WEB-INF/log
文件在本文所附的目錄中可以找到,名稱: ServerB\grpdomain1_exclude_file.list
c) 建立同步腳本,可以根據需要建立多個腳本,每個腳本定義自己的調度計劃(見后)
vi /data/rsync/rsync-grpdomain1.sh # 編輯文件
chmod 700 /data/rsync/rsync-grpdomain1.sh # 設置文件為僅屬主可讀些執行
文件內容如下,注意不要換行:
/usr/local/bin/rsync –ztruvoglp --exclude-from=/data/rsync/grpdomain1_exclude_file.list --delete --progress rsync://10.1.4.10/grpdomain1 /data/bea/user_projects/grpdomain1
參數說明:
l --ztruvoglp ,表示的是壓縮傳輸、包含子目錄、保持相同的權限等,可不理會。
l --exclude-from ,指明從那個文件讀取除外文件清單
l --delete ,指明當文件被從 Server A 上刪除后,也在 Server B 上刪除
l --progress ,是否在控制臺上顯示明細,如果在定時任務中運行,最好不增加該參數。
l --exclude ,在命令行上直接指明那些文件不同步,格式 --exclude=”hgFF”
l rsync://10.1.4.10:873/grpdomain1 , 同布的源, 873 是缺省端口,可忽略
l /data/bea/user_projects/grpdomain1 同步目的地
d) 文件在本文所附的目錄中可以找到,名稱: ServerB\rsync-grpdomain1.sh
e) 檢測腳本是否正確,直接執行命令: /data/rsync/rsync-grpdomain1.sh
f) 設定每天 0 點執行同步命令,執行下面的命令
crontab -e # 編輯當前用戶的調度表
顯示的是一個 vi 界面,文件的內容可能如下,其中黑體部分是我們添加的:
#ident "@(#)root 1.20 01/11/06 SMI"
#
# The root crontab should be used to perform accounting data collection.
#
# The rtc command is run to adjust the real time clock if and when
# daylight savings time changes.
#
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
# 每天的晚上 24 點運行同步腳本 , 將 10 上的 grpdomain1 文件拷貝到本機
0 0 * * * /data/rsync/rsync-grpdomain1.sh
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___
起作用的是 0 0 * * * /data/rsync/rsync-grpdomain1.sh , 其中前面由空格間隔開的五項分別代表分鐘 小時 日 月
星期
g) 定時服務的啟動和停止:
/etc/init.d/cron stop # 停止定時服務
/etc/init.d/cron start # 啟動定時服務
4、 更多的文件目錄的同步之 ServerA 的操作
a) 修改 ServerA 的 /etc/rsyncd.conf ,增加新的描述,參見 [grpdomain1] 的描述
b) 停止 Server A 上的 rsync 守候進程,命令:
ps –ef|grep rsync # 顯示 rsync 進程
kill 888 #888 要根據實際的進程號替換
c)
重新啟動守候進程,執行:
/usr/local/bin/rsync –daemon
感謝你能夠認真閱讀完這篇文章,希望小編分享的“如何實現solaris服務之間的rsync同步”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。