AIX環境下文件遠程傳輸複製工具–rsync安裝測試
- 2019 年 10 月 28 日
- 筆記
一、RSYNC簡介
rsync(remote synchronize)是一個遠程數據同步工具,可通過LAN/WAN快速同步多台主機間的文件。rsync使用所謂的「rsync算法」來使本地和遠程兩個主機之間的文件達到同步,這個算法只傳送兩個文件的不同部分,而不是每次都整份傳送,因此速度相當快。 rsync的基本特點如下:1.可以鏡像保存整個目錄樹和文件系統;2.可以很容易做到保持原來文件的權限、時間、軟硬鏈接等;3.無須特殊權限即可安裝;4.優化的流程,文件傳輸效率高;5.可以使用rsh、ssh等方式來傳輸文件,當然也可以通過直接的socket連接;6.支持匿名傳輸。
二、Openssh安裝
1.下載軟件
Openssl下載:https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=aixbp&S_PKG=openssl&lang=en_US Openssh下載:http://sourceforge.net/projects/openssh-aix 下載得到軟件為: openssl-0.9.8.1302.tar.Z 和openssh_5.4p1.tar.z
2.安裝openssh
一般是先裝openssl再裝openssh。通過smit install 安裝 openssl和openssh, 如下,輸入安裝文件的路徑,選擇接受新的許可協議。
3.檢查安裝包
裝完ssl和ssh後安裝包如下: ssh: openssh.base.client、openssh.base.server、openssh.license、openssh.man.en_US、openssh.msg.en_US; ssl: openssl.license、openssl.man.en_US、openssl.base
4.重啟服務
tppc01:/ #stopsrc -s sshd 0513-044 The sshd Subsystem was requested to stop. tppc01:/ #startsrc -s sshd 0513-059 The sshd Subsystem has been started. Subsystem PID is 1581116. tppc01:/ #ssh –V OpenSSH_5.4p1, OpenSSL 0.9.8m 25 Feb 2010
三、RSYNC安裝
1.安裝rsync包
下載安裝包port和rsync: popt-1.7-2.aix5.1.ppc.rpm rsync-2.6.2-1.aix5.1.ppc.rpm 鏈接為:
ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/rsync/rsync-2.6.2-1.aix5.1.ppc.rpm ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/rpm/popt-1.7-2.aix5.1.ppc.rpm
用smitty進行安裝,將軟件包放置於/tmp/rsync目錄下,安裝如下:
2.服務器端配置
服務器端為源端(172.27.34.237),源端配置文件主要為rsyncd.conf(主配置文件)、rsyncd.pwd(密碼文件)、rsyncd.motd(rsync服務器信息),在/etc下新建rsync目錄,進入/etc/rsync新建配置文件rsyncd.conf、rsyncd.pwd、rsyncd.motd.
rsyncd.conf內容如下:
rsyncd.conf 是rsync服務器主要配置文件,該文件默認不存在需手動創建。
uid=root gid=system #max connections=4 use chroot=true log file=/var/log/rsyncd.log pid file=/var/run/rsyncd.pid motd file = /etc/rsync/rsyncd.motd #lock file=/var/run/rsyncd.lock #auth users=root secrets file=/etc/rsync/rsyncd.pwd transfer logging = true #port = 873 #limit access to private LANs hosts allow=172.27.34.238 #hosts deny=* [rsync] path=/home/rsync comment = home rsync #ignore errors read only = yes list = yes auth users = root secrets file=/etc/rsync/rsyncd.pwd
rsyncd.pwd內容如下:
rsyncd.pwd為密碼文件,格式為:user:password;此用戶必須系統中存在,密碼為rsync同步密碼,可以與系統密碼不同,服務器端與客戶端保持一致即可;為保證密碼的安全性,密碼文件權限應設置為600,屬主為root。
rsyncd.motd內容為:
++++++++++++++++++++++++++++++++++++++++++++++ Welcome to use the Location A To Location B rsync services! 2018------2019 ++++++++++++++++++++++++++++++++++++++++++++++
rsyncd.motd是定義rysnc 服務器信息的,也就是用戶登錄信息。比如讓用戶知道這個服務器是誰提供的等;類似ftp服務器登錄時,我們所看到的提示信息。在全局定義變量時,並不是必須的。
3.客戶端配置
注意:客戶端密碼文件格式與服務器端不同,密碼文件權限屬性為屬主可讀。
4.啟動rsync服務
服務器端: 啟動rsync進程
/usr/bin/rsync --daemon --config=/etc/rsync/rsyncd.conf
此服務項不會開機啟動,服務端機器重啟後需啟動該服務 檢查服務是否啟動,查看進程:
ps –ef|grep rsync
檢查端口(rsync默認端口為873,端口監聽證明服務拉起):
netstat –an|grep 873
以上為正常程序正常啟動
客戶端:
rsync -vzrtopg --progress --delete --exclude "diff_bak/" --password-file=/etc/rsync/rsyncd.pwd [email protected]::rsync /home/rsync
為了保證定時同步,客戶端同步命令可以寫成定時任務形式定時同步。
四、配置信息詳解
1.服務器端定義
全局定義
參數 |
說明 |
---|---|
uid=root |
服務器端傳輸文件時,要發哪個用戶和用戶組來執行,默認是nobody |
gid=system |
服務器端傳輸文件時,要發哪個用戶和用戶組來執行,默認是nobody |
max connections=4 |
客戶端最多連接數 |
use chroot=true |
在傳輸文件之前,服務器守護程序在將chroot 到文件系統中的目錄中,這樣做的好處是可能保護系統被安裝漏洞侵襲的可能。缺點是需要超級用戶權限。另外對符號鏈接文件,將會排除在外。也就是說,你在rsync服務器上,如果有符號鏈接,你在備份服務器上運行客戶端的同步數據時,只會把符號鏈接名同步下來,並不會同步符號鏈接的內容 |
log file=/var/log/rsyncd.log |
rsync服務器的日誌 |
pid file=/var/run/rsyncd.pid |
告訴進程寫到/var/run/rsyncd.pid文件中 |
motd file=/etc/rsync/rsyncd.motd |
定義motd file路徑,rsyncd.motd內容是定義服務器信息的,用戶登錄時會看到這個信息 |
transfer logging = true |
傳輸文件日誌 |
port = 873 |
指定運行端口,默認是873,可以自己指定 |
hosts allow=172.27.34.238 |
可以指定單個IP,也可以指定整個網段,能提高安全性。格式是ip 與ip 之間、ip和網段之間、網段和網段之間要用空格隔開 |
read only = yes |
只讀選擇,不讓客戶端上傳文件到服務器上 |
模塊定義
參數 |
說明 |
---|---|
[rsync] |
模塊名。主要是定義服務器哪個目錄要被同步。每個模塊都要以[name]形式。這個名字就是在rsync 客戶端看到的名字。服務器真正同步的數據是通過 path 來指定的。我們可以根據自己的需要,來指定多個模塊。每個模塊要指定認證用戶,密碼文件、但排除並不是必須的 |
path=/home/rsync |
指定文件目錄所在路徑 |
comment = home rsync |
注釋。注釋內容可自己定義,起提示作用 |
ignore errors |
忽略IO錯誤 |
exclude = beinan/ samba/ |
把/home目錄下的beinan和samba 排除在外,beinan/和samba/目錄之間有空格分開 |
list = yes |
list 意思是把rsync 服務器上提供同步數據的目錄在服務器上模塊是否 顯示列出來。默認是yes 。如果你不想列出來,就no ;如果是no是比較安全的,至少別人不知道你的服務器上提供了哪些目錄。你自己知道就行了 |
auth users = root |
認證用戶是root,用戶必須在服務器上存在,如果想用多個用戶,需以,隔開,如auth users = root,user1 |
secrets file=/etc/rsync/rsyncd.pwd |
密碼文件保存路徑 |
2.客戶端定義
rsync命令格式:
- 1.rsync [OPTION]… SRC [SRC]… [USER@]HOST:DEST
- 2.rsync [OPTION]… [USER@]HOST:SRC DEST
- 3.rsync [OPTION]… SRC [SRC]… DEST
- 4.rsync [OPTION]… [USER@]HOST::SRC [DEST]
- 5.rsync [OPTION]… SRC [SRC]… [USER@]HOST::DEST
- 6.rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]
rsync有六種不同的工作模式:
- 1.拷貝本地文件;當SRC和DES路徑信息都不包含有單個冒號":"分隔符時就啟動這種工作模式。
- 2.使用一個遠程shell程序(如rsh、ssh)來實現將本地機器的內容拷貝到遠程機器。當DST路徑地址包含單個冒號":"分隔符時啟動該模式。
- 3.使用一個遠程shell程序(如rsh、ssh)來實現將遠程機器的內容拷貝到本地機器。當SRC地址路徑包含單個冒號":"分隔符時啟動該模式。
- 4.從遠程rsync服務器中拷貝文件到本地機。當SRC路徑信息包含"::"分隔符時啟動該模式。
- 5.從本地機器拷貝文件到遠程rsync服務器中。當DST路徑信息包含"::"分隔符時啟動該模式。
- 6.列遠程機的文件列表。這類似於rsync傳輸,不過只要在命令中省略掉本地機信息即可。
rsync中的參數:
參數 |
說明 |
---|---|
-a |
以archive模式操作、複製目錄、符號連接 相當於-rlptgoD |
-r |
遞歸 |
-l |
是鏈接文件,意思是拷貝鏈接文件 |
-p |
表示保持文件原有權限 |
-t |
保持文件原有時間 |
-g |
保持文件原有用戶組 |
-o |
保持文件原有屬主 |
-D |
相當於塊設備文件 |
-P |
傳輸進度 |
-v |
傳輸時的進度等信息 |
-e |
ssh的參數建立起加密的連接 |
-u |
只進行更新,防止本地新文件被重寫,注意兩者機器的時鐘的同步 |
–progress |
指顯示出詳細的進度情況 |
–delete |
指如果服務器端刪除了這一文件,那麼客戶端也相應把文件刪除,保持真正的一致 |
–password-file=/password/path/file |
指定密碼文件,這樣就可以在腳本中使用而無需交互式地輸入驗證密碼了,這裡需要注意的是這份密碼文件權限屬性要設得只有屬主可讀 |
本文所有腳本和配置文件已上傳:AIX環境下文件遠程傳輸複製工具–rsync安裝測試