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安裝測試