搭建企業級全網數據定時備份方案[cron + rsync]

1.1.1. 服務端的配置[192.168.25.141]

Rsync的端口是:873html

man rsyncd.conf 查看幫助shell

Rsync是Redhat默認自帶的,這裏只是作了rsync服務器端的後臺監測運行vim

1.vim /etc/rsyncd.conf        # 注意將裏面的註釋信息所有刪除後建立daemon後臺運行進程
vi /etc/rsyncd.conf          -->man rsyncd.conf 查看幫助
######rsyncd.conf#######
uid = rsync    ----->非系統虛擬用戶
gid = rsync
use chroot =no  -->防止出現安全問題
maxconnections = 200   --->最大鏈接數
timeout = 300           --->超時時間
pid file =/var/run/rsyncd.pid  --->進程pid所在的文件
lock file =/var/run/rsync.lock  -->鎖
log file =/var/log/rsyncd.log    -->出錯的日誌文件
[backup]    --->模塊
path = /backup  ->能夠理解爲共享目錄
ignore errors   	--->忽略錯誤
read only =false	--->可讀寫
list = false     -->是否容許列表
hosts allow =192.168.25.0/24  --->容許的主機
hosts deny =0.0.0.0/32
auth users =rsync_backup      -->虛擬用戶
secrets file= /etc/rsync.password    -->用戶對應的密碼文件
#######rsyncd.config########
啓動/關閉rsync服務進程
  /usr/bin/rsync --daemon --config=/etc/rsyncd.conf 
     pkill rsync        
檢查rsync服務/端口
ps -ef|grep rsync|grep -v "grep"      ->檢查一下進程
netstat -lntup|grep 873             ->檢查端口
	==> ss -lntup|grep 873
	==> lsof -i:873

image

查看日誌,確認服務開啓[執行完daemon後,會開啓日誌文件]c#

cat /var/log/rsyncd.log

建立用戶rsync安全

useradd rsync -s /sbin/nologin -M   虛擬用戶,不須要建立家目錄

建立共享目錄backup服務器

mkdir /backup
chown -R rsync.rsync /backup
ls -ld /backup

image

寫入密碼進入/etc/rsync.password測試

echo "rsync_backup:ftl600@HHH" >> /etc/rsync.password

->這裏 rsync_backup rsync的虛擬用戶名,ftl600@HHH是rsync的虛擬用戶名的密碼

cat /etc/rsync.password

chmod 600 /etc/rsync.password

ls -dl /etc/rsync.password

image

開機自啓動ui

echo "rsync --daemon">>/etc/rc.local

tail /etc/rc.local

image

 

1.1.2. 客戶端的配置[192.168.25.142]

寫入密碼到rsync.password文件spa

echo "ftl600@HHH" > /etc/rsync.password      -->只須要密碼
cat /etc/rsync.password 
chmod 600 /etc/rsync.password                -->必須是隻讀文件
ls -dl /etc/rsync.password

image

1.1.3. 測試同步效果

客戶端/etc/hosts目錄以及目錄自己同步到服務端的back目錄(配置文件裏配置的module)下3d

客戶端:

rsync -avz /etc/hosts rsync_backup@192.168.25.141::backup --password-file=/etc/rsync.password

rsync -avz rsync_backup@192.168.25.141::backup /tmp  --password-file=/etc/rsync.password

image

服務端:

image

注意: 1.使用絕對路徑  2. destination must be a directory when copying more than 1 file

1.1.4 Rsync無差別同步[可選]

無差別同步(儘可能不用) 儘可能不用,用以前必定要備份

以本地/tmp爲準,tmp有服務器端有,服務器多餘的文件刪除

push: rsync -avz --delete /tmp rsync_backup@192.168.25.137::backup --password-file=/etc/rsync.password

以服務器端爲準,服務器端有,同步到本地/tmp, /tmp多餘的文件刪除排除

pull: rsync -avz --delete rsync_backup@192.168.25.137::backup /tmp --password-file=/etc/rsync.password 

1.服務端:/etc/rsyncd.conf裏面添加exclude= a b test/h.txt

2.客戶端:

rsync -avz --exclude=/tmp/{1,2} /tmp/ rsync_backup@192.168.25.137::backup --password-file=/etc/rsync.password
rsync -avz --exclude=/tmp/{a..g} /tmp/ rsync_backup@192.168.25.137::backup --password-file=/etc/rsync.password
rsync -avz --exclude-from=paichu.txt /tmp/ rsync_backup@192.168.25.137::backup --password-file=/etc/rsync.password

1.1.5. 腳本配合rsync實現實時同步

1.編寫腳本文件hh.sh

#!/bin/sh

IP="$(ifconfig eth0|awk -F '[ :]+' 'NR==2{print $4}')"
path="/backup_$IP.$(date +%F)"
dir="$IP.$(date +%F)"
echo ".................Starting  copy rc.local................"
mkdir -p  $path/$dir $$\                                                
/bin/cp  /etc/rc.local   $path/$dir/rc.local_$(date +%F) 
echo ".................Ending  copy rc.local................"
echo ".................Starting  rsync......................."
rsync -az $path rsync_backup@192.168.25.141::backup --password-file=/etc/rsync.password
echo ".................Ending   rsync......................."
exit

2.設置定時任務

crontab -e
#################Crontab for rsync###########
0 0 20 8 * /bin/sh /home/omd/hh.sh   >/dev/null 2>&1

 

更多參考

搭建企業級全網數據定時備份方案【cron + rsync】2

相關文章
相關標籤/搜索