Day33-Rsync企業(yè)級備份項目

rsync服務(wù)排錯思路

服務(wù)端:
1.查看 rsync 服務(wù)配置文件路徑是否正確欣喧,正確的默認(rèn)路徑為:/etc/rsyncd.conf。
2.查看配置文件里 host allow、host deny 允許的 IP 網(wǎng)段是否是允許客戶端訪問的 IP 網(wǎng)段趟畏。
3.查看配置文件中 path 參數(shù)里的路徑是否存在芙委,權(quán)限是否正確(正常應(yīng)為配置文件中的 UID 參數(shù)對應(yīng)的屬主和組)谢澈。
4.查看 rsync 服務(wù)是否啟動洒嗤。查看命令為:ps -ef|grep rsync院尔。端口是否存在:netstat -lnt|grep 873
5.查看 iptables 防火墻和 Selinux 是否開啟蜻展?是否允許 rsync 服務(wù)通過,也可考慮關(guān)閉
6.查看服務(wù)端 rsync 配置的密碼權(quán)限是否為 600 邀摆,密碼文件格式是否正確(格式:用戶名:密碼文件格式是否正確(格式:用戶名)纵顾,文件路徑和配置文件里的 secrect files 參數(shù)對應(yīng)。
7.如果是推送服務(wù)栋盹,要查看下配置 rsyncd.conf 文件中用戶是否對模塊下目錄有可讀寫的權(quán)限
客戶端
1.查看客服端 rsync 配置的密碼是否為 600 權(quán)限施逾,密碼文件格式是否正確,注意:僅需要有密碼例获,并且和服務(wù)端的密碼一致汉额。
2.用 Telnet 連接 rsync 服務(wù)器 IP 地址 873 端口(telnet 172.16.1.41 873),查看服務(wù)是否啟動(可測試服務(wù)端防火墻是否阻擋)榨汤。
3.客服端執(zhí)行命令時蠕搜,語法格式書寫是否正確,此命令的細(xì)節(jié)記清楚收壕,尤其語法格式中的雙冒號及隨其后的 backup 為模塊名稱

rsync企業(yè)應(yīng)用場景

1讥脐、內(nèi)部人員產(chǎn)生的數(shù)據(jù)(定時備份足矣):
程序員開發(fā)代碼(他電腦上)==>代碼服務(wù)上(git/svn代碼版本管理)==>測試環(huán)境測試===>正式環(huán)境
原則上程序代碼可以不備份遭居。

運(yùn)維人員,寫個定時任務(wù)旬渠,寫個備份腳本俱萍,更改或增加服務(wù)配置rsyncd.conf,需要備份

運(yùn)維人員修改配置(測試服務(wù)器)==>代碼服務(wù)器上(git/svn代碼版本管理)==>測試環(huán)境測試===>正式環(huán)境
原則上運(yùn)維人員的變更可以不備份告丢。

2枪蘑、用戶產(chǎn)生的數(shù)據(jù)(必須實時備份)
圖片、視頻等文件是放在存儲服務(wù)器上的岖免,任意時刻都可能傳上來岳颇,必須實時備份。
文本(博客文章)颅湘,放在數(shù)據(jù)庫里话侧,,任意時刻都可能發(fā)布闯参,必須實時備份瞻鹏。

項目實戰(zhàn)


image.png

解決思路:

1) 搭建 backup 服務(wù)器
部署 rsync 服務(wù)
2) 搭建 web01 服務(wù)器
 驗證 rsync 服務(wù)能否推送成功
開發(fā)腳本實現(xiàn)打包、備份鹿寨、推送新博、校驗、刪除
3) 配置定時任務(wù)每天 00 點(diǎn)定時推送
4) backup 服務(wù)器
開發(fā)腳本實現(xiàn)校驗脚草、刪除赫悄、報警
配置定時任務(wù)每天 8 點(diǎn)定時執(zhí)行

a.安裝服務(wù)軟件

[root@backup ~]# rsync --version
rsync version 3.1.2 protocol version 31

b.備份并配置文件 /etc/rsync.conf

