rsync存儲服務器-全網備份
一、rsync功能介紹: 復制 (同步)的工具
全量及增量
本地和遠程
Rsync英文全稱為Remotesynchronization
本地復制cp(全量備份),rsunc也有此功能(增量)
遠程復制scp(全量備份),rsync也有此功能(增量)
刪除工具rm,rsync也有此功能
二、 Rsync的特性
支持拷貝特殊文件如鏈接文件,設備等
可以有排除指定文件或目錄同步的功能,相當於打包命令tar的排除功能
可以做到保持原文件或目錄的權限、時間、軟硬鏈接、屬主、組等所有屬性均不改變 - p
可以實現增量同步,即只同步發生變化的數據,因此數據傳輸效率很高(tar-N)
可以使用rcp,rsh,ssh等方式來配合傳輸文件(rsync本身不對數據加密)
可以通過socket(進程方式)傳輸文件和數據(服務端和客戶端)*****
支持匿名的或認證(無需系統用戶)的進程模式傳輸,可實現方便安全的進行數據備份及鏡像
註:cp scp rm僅僅是命令
rsync除了作為命令使用,還可以服務使用(持續運行一個進程)
client/server;客戶端/服務器
brower/server:瀏覽器/服務器
三、 rsync 的三種工作模式:
1、用參數選項說明:
-v,--verhose 詳細模式輸出,傳輸時的進度等信息
-z,--compress 傳輸時進行壓縮以提高傳輸效率,--compress-level=NUM可按級別壓縮
-a,--archive 歸檔模式,表示以遞歸方式傳輸文件,並保持所有文件屬性,等於–rtopgD1
===========================================================================
-r,--recursive對子目錄以遞歸模式,即目錄下的所有目錄都同樣傳輸,註意是小寫r
-t,--time 保持文件時間信息
-o,-owner 保持文件屬主信息
-p,--perms 保持文件權限
-g,--group 保持文件屬組信息
-p,--progress 顯示同步的過程及傳輸時的進度等信息
-D,--devices 保持設備文件信息
-i,-links 保留軟連接
-e,--rsh=COMMAND 使用的信道協議,指定替代rsh的shell。例如:ssh
--exclude=PATTERN 指定排除不需要傳輸的文件模式(和tar參數一樣)
--exclude-from=file(文件名所在的目錄文件)(和tar參數一樣)
--bwlimit-RATE limit socket I/O bandwidth (限速功能)
2、本地復制/刪除:
本地復制:用法類似cp 拷貝文件或目錄(copy) -i操作前確認,-p保持屬性,-r目錄。-a(dpr)
[[email protected] opt]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64
[[email protected] opt]# rsync -v /etc/hosts /opt/d
hosts
sent 227 bytes received 31 bytes 516.00 bytes/sec
total size is 158 speedup is 0.61
[[email protected] opt]# cat d
127.0.0.1 localhost localhost.localdomain localhost4localhost4.localdomain4
::1 localhost localhost.localdomainlocalhost6 localhost6.localdomain6
本地刪除:讓null目錄的內容和/tmp目錄一樣(刪除原理)
rsync -avz --delete /null/ /tmp/
rsync -avz --delete /null/ /
3、 通過通道(ssh,rsh)拷貝(異機)
push:推動
rsync –avz /opt [email protected]:/tmp/
pull:從服務器拽
rsync –avz [email protected]:/tmp//tmp/
借助SSH通道(加密傳輸):
push:推動
rsync –avz –e ‘ssh –p 22’ /opt [email protected]:/tmp/
pull:從服務器拽
rsync –avz –e ‘ssh –p [email protected]:/tmp//tmp/
註:將來可以做密匙認證,傳輸時候可以不用密碼了
4、服務模式(daemon)*****
client /server
客戶端 /服務器
定角色:
client:nfs01,m01 server:backup
1)服務端操作:
[[email protected] ~]# cat /etc/rsyncd.conf
#rsync_config_________________________start
#created by oldboy 15:01 2016-06-04
#rsyncd.conf start#
uid = rsync #==>用戶 遠端的命令使用rsync訪問共享的目錄
gid = rsync #==>用戶組
use chroot = no #==>安全相關
max connections = 200 #==>最大連接數
timeout = 300 #==>超時時間
pid file = /var/run/rsyncd.pid #==>進程對應的進程號文件
lock file = /var/run/rsync.lock #==>鎖文件(保證數據的安全)
log file = /var/log/rsyncd.log #==>rsync的日誌文件
[backup] #==>模塊名稱
path = /backup #==>服務器端提供訪問的目錄
ignore errors #==>忽略錯誤信息
read only = false #==>客戶端是否可上傳
list = false #==>不能列表(不能ls)
hosts allow =172.16.1.0/24 #==>允許那些服務器連接
(這倆host二者留其一就可以;不然外網IP也能推送數據過來)
hosts deny =0.0.0.0/32 #==>拒絕那些機器連接
auth users = rsync_backup #==>虛擬用戶
secrets file = /etc/rsync.password #==>存放虛擬賬號的用戶和密碼
#rsync_config_______________end
===================================================================
===================================================================
[[email protected] ~]# mkdir /backup –p
==================================================
[[email protected] ~]# id rsync
id: rsync:無此用戶
[[email protected] ~]# useradd -s /sbin/nologin rsync -M
[[email protected] ~]# id rsync
uid=501(rsync) gid=501(rsync) 組=501(rsync)
========================================================
[[email protected] ~]# ll -ld /backup
drwxr-xr-x 2 root root 4096 9月 23 18:52 /backup
[[email protected] ~]# chown -R rsync.rsync /backup/
[[email protected] ~]# ll -ld /backup
drwxr-xr-x 2 rsync rsync 4096 9月 23 18:52 /backup
================================================================
[[email protected] ~]# ll /etc/rsync.password
ls: 無法訪問/etc/rsync.password: 沒有那個文件或目錄
[[email protected] ~]# echo "rsync_backup:oldboy" >/etc/rsync.password
[[email protected] ~]# ll /etc/rsync.password
-rw-r--r-- 1 root root 20 9月 23 18:58 /etc/rsync.password
[[email protected] ~]# chmod 600 /etc/rsync.password
[[email protected] ~]# ll /etc/rsync.password
-rw------- 1 root root 20 9月 23 18:58 /etc/rsync.password
===================================================================
[[email protected] ~]# rsync --daemon
[[email protected] ~]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 3649/rsync
tcp 0 0 :::873 :::* LISTEN 3649/rsync
2)客戶端操作:
[[email protected] ~]# echo "oldboy" >/etc/rsync.password
[[email protected] ~]# ll /etc/rsync.password
-rw-r--r-- 1 root root 7 9月 23 19:04 /etc/rsync.password
[[email protected] ~]# chmod 600 /etc/rsync.password
[[email protected] ~]# ll /etc/rsync.password
-rw------- 1 root root 7 9月 23 19:04 /etc/rsync.password
推送命令:
[[email protected] ~]# rsync -avz /tmp/ [email protected]::backup --password-file=/etc/rsync.password
sending incremental file list
sent 920 bytes received 13 bytes 88.86 bytes/sec
total size is 698 speedup is 0.75
[[email protected] ~]# touch /tmp/oldboy.txt
[[email protected] ~]# rsync -avz /tmp/ [email protected]::backup --password-file=/etc/rsync.password
sending incremental file list
./
oldboy.txt
sent 979 bytes received 35 bytes 96.57 bytes/sec
total size is 698 speedup is 0.69
四、#####總結:”rsync服務端與客戶端配置步驟
***====Rsync服務端:
1、查看rsync安裝包
rpm -qa rsync
2、添加rsync服務的用戶,管理本地目錄的
useradd -s /sbin/nologin -M rsync
id rsync
3、生成rsyncd.conf配置文件
vi /etc/rsyncd.conf放入事先準備的配置。man rsyncd.conf去查(http://www.samba.org/ftp/rsync/rsyncd.conf.html)。
4、根據rsyncd.conf的auth users配置賬戶,遠程連接的。
並根據secrets file參數生成密碼文件
echo "rsync_backup:oldboy">/etc/rsync.password
cat /etc/rsync.password
5、為密碼文件配置權限
chmod 600 /etc/rsync.password
ls -l /etc/rsync.password
6、創建共享的目錄並授權rsync服務管理
mkdir /backup -p
chown -R rsync.rsync /backup
如果沒有/backup目錄,就會chdirfailed。
7、啟動rsync服務並檢查
rsync --daemon
ps -ef|grep rsync|grep -v grep
lsof -i :873
8、加入開機自啟動
echo "/usr/bin/rsync --daemon">>/etc/rc.local
tail -1 /etc/rc.local
(over)
***===rsync客戶端
1、生成連接服務器需要的密碼文件
echo "oldboy" >/etc/rsync.password
cat /etc/rsync.password
2、為密碼文件配置權限
chmod 600 /etc/rsync.password
ls -l /etc/rsync.password
3、同步文件
推送:
rsync -avz [email protected]::oldboy --password-file=/etc/rsync.password
rsync -avz /tmp/rsync:[email protected]/backup/ --password-file=/etc/rsync.password
拉取:
rsync -avz [email protected]::oldboy /tmp/--password-file=/etc/rsync.password
rsync -avz rsync:[email protected]/backup//tmp/ --password-file=/etc/rsync.password
提示:上述的backup為模塊名,不是路徑。
五、 Rsync排錯思路
1、 Rsync守護進程服務傳輸數據排錯思路:
※rsync服務器拍錯思路:
1)查看rsync服務配置文件路徑是否正確,正確的默認路徑為:/etc/rsyncd.conf
2)查看配置文件裏host allow,host deny,允許的ip網段是否是允許客戶端訪問的ip網段
3)查看配置文件中path參數裏的路徑是否存在,權限是否正確(正常應為配置文件中的UID參數對應的屬主和組)
4)查看rsync服務是否啟動。查看命令為:ps –ef|grep rsync。端口是否在netstat –lnt|grep 873
5)查看iptables防火墻和selinux是否開啟允許rsync服務通過,也可以考慮關閉
6)查看服務器rsync配置的密碼文件是否為600的權限,密碼文件格式是否正確,正確格式為用戶名:密碼,文件路徑和配置文件裏的secrectfiles參數對應
7)如果是推送數據,要查看下,配置rsyncd.conf文件中用戶是否對模塊下目錄有可讀寫的權限
2、 ※Rsync客戶端排錯思路
1)查看客戶端rsync配置的密碼文件是否為600的權限,密碼文件格式是否正確,註意:僅需要有密碼,並且和服務端的密碼一致
2、用telnet連接rsync服務器ip地址873端口,查看服務是否啟動(可測試服務端防火前是否阻擋)telnet 10.0.0.141 873
3)客戶端執行命令時rsync –avzP [email protected]::oldboy/test/test/ --password-file=/etc/rsync.password
註:此命令細節牢記,尤其10.0.0.41::oldboy/test/處的雙冒號及隨其後的oldboy為模塊名稱
3、自我模擬排錯實踐
不正規操作,自己排查熟悉操作流程
六、Rsync優缺點
rsync優點:
1、 增量備份,支持socket(daemon),集中備份(支持推拉,都是以客戶端為參照物)
2、 遠程Shell通道模式還可以加密(SSH)傳輸,socket(daemon)需要加密傳輸,可以利用vpn服務或ipsec服務
rsync缺點:
1、 大量小文件實時同步的時候,比對時間較長,有的時候,同步過程中,rsync進程可能會停止,僵死
2、 同步大文件,10G這樣的大文件有時也會出問題,中斷。未完整同步前,是隱藏文件,可以通過續傳(--partial)等參數實現傳輸
3、 一次性遠程拷貝可以用scp,大量小文件要達成一個包再拷貝
本文出自 “Linuxgao” 博客,請務必保留此出處http://linuxgao.blog.51cto.com/11934904/1930466
rsync存儲服務器-全網備份