1. 程式人生 > >定時備份windows機器上的檔案到linux伺服器上的操作梳理(rsync)

定時備份windows機器上的檔案到linux伺服器上的操作梳理(rsync)

開發十年,就只剩下這套架構體系了! >>>   

隨筆- 551  文章- 0  評論- 579 

定時備份windows機器上的檔案到linux伺服器上的操作梳理(rsync)

 

 

由於需要對網路裝置做備份,備份檔案是放到windows機器上的。現在需要將備份資料同步到linux備份機器上,想到的方案有三種:

1 2 3 1)將windows的備份目錄共享出來,然後在linux伺服器上進行掛載,最後對掛載目錄進行定時同步。這種方式不太安全。
2)使用tftp、 sftp 方式,也不太安全。 3)推薦通過 rsync 方式(cwRsyncServer_4.1.0_Installer),windows機器到windows機器之間的定期同步也使用這種方式。

下面簡單介紹下使用rsync方式的同步過程:

一、windows上的操作記錄
1)在windows server上安裝配置Cwrsyncserver,按照提示一步步安裝即可,需要注意下cwrsyncserver有個設定使用者與密碼的地方,要麼就改為自己的使用者名稱與密碼。比如使用者Administrator,密碼:123456,這個使用者名稱與密碼是一會啟動服務時需要的,也就是你伺服器的使用者名稱和密碼,如果感覺不安全,可以考慮在WINDOWS中建立一個使用者名稱和密碼

2)配置rsyncd.conf 檔案

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 use chroot = false                   strict modes = false               #不驗證使用者密碼,      hosts allow = 192.168.1.90         #只允許ip為192.168.1.90的客戶機來同步資料 max connections = 5                #指定最大的連線數,預設是0即沒有限制 lock file = rsyncd.lock log file = rsyncd.log port = 873                         #預設就是873,也可以指定為其他埠 pid = 0                            #pid和uid為0,表示指定匿名訪問 uid = 0                                [backup]                           #模組名字,這個可以自定義 path = /cygdrive/d/Backup          #選擇備份路徑,不支援中文 read only = yes                    #只讀模式 transfer logging = yes list = no auth users = Administrator         #指定訪問的使用者名稱 secrets file = /cygdrive/e/Setting/Rsync/rsync_db . ps   #指定訪問的使用者名稱密碼     特別注意: 以上Windows目錄的寫法,應該按照POSIX風格來寫,預設配置檔案的寫法cygwin貌似不工作,而要寫成cygdrive,如上面D: /Backup ,要寫成 /cygdrive/d/Backup

新建密碼檔案:E:\Setting\Rsync\rsync_db.ps

1 2 3 4 Administrator:PASSWD_123@bjk 注意: 此密碼檔案裡的格式是 "使用者名稱:密碼" ,這個密碼可以隨意指定。但最好設定伺服器的使用者名稱和密碼。如果覺得不安全,就另外建立一個使用者名稱和密碼,專門用於 rsync 同步之用。 但是千萬要記得這個建立的使用者名稱對E:\Setting\Rsync\rsync_db. ps 這個密碼檔案要有修改的操作許可權。

3)啟動cwrsync服務(注意: 如果開啟了防火牆,則防火牆規則中要新增Tcp埠873允許通訊)
右鍵 我的電腦->管理->服務與應用程式->服務->RsyncServer->右鍵 屬性->登陸-> 在此帳戶輸入有效的使用者名稱(域使用者、要有許可權管理E盤的使用者名稱哦),密碼和、再次確認密碼;此處使用域管理員帳號與密碼(如果使用者和密碼無許可權或錯誤,將無法啟動RsyncServer服務)。啟動RsyncServer服務,並修改屬性為自動,以便後續開機就啟動此服務。

服務啟動成功後,就可以配置linux客戶端了。

二、linux客戶端(192.168.1.90)上的操作記錄
1)先檢視下能否連通windows機器(192.168.1.101)的873埠(rsync埠)。如下表示連線正常!

1 2 3 4 [root@backup ~] # telnet 192.168.1.101 873 Trying 192.168.1.101... Connected to 192.168.1.101. Escape character is '^]' .

2)進入Linux伺服器,新建一個backup_passwd的檔案,內容為在上面windows中RsyncServer中設定的密碼內容:

1 2 3 4 [root@backup ~] # cd /root [root@backup ~] # vim backup_passwd          #再將密碼寫入些檔案中 PASSWD_123@bjk [root@backup ~] # chmod 600 backup_passwd    #改下許可權,只有root使用者能看。

3)linux伺服器上要安裝rsync環境。這裡將windows備份資料同步到linux的/Win_Back目錄下(為了安全考慮,可以不新增下面命令中的--delete引數)

1 [root@backup ~] # rsync -av --progress --delete --port=873 --password-file=/root/backup_passwd [email protected]::backup /Win_Back/

4)建立備份指令碼

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 [root@backup ~] # mkdir /root/backup [root@backup ~] # vim /root/backup/win_bak.sh #!/bin/bash #create by fengzehua PASSWORD= /root/backup_passwd SOURCE= '192.168.1.101::backup' USER=Administrator DEST= /Win_Back/ echo "start backup file server" /usr/bin/rsync -av --progress --delete --port=873 --password- file =$PASSWORD $USER@$SOURCE $DEST if [ $? - eq 0 ]      then        echo "file server backup successfully!" else      echo "file server backup failure, try again:"      /usr/bin/rsync -av --progress --delete --port=873 --password- file =$PASSWORD $USER@$SOURCE $DEST fi

5)定時備份任務,每小時執行一次同步操作

1 2 [root@backup ~] # crontab -e 0 * * * *  /bin/bash -x /root/backup/win_bak .sh > /dev/null 2>&1
***************當你發現自己的才華撐不起野心時,就請安靜下來學習吧***************