一、rsync的特性
rsync的特性:
1、 支持拷貝特殊文件,設備等
2、 可以有排除指定文件或者目錄同步的功能,相當於tar的排除功能
3、 可以做到保持源文件或目錄的權限、時間、軟硬連接、屬主、組等所有屬性均不改變-p
4、 可實現增量同步,既只能同步發生變化的數據,因此數據傳輸效率很高(tar -N)
5、 可以使用rcp,rsh,ssh等方式來配合傳輸文件(rsync本身不對數據加密)
6、 可以通過socket(進程方式)傳輸文件和數據(服務端和客戶端)
7、 支持尼米ingde或認證(無需系統用戶)的進程模式傳輸,可實現方便安全的進行數據備份及鏡像
二、rsync的應用
web服務器到備份服務器之間—》定時備份站點數據及配置 cron+rsync
nfs服務端到備份服務器之間---》實時備份 sersync+rsync \inotify+rsync \lrsyncd+rsync
三、rsync的用法
rsync的參數:
-v 詳細模式輸出,傳輸的進度等信息
-z 傳輸的時候進行壓縮提高傳輸的效率
-a 歸檔模式,表示遞歸方式傳輸並且保持所有文件屬性,等於-rtopgDl
-e -rsh = COMMAND使用的通道協議,指定替代rsh的shell程序
--bwlimit 限速
三、rsync的三種模式
1)local模式
rsync -avz /etc/hosts /tmp/ ===》cp
rsync -avz --delete /tmp1/ /mnt/ ===>rm
第二種工作模式、使用遠程的shell -e指定隧道
推 把文件推到服務器端 注意這里的ip是對面的ip
rsync -avzP -e 'ssh -p 22' /tmp/ root@10.0.0.41:/tmp
拉
rsync -avzP -e 'ssh -p 22' root@10.0.0.41/tmp /opt 這里是把tmp目錄和tmp里面的內容都拉過來
rsync -avzP -e 'ssh -p 22' root@10.0.0.41:/tmp/ /opt 這個是把tmp的子目錄里面的內容全部拉過來注意拉的ip是對面的ip
如果傳輸速度太慢。要在/etc/ssh/sshd_config 81行注釋掉、80行打開,122行打開
第三種以守護進程(socket)的方式傳輸數據
需要做以下准備
1、配置服務端rsync
1)服務端的錯誤日志cat /var/log/rsyncd.log
1)首先給備份服務器設置配置文件
vim /etc/rsyncd.conf
uid = 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 ignore errors read only =false list = false hosts allow =172.168.1.0/24 #hosts deny = 0.0.0.0/32#---》上面是允許網段,這個是不允許網段,所以配置文件二選一 auth users = rsync_backup secrets file = /etc/rsync.password [backup] path = /backup
2)創建uid和gid useradd rsync -s /sbin/nologin -M
3)創建模塊目錄並且授權
mkdir /backup
chown -r rsync /backup/
4)創建密碼文件,並且收縮權限
echo "rsync_backup:pyrene">/etc/rsync.password
chmod 600 /etc/rsync.password
5、查看版本和端口
rsync —daemon
netstat -lntup|grep rsync
Ps -ef |grep rsync|grep -v grep
6、加入開機自啟動
chkconfig rsync on
echo “rsync --daemon”>>/etc/rc.local
tail -1 /etc/rc.local
2配置rsync客戶端
1、創建密碼文件
echo “pyrene” >/etc/rsync.password
chmod 600 /etc/rsync.password
2、創建備份目錄(用於打包文件)
mkdir /backup
3,daemon模式用法
第一種模式:
push:推 下面是把客戶端的tmp下內容推到服務端叫做rsync_backup這個auth users下的backup模塊里面
rsync -avz /tmp/ rsync_backup@172.16.1.41::backup —password-file=/etc/rsync.password
拉
rsync -avz rsync_backup@192.168.241.132::backup /tmp/ —password-file=/etc/rsync.password
第二種模式:
拉
Rsync -avz rsync://rsync_backup@192.168.241.132/backup/ /tmp --password-file=/etc/rsync.password
推
rsync -avz /tmp/ rsync://rsync_backup@192.168.241.132/backup/
--password-file=/etc/rsync.password
四、排除及無差異同步
排除單個文件:
rsync -avz —exclude=a /backup/ rsync_backup@172.168.16.1.41::backup —password-file=/etc/rsync.password
排除多個文件:
rsync -avz —exclude={a,b} /backup/ rsync_backup@172.168.16.1.41::backup —password-file=/etc/rsync.password
也可以把—exclude={a..g}或者—exclude-from=paichu.log
無差異同步:(謹慎使用)
--delete
rsync -avz —delete /backup/ rsync_backup@172.168.16.1.41::backup —password-file=/etc/rsync.password
上面就是把前面的目錄里面的東西和后面模塊里面的一樣
總結:rsync三種工作模式
1、 local:rsync(cp rm)
2、 通道模式:
Rsync -avzP -e ‘ssh -p 22’ /etc root@10.0.0.142:/tmp
3、daemon模式:
內網不需要加密,加密性能有損失
如果需要跨機房需要rsync+vpn(pptp,openvpn,ipsec)
擴展:
1、關於限速和斷點續傳
斷點續傳:--partial
限速參數:--bwlimit
[root@nfs01 ~]# rsync -avz --bwlimit=1 /root/test1 rsync_backup@172.168.1.41::backup --password-file=/etc/rsync.password
上面就是設置限速,這里設置的是1k每秒