cp /etc/rsyncd.conf{,.ori}
cat>/etc/rsyncd.conf<<EOF
#rsync_config_______________start
#created by oldboy
#site: http://www.oldboyedu.com
uid = rsync
gid = rsync
use chroot = no
fake super = yes
max connections = 200
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
[backup]
comment = welcome to oldboyedu backup!
path = /backup/
EOF

c.創(chuàng)建用戶和備份目錄

[root@backup ~]# useradd rsync
[root@backup ~]# id rsync
uid=1001(rsync) gid=1001(rsync) groups=1001(rsync)
[root@backup ~]# mkdir –p /backup
[root@backup ~]# chown -R rsync.rsync /backup/
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 2 rsync rsync 6 4 月 15 12:12 /backup/

d.啟動和檢查

systemctl start rsyncd
systemctl enable rsyncd
systemctl status rsyncd
[root@backup ~]# ps -ef|grep sync|grep -v grep #檢查進(jìn)程
root 7521 1 0 11:39 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
[root@backup ~]# netstat -lntup|grep 873 #檢查端口
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
7521/rsync
tcp6 0 0 :::873 :::* LISTEN 7521/rsync
[root@backup ~]# lsof -i :873 #檢查端口
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsync 7521 root 3u IPv4 41439 0t0 TCP *:rsync (LISTEN)
rsync 7521 root 5u IPv6 41440 0t0 TCP *:rsync (LISTEN)

e.配置密碼文件

[root@backup ~]# echo "rsync_backup:oldboy" > /etc/rsync.password
[root@backup ~]# chmod 600 /etc/rsync.password
[root@backup ~]# cat /etc/rsync.password
rsync_backup:oldboy
[root@backup ~]# ls -l /etc/rsync.password
-rw------- 1 root root 20 4 月 15 11:51 /etc/rsync.password

f.客戶端rsync配置

[root@web01~]# ehco 'exportRSYNC_PASSWORD=123456'>>/etc/bashrc
[root@web01 ~]# tail -1 /etc/bashrc
export RSYNC_PASSWORD=123456
[root@web01 ~]# . /etc/bashrc
[root@web01 ~]# echo $RSYNC_PASSWORD
123456

g.開發(fā)腳本

touch /server/scripts/bak.sh #創(chuàng)建腳本文件
#!/bin/bash
IP=`ifconfig eth1 |awk -F "[ ]+" 'NR==2{print $3}'` #定義變量 IP
[ -d /backup/$IP ] || mkdir -p /backup/$IP #判斷 IP 目錄是否存在
if [ $(date +%w) -eq 2 ] #判斷如果周數(shù)=2 則打包文件日期為前一天
then
date=$(date +%F -d "-1day")_Monday #標(biāo)記周一的文件
else
date=$(date +%F -d "-1day")
fi
cd / &&\
#打包
tar  zcfh  /backup/$IP/sysconfig_${date}.tar.gz  var/spool/cron/root  etc/rc.local
server/scripts &&\
tar zcf /backup/$IP/webdata_${date}.tar.gz var/html/www &&\
tar zcf /backup/$IP/accesslog_${date}.tar.gz app/logs &&\
#查找
find /backup -type f -name "*.tar.gz" | xargs md5sum >/backup/$IP/check_${date}
&&\
#推送
rsync -az backup/ rsync_backup@172.16.1.41::backup
--password-file=/etc/rsync.password &&\
#刪除
find backup/ -type f -name "*.tar.gz" -mtime +7 |xargs rm –rf

h.配置定時任務(wù)

[root@web01 /server/scripts]# crontab -e
#crond-id-001:time sync by oldboy
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
#每天定時推送備份文件到 backup 服務(wù)器
00 00 * * * /bin/bash /server/scripts/bak.sh &>/dev/null

i.服務(wù)端配置校驗,報警

touch /server/scripts/bakup.sh
#!/bin/bash
export LANG="en"
find /backup/ -type f -name "check_${date}*" | xargs md5sum
-c >>/tmp/mail_$(date +%F).txt
IP=`ifconfig eth1 |awk -F "[ ]+" 'NR==2{print $3}'` #定義變量 IP
find /backup/ -type f -name "*.tar.gz" -mtime +180|xargs rm -rf
find /backup/ -type f ! -name "*_Monday.tar.gz" -mtime +7|xargs rm -rf
mail -s "備份校驗_$date" championzjy888@163.com </tmp/mail_$(date +%F).txt

