Rsync介紹

rsync服務基本介紹

Rync服務器

Rsync是一款開源的、快速的、多功能的、可實現全量及增量的本地或遠程數據同步備份的優秀工具。而且能夠不進行改變原有數據的屬性信息,實現數據的備份遷移特性。Rsync軟件適用於unix/linux/windows等多種操做系統平臺。
Rsync是一個快速和很是通用的文件複製工具。它能本地複製,遠程複製,或者遠程守護進程方式複製。它提供了大量的參數來控制其行爲的各個方面,而且容許很是靈活的方式來實現文件的傳輸複製。它以其delta-transfer算法聞名。
rsync監聽端口:873
rsync運行模式:C/Slinux

全量備份

全部數據所有傳送算法

把原來的文件和新的文件一塊兒統一傳送shell

全量複製,效率低vim

假設客戶端上有 file1 file2 file3 文件,服務端上有 file1 文件,現要將客戶端上的數據備份至服務端windows

徹底備份方式:bash

增量備份

在傳輸數據以前經過一些算法經過你有的數據和我有的數據進行對比,把不同的數據經過網絡傳輸服務器

增量複製,效率較高網絡

假設客戶端上有 file1 file2 file3 文件,服務端上有 file1 文件,現要將客戶端上的數據備份至服務端工具

增量備份方式:測試

rsync命令使用方法

rsync命令 屬於 1v4命令

本地備份命令:cp

cp命令使用:
[root@nfs01 backup]# cp /etc/hosts /tmp/
[root@nfs01 backup]# ll /tmp/hosts 
-rw-r--r-- 1 root root 312 Jul  5 22:55 /tmp/hosts

rsync命令使用:
[root@nfs01 backup]# rsync /etc/hosts /tmp/host_rsync
[root@nfs01 backup]# ll /tmp/host_rsync 
-rw-r--r-- 1 root root 312 Jul  5 22:55 /tmp/host_rsync

遠程備份命令:scp

scp使用:
[root@nfs01 backup]#scp -rp /etc/hosts 172.16.1.41:/backup
root@172.16.1.41's password: 
hosts        100%  312    17.0KB/s   00:00 

rsyn命令使用:
[root@backup mnt]# rsync -avP /etc/hosts 172.16.1.31:/mnt
root@172.16.1.31's password: 
sending incremental file list
hosts
         424 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 497 bytes  received 31 bytes  211.20 bytes/sec
total size is 424  speedup is 0.80
[root@backup mnt]#

rsync備份目錄狀況

rsync -rp /oldboy/ 172.16.1.41:/backup 有斜線
#在備份目錄後面有 斜線 /oldboy/:只將目錄下面的內容進行備份傳輸
rsync -rp /oldboy 172.16.1.41:/backup  無斜線
#在備份目錄後面沒有斜線/oldboy:會將目錄自己以及下面的內容進行傳輸備份

代替刪除命令:rm

rm命令使用:
[root@backup mnt]# rm -f *

rsync命令使用:
[root@backup mnt]# rsync -avP --delete /null/ /mnt/
sending incremental file list
./
deleting 10.txt
deleting 09.txt
deleting 08.txt
deleting 07.txt
deleting 06.txt
deleting 05.txt
deleting 04.txt
deleting 03.txt
deleting 02.txt
deleting 01.txt

sent 29 bytes  received 15 bytes  88.00 bytes/sec
total size is 0  speedup is 0.00
[root@backup mnt]#

rsync命令語法使用

本地備份數據

Local:  rsync [OPTION...] SRC... [DEST]
src:要備份的數據信息
dest:備份到什麼路徑中
[root@backup backup]# rsync /backup/cheak.txt /root/

遠程備份數據

rsync拉操做
拉:Pull: rsync [OPTION...] [USER@]HOST:SRC... [DEST]
 [USER@]    以什麼用戶身份拉取數據(默認以當前用戶)
注意:須要對端也要有相同的用戶(對端用戶密碼)
hosts       指定遠程主機IP地址或者主機名稱
SRC         要拉取的數據信息
dest        保存到本地的路徑信息
[root@backup mnt]# rsync -avP 172.16.1.31:/mnt /mnt

rsync推操做
推:Push: rsync [OPTION...] SRC... [USER@]HOST:DEST
SRC     本地要進行遠程傳輸備份的數據
[USER@] 以什麼用戶身份拉取數據(默認以當前用戶)
hosts       指定遠程主機IP地址或者主機名稱
dest            保存到遠程的路徑信息
[root@backup mnt]# rsync -avP /mnt 172.16.1.31:/mnt

