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