j.配置定時任務(wù)發(fā)送郵件

[root@backup /server/scripts]# crontab -e
#crond-id-001:time sync by oldboy
#每天 8 點(diǎn)執(zhí)行校驗馏慨、刪除埂淮、發(fā)送郵件
*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com &>/dev/null
00 08 * * * /bin/bash /server/scripts/backup.sh >&/dev/null

校驗?zāi)_本

#!/bin/sh
# by oldboy at 20160927
# www.oldboyedu.com
IP=$(hostname -i)
Path=/backup
#保持每周 1 的副本
if [ $(date +%w) -eq 2 ];then
date="$(date +%F -d "-1day")_week1"
else
date="$(date +%F -d "-1day")"
fi
LANG=en
find /backup -type f -name "*${date}*.log"|xargs md5sum
-c >>$Path/${date}_result.log 2>&1
mail -s "$date bak result" oldboytraining@163.com <$Path/${date}_result.log
find /backup/ -type f -mtime +7 ! -name "*week1*"|xargs rm -f
find /backup/ -type f -mtime +180|xargs rm -f
mail -s "result.log" xxxxx@xx.com </$Path/${date}_result.log
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市写隶,隨后出現(xiàn)的幾起案子同诫,更是在濱河造成了極大的恐慌,老刑警劉巖樟澜,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件误窖,死亡現(xiàn)場離奇詭異,居然都是意外死亡秩贰,警方通過查閱死者的電腦和手機(jī)霹俺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毒费,“玉大人丙唧,你說我怎么就攤上這事∶俨#” “怎么了想际?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵培漏,是天一觀的道長。 經(jīng)常有香客問我胡本,道長牌柄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任侧甫,我火速辦了婚禮珊佣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘披粟。我一直安慰自己咒锻,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布守屉。 她就那樣靜靜地躺著惑艇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拇泛。 梳的紋絲不亂的頭發(fā)上滨巴,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機(jī)與錄音碰镜,去河邊找鬼。 笑死习瑰,一個胖子當(dāng)著我的面吹牛绪颖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播甜奄,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼柠横,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了课兄?” 一聲冷哼從身側(cè)響起牍氛,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎烟阐,沒想到半個月后搬俊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜒茄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年唉擂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片檀葛。...
    茶點(diǎn)故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡玩祟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出屿聋,到底是詐尸還是另有隱情空扎,我是刑警寧澤藏鹊,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站转锈,受9級特大地震影響盘寡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜黑忱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一宴抚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧甫煞,春花似錦菇曲、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至楷力,卻和暖如春喊式,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背萧朝。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工岔留, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人检柬。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓献联,卻偏偏與公主長得像,于是被迫代替她去往敵國和親何址。 傳聞我的和親對象是個殘疾皇子里逆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自駿馬金龍的博客 2.1 說在前面的話 rsync官方網(wǎng)站 rsync是可以實現(xiàn)增量備份的工具。配合任務(wù)計劃用爪,...
    whisshe閱讀 3,851評論 0 3
  • 測試環(huán)境: rsync-server:192.168.1.132 rsync-client:192.168.1.2...
    lailai900201閱讀 2,355評論 0 10
  • 2.1.2 項目需求說明 某公司里有一臺web 服務(wù)器原押,里面的數(shù)據(jù)很重要,但是如果硬盤壞了偎血,數(shù)據(jù) 就會丟失诸衔,現(xiàn)在領(lǐng)...
    山有木兮_8adb閱讀 258評論 0 0
  • 1、介紹:prototype 用給對象添加屬性或方法颇玷; (注意:prototype是全局屬性署隘,適用于所有的js對象...
    web_li閱讀 392評論 0 0
  • 我想你,沒有什么目的亚隙,只是想你磁餐。我想你,在滿懷閑情逸致獨(dú)自散步的夜晚,想你的好诊霹,你的笑容羞延,你的維護(hù)。 ...
    雨悅欣晴閱讀 1,911評論 16 76