rsync詳解


rsync三種備份模式
1.本地備份模式

Local:  rsync [OPTION...] SRC... [DEST]
##本地  rsync   選項       源      目標
[root@nfs ~]# rsync -avz /etc /opt
#將/etc目錄備份到/opt目錄下,和cp的區別在於會自動增量備份

2.遠程備份

 Access via remote shell:
         #將遠端文件拉(下載)到本地
         Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
         #將本地文件推送(上傳)到遠端
         Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
 
#將etc推送到172.16.1.41下的自定義文件夾下
[root@nfs ~]# rsync -az /etc/ root@172.16.1.41:/opt/etc-$(hostname)-$(date +%F)

3.守護進程模式

安裝
[root@backup ~]# yum install rsync -y
配置
[root@backup ~]# vim /etc/rsyncd.conf
uid = rsync                     # 運行進程的用戶
gid = rsync                     # 運行進程的用戶組
port = 873                      # 監聽端口
fake super = yes                # 無需讓rsync以root身份運行,允許接收文件的完整屬性
use chroot = no                # 禁錮推送的數據至某個目錄, 不允許跳出該目錄
max connections = 200          # 最大連接數
timeout = 600                  # 超時時間
ignore errors                  # 忽略錯誤信息
read only = false              # 對備份數據可讀寫
list = false                   # 不允許查看模塊信息
auth users = rsync_backup       # 定義虛擬用戶,作為連接認證用戶
secrets file = /etc/rsync.passwd # 定義rsync服務用戶連接認證密碼文件路徑
##############################################
[backup]                # 定義模塊信息
comment = commit        # 模塊注釋信息
path = /backup          # 定義接收備份數據目錄

1.需要一個rsync進程運行時使用的普通用戶--->rsync
useradd rsync -M -s /sbin/nologin
 
2.服務端需要定義一個客戶端連接    虛擬用戶名和密碼
echo "rsync_backup:123456" > /etc/rsync.passwd
chmod 600 /etc/rsync.passwd
 
3.准備模塊定義好的目錄,客戶端的數據都存放在該目錄下
mkdir /backup
chown -R rsync.rsync /backup
 
4.啟動rsync,並加入開機自啟
systemctl start rsyncd
systemctl enable rsyncd
systemctl status rsyncd
 
5.檢查rsync的進程\端口
ps aux | grep rsync
netstat -lntp|grep 873

測試命令

#將本地/opt目錄下的文件推送到172.16.1.41下的backup模塊下
[root@nfs ~]# rsync -avz  /opt/ rsync_backup@172.16.1.41::backup
#將172.16.1.41下的backup模塊下的文件拉倒本地/opt下
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup /opt

無差異(刪除多余命令),很危險,不建議使用

無差異推送,以本地/opt為准
[root@nfs ~]# rsync -avz --delete /opt/ rsync_backup@172.16.1.41::backup
Password: 
sending incremental file list
deleting test9          #刪除backup模塊下多的文件
deleting test8
deleting test7
 
sent 56,698 bytes  received 745 bytes  22,977.20 bytes/sec
total size is 32,055,652  speedup is 558.04
####無差異拉取,以遠端源為准
[root@nfs ~]# rsync -avz --delete rsync_backup@172.16.1.41::backup ./
Password: 
receiving incremental file list
deleting .ssh/known_hosts
deleting .ssh/
deleting .pki/nssdb/
deleting .pki/
deleting test9
deleting test8
deleting .viminfo
deleting .tcshrc
deleting .mysql_history
deleting .cshrc
deleting .bashrc
deleting .bash_profile
deleting .bash_logout
deleting .bash_history
 
sent 658 bytes  received 56,704 bytes  16,389.14 bytes/sec
total size is 32,057,242  speedup is 558.86
這條命令直接把root用戶的環境變量都同步刪除掉了,很危險,慎重使用

限速

--bwlimit 限速
 
[root@nfs ~]# rsync -azP --bwlimit 1M ./ rsync_backup@172.16.1.41::backup  
sending incremental file list
./
root.tar.gz
     11,869,568 100%    1.03MB/s    0:00:10 (xfr#1, to-chk=0/5)

無密碼同步

1.方式一: --password-file     准備一個客戶端的密碼文件 
 
[root@nfs ~]# echo "123456" > 1.txt
[root@nfs ~]# chmod 600 1.txt
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup ./ --password-file=/root/1.txt
receiving incremental file list
./
sent 661 bytes  received 56,711 bytes  10,431.27 bytes/sec
total size is 32,057,242  speedup is 558.76
 
2.方式二
[root@nfs ~]# export RSYNC_PASSWORD=123456 #臨時配置環境變量
[root@nfs ~]# rsync -avz rsync_backup@172.16.1.41::backup ./ 
receiving incremental file list
sent 658 bytes  received 56,704 bytes  114,724.00 bytes/sec
total size is 32,057,242  speedup is 558.86


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM