利用rsync+crontab實現Linux服務器間的定時增量備份

rsync是Linux、UNIX系統下的數據鏡像備份工具,它的特性以下:
一、能夠鏡像保存整個目錄樹和文件系統。
二、能夠很容易作到保持原來文件的權限、時間、軟硬連接等等。
三、無須特殊權限便可安裝。
四、優化的流程,文件傳輸效率高。
五、能夠使用rcp、ssh等方式來傳輸文件,固然也能夠經過直接的socket鏈接。 
六、支持匿名傳輸。
服務器

今天就利用rsync+crontab來實現Linux服務器間的定時增量備份。
環境說明:
工做服務器A:IP地址 192.168.1.86,操做系統 CentOS 5.5,已創建用戶 tom
備份服務器B:IP地址 192.168.1.87,操做系統 CentOS 5.5,已創建用戶 jack(uid 503, gid 503)

實現目的:
天天早上3點,將A服務器上的用戶目錄/home,自動備份到B服務器的/home/jack/backup-A下,備份增量進行,不須要任何用戶交互。
配置步驟:
一、配置備份服務器B
1)[root@Server-B ~]# rpm -qa| grep rsync   #查看是否有rsync包
 rsync-2.6.8-3.1
以上輸出說明rsync已經裝好了,保證/etc/services有下面的行

2)rsync的rpm包自己沒有附帶rsyncd的配置文件,須要手動建立它(/etc/rsyncd.conf)
[root@Server-B ~]# vi /etc/rsyncd.conf 
3)修改/etc/xinetd.d/rsync,打開rsync服務
[root@Server-B ~]# vi /etc/xinetd.d/rsync
 
4)開啓rsyncd服務,並設置系統啓動時,加載rsync服務
[root@Server-B ~]# /usr/bin/rsync --daemon
 
5)檢驗rsync服務是否啓動成功
 
有以下內容表示已經成功啓動

6)配置ssh的非交互式登陸
思路:服務器A生成一對RSA密鑰,本身保留私鑰,將私鑰附加到登陸服務器B的authorized_keys中,A登陸B,以及進行A到B的rsync就不用交互式輸入密碼了。
>>在服務器A上生成一對密鑰(以root的身份執行) 
>>遠程登陸到備份服務器B上而且建立.ssh目錄。
[root@Server-A ~]# ssh jack@192.168.1.87
 …
[jack@Server-B ~]$ mkdir .ssh;chmod 0700 .ssh
 
>>在A機上執行遠程拷貝公鑰到B機:
[root@Server-A ~]# scp .ssh/id-rsa.pub root@192.168.1.87: /home/jack/.ssh/authorized_keys
這樣,無交互的ssh登陸就完成了。特別注意的是B服務器的.ssh目錄權限,最好是700,若是賦予它過多的權限,無交互登陸可能不生效!
7)編制備份腳本
在服務器A上編寫一個備份腳本,放置在/home/tom/public_scripts下,名爲backup.sh
 #!/bin/sh
 TARGET_DIR=backup-A
 for SOURCE_DIR in 「/home」
  do
   echo 「Backing up $SOURCE_DIR …」
   rsync -au –delete $SOURCE_DIR
jack@192.168.1.87:/home/jack/$TARGET_DIR
  done
[root@Server-A public_scripts]# chmod 755 backup.sh
該腳本權限設置爲755,以便其餘用戶可訪問到。
8)修改計劃任務
在服務器A上,用root身份執行如下命令
[root@Server-A ~]# crontab -e
 3 * * * * /home/tom/public_scripts/backup.shssh

相關文章
相關標籤/搜索