命令參數

-a #歸檔模式傳輸, 等於-tropgDl
-v #詳細模式輸出, 打印速率, 文件數量等
-z #傳輸時進行壓縮以提升效率
-r #遞歸傳輸目錄及子目錄,即目錄下得全部目錄都一樣傳輸。
-t #保持文件時間信息
-o #保持文件屬主信息
-p #保持文件權限
-g #保持文件屬組信息
-l #保留軟鏈接
-P #顯示同步的過程及傳輸時的進度等信息
-D #保持設備文件信息
-L #保留軟鏈接指向的目標文件
-e #使用的信道協議,指定替代 rsh 的 shell 程序
--exclude=PATTERN #指定排除不須要傳輸的文件模式
--exclude-from=file #文件名所在的目錄文件
--bwlimit=100 #限速傳輸
--partial #斷點續傳
--delete #讓目標目錄和源目錄數據保持一致

守護進程部署

linux系統安裝部署服務流程

1)  下載安裝軟件
2)  編寫配置文件
3)  搭建服務環境
4)  啓動服務程序
5)  測試服務功能

rsync守護進程部署方式

第一個歷程

#下載安裝軟件
rpm -qa | grep rsync  #確認軟件有沒有安裝
yum -y install rsync

第二個歷程

#編寫配置文件
[root@backup backup]# vim /etc/rsyncd.conf 
uid = rsync
gid = rsync
prot = 873
#fake super=yes
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
ingnore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file= /etc/rsync.password
[backup]
comment="backup dir by oldboy"
path = /backup

第三個歷程

建立rsync服務的虛擬用戶
[root@backup backup]# useradd rsync -M -s /sbin/nologin

第四個歷程

[root@backup backup]# echo "rsync_backup:oldboy123" >/etc/rsync.password
[root@backup backup]# chmod 600 /etc/rsync.password

第五個歷程

#建立備份目錄並修改屬主屬組信息
[root@backup backup]# mkdir /backup
[root@backup backup]# chown rsync.rsync /backup/

第六個歷程

#啓動守護進程備份服務
[root@backup backup]# systemctl start rsyncd
[root@backup backup]# systemctl enable rsyncd
[root@backup backup]# systemctl status rsyncd

Rsync守護進程工做原理

客戶端執行命令
服務端:來着何人
客戶端:我是rsync——backup
服務端:說出暗號
客戶端:oldboy123
客戶端進來以後轉換爲rsync用戶
寫入數據

客戶端部署過程

第一個歷程

#建立一個密碼文件
[root@nfs mnt]# echo "oldboy123" >/etc/rsync.password
[root@nfs mnt]# chmod 600 /etc/rsync.password

第二個歷程

#進行免交互傳輸數據測試
方法一: 
[root@nfs mnt]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
方法二:
[root@nfs mnt]# export RSYNC_PASSWORD=123456
[root@nfs mnt]# rsync -avP /mnt/ rsync_backup@172.16.1.41::backup

Rsync錯誤排錯方法

服務端檢查步驟

1.rsync服務端有沒有啓動
2.配置文件有沒有錯誤
3,密碼文件有沒有建立
4.密碼文件格式是否正確 虛擬用戶:密碼
5.密碼文件是否爲600 用戶是root
6.www用戶是否建立了
7.數據目錄是否建立而且更改成www用戶

Rsync 簡易腳本安裝

[root@backup backup]# cat /server/scripts/rsync_install.sh 
#!/bin/bash
# install rsync
yum -y install rsync
# vim conf
cat > /etc/rsyncd.conf<<EOF
uid = www
gid = www
prot = 873
fake super=yes
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
ingnore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file= /etc/rsync.password
[backup]
comment="backup dir by oldboy"
path = /backup
EOF
# useradd
useradd -s /sbin/nologin -M www
# mkdir backup
mkdir -p /backup
chown www.www /backup
#passwd
echo "rsync_backup:oldboy123" >/etc/rsync.password
chmod 600 /etc/rsync.password 
# star rsync
systemctl start rsyncd
systemctl enable rsyncd
#status rsync
ps -ef | grep rsync
netstat -lntup|grep 873
[root@backup backup]#
相關文章
相關標籤/搜索