rsync服務
rsync的參數(shù):
-v 顯示詳細同步過程
-z 備份同步時候進行壓縮,對備份的文件在傳輸時進行壓縮處理
--delete(危險) 目標必須與源文件一樣
--exclude 排除
-a
-r 遞歸復制
-l 復制軟鏈接
-t mtime
-o 保持所有者不變
-g 保持所屬組不變
-p 保持權限不變
-D 保持設備信息不變
--exclude 排除的用法
把/oldboy/下的文件推送到本地的data目錄下,排除oldboy01到oldboy04
[14:49 root@backup ~]# mkdir -p /oldboy
[14:50 root@backup ~]# touch /oldboy/oldboy{01..10}.txt
[14:50 root@backup ~]# rsync -avz /oldboy/ rsync_backup@backup::data --exclude=oldboy{01..4}.txt
Password:
sending incremental file list
./
oldboy05.txt
oldboy06.txt
oldboy07.txt
oldboy08.txt
oldboy09.txt
oldboy10.txt
sent 380 bytes received 141 bytes 148.86 bytes/sec
total size is 0 speedup is 0.00
守護進程模式—服務端和客戶端
rsync daemon(守護進程)
sshd
crond
rsync服務端
rsync客戶端
1.rsync服務端
第一步先配置文件/etc/rsyncd.conf
[5:37 root@backup ~]# vim /etc/rsyncd.conf
▽
##Rsync server
##created by oldboy 15:01 2009-6-5
##rsyncd.conf start##
uid = rsync #UID管理備份目錄的用戶 (虛擬用戶)
gid = rsync #GID管理備份目錄的用戶組(虛擬用戶)
use chroot = no #安全功能,數(shù)據(jù)是否鎖定到備份目錄
fake super = yes #不用root用戶也可以存儲文件的完整屬性
max connections = 2000 #最大連接數(shù),同時多少客戶端訪問
timeout = 600 #超時時間(秒)
pid file = /var/run/rsyncd.pid #pid進程號 所在文件
lock file = /var/run/rsync.lock #鎖文件lock 比如兩個窗口同時運行yum
log file = /var/log/rsyncd.log #日志文件坞靶,查看報錯,排錯必備
ignore errors #忽略錯誤
read only = false #關閉只讀
list = false #不允許列表
hosts allow = 172.16.1.0/24 #allow準許哪些主機可以訪問
#hosts deny = 0.0.0.0/32 #deny 拒絕哪些主機不可以訪問
auth users = rsync_backup #指定認證用戶(不存在)传货,遠程虛擬鏈接用戶
secrets file = /etc/rsync.password #存放密碼的文件,權限 必須600
###################################
[data] #模塊名 一半與目錄的名字相同
comment = www by old0boy 13:14 2019-5-20 #說明注釋
path = /data #指定服務端用戶備份的共享目錄
在CentOS 7中fake super如果關閉就沒有權限了
步驟:
一衰琐、首先在服務端
backup
進行操作
1.添加虛擬用戶rsync
[15:58 root@backup ~]# usedradd -s /sbin/nologin -M rsync
[15:58 root@backup ~]# id rsync
uid=1001(rsync) gid=1001(rsync) groups=1001(rsync)
2.創(chuàng)建/data目錄并修改所有者
[15:58 root@backup ~]# mkdir -p /data
[15:59 root@backup ~]# ll -d /data
drwxr-xr-x 2 root root 6 May 20 15:59 /data
[15:59 root@backup ~]# chown rsync.rsync /data/
[16:00 root@backup ~]# ll -d /data
drwxr-xr-x 2 rsync rsync 6 May 20 15:59 /data
3.創(chuàng)建密碼文件password并修改權限為600
用戶名和密碼文件必須和/etc/rsyncd.conf下的一樣
[16:00 root@backup ~]# echo 'rsync_backup:123456' >/etc/rsync.password
[16:01 root@backup ~]# chmod 600 /etc/rsync.password
[16:02 root@backup ~]# ll /etc/rsync.password
-rw------- 1 root root 20 May 20 16:01 /etc/rsync.password
[16:02 root@backup ~]# cat /etc/rsync.password
rsync_backup:123456
完成這三步后我們檢查一下看下是否有未修改的地方:
[16:02 root@backup ~]# grep rsync /etc/passwd
rsync:x:1001:1001::/home/rsync:/sbin/nologin
[16:06 root@backup ~]# ll -d /data
drwxr-xr-x 2 rsync rsync 6 May 20 15:59 /data
[16:06 root@backup ~]# ll /etc/rsync.password
-rw------- 1 root root 20 May 20 16:01 /etc/rsync.password
[16:06 root@backup ~]# cat /etc/rsync.password
rsync_backup:123456
4.啟動rsync服務(默認端口號是873)必須記住
systemctl restart rsyncd.service
systemctl enable rsyncd.service
[16:13 root@backup ~]# systemctl restart rsyncd.service
[16:13 root@backup ~]# ps -ef|grep rsync
root 7686 1 0 16:13 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
root 7689 7432 0 16:13 pts/0 00:00:00 grep --color=auto rsync
5.檢查端口和進程查看是否啟動
ps -ef|grep rsync
ss -lntup|grep 873
netstat -lntup|grep 873
6.自己給自己推送一看看是否開啟成功
[16:17 root@backup ~]# ll /data/
total 0
[16:19 root@backup ~]# rsync -avz /etc/hosts rsync_backup@172.16.1.41::data
Password:
sending incremental file list
hosts
sent 221 bytes received 43 bytes 75.43 bytes/sec
total size is 349 speedup is 1.32
[16:20 root@backup ~]# ll /data/
total 4
-rw-r--r-- 1 rsync rsync 349 May 17 10:57 hosts
如果有報錯的話可以進入/var/log/rsyncd.log查看日志看看哪里出問題了
[16:21 root@backup ~]# cat /var/log/rsyncd.log
二、然后在客戶端
nfs01
進行操作
1.創(chuàng)建密碼文件password并修改權限為600
[17:16 root@nfs01 ~]# echo 123456 >/etc/rsync.password
[17:16 root@nfs01 ~]# chmod 600 /etc/rsync.password
[17:16 root@nfs01 ~]# ll -d /etc/rsync.password
-rw------- 1 root root 7 May 20 17:16 /etc/rsync.password
2.進行一下推送:在客戶端下把/etc/hostname推送到服務端backup下
--password-file=/etc/rsync.password 可以免密登錄
[17:20 root@nfs01 ~]# rsync -avz /etc/hostname rsync_backup@172.16.1.41::data --password-file=/etc/rsync.password
sending incremental file list
hostname
sent 101 bytes received 43 bytes 288.00 bytes/sec
total size is 6 speedup is 0.04
去服務端backup下看一下:
[17:21 root@backup ~]# ll /data/
total 20
-rw-r--r-- 1 rsync rsync 6 May 16 17:44 hostname
rsync -avz /etc/hostname rsync_backup@172.16.1.41::data --password-file=/etc/rsync.password
這條命令的執(zhí)行流程https://www.processon.com/view/link/5ce271dae4b0e03e42153e63
image.png
三炼蹦、添加多模塊名
1.創(chuàng)建目錄backup并修改所有者和所屬組
[17:51 root@backup ~]# mkdir /backup
[17:51 root@backup ~]# chown rsync.rsync /backup
[17:52 root@backup ~]# ll -d /backup/
drwxr-xr-x 2 rsync rsync 6 May 20 17:51 /backup/
2.修改rsync配置文件添加第二個模塊名
[17:52 root@backup ~]# vim /etc/rsyncd.conf
##rsyncd.conf start##
uid = rsync
gid = rsync
use chroot = no
fake super = yes
max connections = 2000
timeout = 600
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.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#####################################
[data]
comment = www by old0boy 13:14 2019-5-20
path = /data
##################################### ***
[backup] ***
comment = www by old0boy 13:14 2019-5-20 ***
path = /backup ***
3.進行一下推送:在客戶端下把/etc/hostname推送到服務端backup下的backup模塊
[17:46 root@nfs01 ~]# rsync -avz /etc/hostname rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
sending incremental file list
hostname
sent 101 bytes received 43 bytes 288.00 bytes/sec
total size is 6 speedup is 0.04
在服務端查看一下:成功
[17:52 root@backup ~]# ll /backup/
total 4
-rw-r--r-- 1 rsync rsync 6 May 16 17:44 hostname
預習:企業(yè)實戰(zhàn)項目:rsync全網備份的過程
1.準備倆臺機器
web01 10.0.0.7
backup 10.0.0.41
某公司里有一臺Web服務器羡宙,里面的數(shù)據(jù)很重要,但是如果硬盤壞了掐隐,數(shù)據(jù)就會丟失狗热,現(xiàn)在領導要求你把數(shù)據(jù)在其他機器上做一個周期性定時備份。要求如下:
1.每天晚上12點整在Web服務器A(web01 )上打包備份網站程序目錄并通過rsync命令推送到服務器B(backup)上備份保留
(備份思路可以是先在本地按日期打包虑省,然后再利用rsync推到備份服務器上)匿刮。
rsync守護進程模式
定時任務 (腳本)
具體要求如下:
1)Web服務器A和備份服務器B的備份目錄必須都為/backup。
#擴展要求/backup/ip地址命名目錄中
2)Web服務器站點目錄假定為(/var/www/html)探颈。
3)Web服務器本地僅保留7天內的備份熟丸。
4)備份服務器上每周六的數(shù)據(jù)都保留,其他備份僅保留180天備份伪节。
5)備份服務器上檢查備份結果是否正常(備份內容變光羞?),并將每天的備份結果發(fā)給管理員信箱怀大。
發(fā)郵件:
1.注冊一個163的郵箱
2.保證 postfix 郵件服務運行