w7 全网架构-rsync-备份
準(zhǔn)備
1.從安裝系統(tǒng)開始準(zhǔn)備安裝過(guò)程中添加網(wǎng)卡 eth0 ip 10.0.0.210 netmask 24 gateway 10.0.0.254 eth1 ip 172.16.1.210 netmask 24 2.統(tǒng)一網(wǎng)絡(luò)環(huán)境 網(wǎng)關(guān)都是 10.0.0.254 電腦===>網(wǎng)絡(luò)連接 2.服務(wù)器ip地址規(guī)劃服務(wù)器說(shuō)明 外網(wǎng)IP( NAT) 內(nèi)網(wǎng)IP( LAN區(qū)段/Host-only) 主機(jī)名規(guī)劃 A1-nginx負(fù)載服務(wù)器 01 10.0.0.5/24 172.16.1.5/24 lb01 A1-nginx負(fù)載服務(wù)器 02 10.0.0.6/24 172.16.1.6/24 lb02 B2-nginx web服務(wù)器 10.0.0.7/24 172.16.1.7/24 web02 B2-nginx web服務(wù)器 10.0.0.8/24 172.16.1.8/24 web01 C3-mysql數(shù)據(jù)庫(kù)服務(wù)器 10.0.0.51/24 172.16.1.51/24 db01 C1-NFS存儲(chǔ)服務(wù)器 10.0.0.31/24 172.16.1.31/24 nfs01 C2-rsync存儲(chǔ)服務(wù)器 10.0.0.41/24 172.16.1.41/24 backup X-管理服務(wù)器 10.0.0.61/24 172.16.1.61/24 m01 系統(tǒng)準(zhǔn)備系統(tǒng)優(yōu)化
#所有服務(wù)器模板機(jī)的基本優(yōu)化 \cp /etc/hosts{,.bak} cat >/etc/hosts<<EOF 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 172.16.1.5 lb01 172.16.1.6 lb02 172.16.1.7 web02 172.16.1.8 web01 172.16.1.51 db01 db01.etiantian.org 172.16.1.31 nfs01 172.16.1.41 backup 172.16.1.61 m01 EOF #0、更改yum源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum makecache #1、關(guān)閉selinuxsed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config grep SELINUX=disabled /etc/selinux/config setenforce 0 getenforce #2、關(guān)閉iptables/etc/init.d/iptables stop /etc/init.d/iptables stop chkconfig iptables off #3、精簡(jiǎn)開機(jī)自啟動(dòng)服務(wù)export LANG=en chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash chkconfig --list|grep 3:on #4、提權(quán)oldboy可以sudouseradd oldboy echo 123456|passwd --stdin oldboy \cp /etc/sudoers /etc/sudoers.ori echo "oldboy ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers visudo -c #5、英文字符集cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori echo 'LANG="en_US.UTF-8"' >/etc/sysconfig/i18n source /etc/sysconfig/i18n echo $LANG #6、時(shí)間同步echo '#time sync by lidao at 2017-03-08' >>/var/spool/cron/root echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >>/var/spool/cron/root crontab -l #8、加大文件描述echo '* - nofile 65535 ' >>/etc/security/limits.conf tail -1 /etc/security/limits.conf #9、內(nèi)核優(yōu)化cat >>/etc/sysctl.conf<<EOF net.ipv4.tcp_fin_timeout = 2 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_keepalive_time = 600 net.ipv4.ip_local_port_range = 4000 65000 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_max_tw_buckets = 36000 net.ipv4.route.gc_timeout = 100 net.ipv4.tcp_syn_retries = 1 net.ipv4.tcp_synack_retries = 1 net.core.somaxconn = 16384 net.core.netdev_max_backlog = 16384 net.ipv4.tcp_max_orphans = 16384 #以下參數(shù)是對(duì)iptables防火墻的優(yōu)化,防火墻不開會(huì)提示,可以忽略不理。 net.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_max = 25000000 net.netfilter.nf_conntrack_tcp_timeout_established = 180 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 EOF sysctl -p #10、安裝其他小軟件yum install lrzsz nmap tree dos2unix nc telnet sl -y #11、 ssh連接速度慢優(yōu)化sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config /etc/init.d/sshd reload 系統(tǒng)優(yōu)化克隆虛擬機(jī)
克隆前準(zhǔn)備 1清2刪 1清>/etc/udev/rules.d/70-persistent-net.rules 2刪sed -ri '/UUID|HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth* sed -i '/IPADDR/s#210$#31#g' /etc/sysconfig/network-scripts/ifcfg-eth* 克隆rsync 命令
rsync [OPTION]... SRC DEST rsync [OPTION]... SRC [USER@]host:DEST rsync [OPTION]... [USER@]HOST:SRC DEST rsync [OPTION]... [USER@]HOST::SRC DEST rsync [OPTION]... SRC [USER@]HOST::DEST rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]-a, --archive 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等于-rlptgoD。-r, --recursive 對(duì)子目錄以遞歸模式處理。-l, --links 保留軟鏈結(jié)。-p, --perms 保持文件權(quán)限。-t, --times 保持文件時(shí)間信息。-g, --group 保持文件屬組信息。-o, --owner 保持文件屬主信息。-D, --devices 保持設(shè)備文件信息。 -P 等同于 --partial。 -P, --partial保留那些因故沒(méi)有完全傳輸?shù)奈募?#xff0c;以加快隨后的再次傳輸顯示同步過(guò)程及及傳輸過(guò)程進(jìn)度信息-e, --rsh=command 指定使用rsh、ssh方式進(jìn)行數(shù)據(jù)同步。 -v, --verbose 詳細(xì)模式輸出。 -z, --compress 對(duì)備份的文件在傳輸時(shí)進(jìn)行壓縮處理。 --delete 刪除那些DST中SRC沒(méi)有的文件。 --exclude=PATTERN 指定排除不需要傳輸?shù)奈募J健?? --bwlimit=KBPS 限制I/O帶寬,KBytes per second。單位是1KB scp 全量復(fù)制-P:指定遠(yuǎn)程主機(jī)的端口號(hào);-r:以遞歸方式復(fù)制。 [root@backup ~]# scp -P 22 /etc/hosts 172.16.1.31:/tmp[root@backup ~]# scp -Pr 22 /etc/ 172.16.1.31:/opt Bad port 'r' lost connection [root@backup ~]# scp -rP 22 /etc/ 172.16.1.31:/opt scp 全量復(fù)制Rsync的應(yīng)用場(chǎng)景說(shuō)明
1.定時(shí)備份
1.1.生產(chǎn)場(chǎng)景集群架構(gòu)服務(wù)器備份方案項(xiàng)目
借助cron+rsync把所有客戶服務(wù)器數(shù)據(jù)同步到備份服務(wù)器
案列、全網(wǎng)服務(wù)器數(shù)據(jù)備份解決方案提出及負(fù)責(zé)實(shí)施 200x.03 – 200x.09
1.針對(duì)公司重要數(shù)據(jù)備份混亂狀況和領(lǐng)導(dǎo)提出備份全網(wǎng)數(shù)據(jù)的解決方案。
2.通過(guò)本地打包備份,然后rsync 結(jié)合inotify應(yīng)用把全網(wǎng)數(shù)據(jù)統(tǒng)一備份到一個(gè)固定存儲(chǔ)服務(wù)器,然后在存儲(chǔ)
服務(wù)器上通過(guò)腳本檢查并報(bào)警管理員備份結(jié)果。
3.定期將IDC機(jī)房的數(shù)據(jù)備份公司的內(nèi)部服務(wù)器,防止機(jī)房地震及火災(zāi)問(wèn)題導(dǎo)致數(shù)據(jù)丟失。
2.實(shí)時(shí)復(fù)制
本地?cái)?shù)據(jù)傳輸模式( local-only mode) /oldboy/ 與 /oldboy 【僅限r(nóng)sync 命令】 /oldboy 表示oldboy目錄及oldboy目錄下面的內(nèi)容 /oldboy/ 只表示oldboy目錄下面的內(nèi)容 #/tmp/oldboy.txt /opt/rsync /etc/hosts /opt/ 復(fù)制文件 rsync -avz /etc /opt/ 復(fù)制目錄-a 保持屬性不變,所有者不變,遞歸復(fù)制目錄-v 顯示過(guò)程-z 壓縮--delete 復(fù)制的時(shí)候保持目標(biāo)與源目錄的內(nèi)容 一模一樣 目標(biāo)目錄多余的會(huì)被刪除一般用不到 view more 過(guò)遠(yuǎn)程shell進(jìn)行數(shù)據(jù)傳輸[root@backup ~]# scp -rP 22 /etc/ 172.16.1.31:/tmp rsync -avz /etc/sysconfig 172.16.1.31:/tmp/ --bwlimit=RATE limit socket I/O bandwidth (案例:某DBA做數(shù)據(jù)同步,帶寬占滿,導(dǎo)致用戶無(wú)法訪問(wèn)網(wǎng)站) view morersync配置
創(chuàng)建目錄和文件
[root@backup ~]# mkdir /backup [root@backup ~]# useradd -s /sbin/nologin -M rsync[root@backup ~]# chown -R rsync.rsync /backup [root@backup ~]# ls -ld /backup drwxr-xr-x 2 rsync rsync 4096 Jan 18 23:18 /backup[root@backup ~]# echo 'rsync_backup:123456' >/etc/rsync.password [root@backup ~]# cat /etc/rsync.password rsync_backup:123456 [root@backup ~]# chmod 600 /etc/rsync.password [root@backup ~]# ll /etc/rsync.password -rw------- 1 root root 20 Jan 18 23:32 /etc/rsync.password view morersync backup 服務(wù)器配置
[root@backup ~]# cat /etc/rsyncd.conf ######rsync_config_______________start uid = rsync gid = rsync use chroot = no max connections = 200 timeout = 300 pid file = /var/run/rsyncd.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 = 172.16.1.0/24 hosts deny = 0.0.0.0/32 auth users = rsync_backup secrets file = /etc/rsync.password #rsync_config_______________end view more?配置文件詳解
[root@backup ~]# ps -ef |grep rsync root 24946 1 0 23:34 ? 00:00:00 rsync --daemon root 24948 1787 0 23:34 pts/1 00:00:00 grep rsync [root@backup ~]# ss -lntup |grep rsync tcp LISTEN 0 5 :::873 :::* users:(("rsync",24946,5)) tcp LISTEN 0 5 *:873 *:* users:(("rsync",24946,4))[root@backup ~]# tail -f /var/log/rsyncd.log 2018/07/25 07:45:15 [2014] rsyncd version 3.0.6 starting, listening on port 873rsync客戶端
客戶端密碼配置
[root@nfs01 tmp]# echo '123456' > /etc/rsync.password [root@nfs01 tmp]# chmod 600 /etc/rsync.password [root@nfs01 tmp]# rsync -avzP /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password sending incremental file list sent 26 bytes received 8 bytes 68.00 bytes/sec total size is 349 speedup is 10.26rsync配置多個(gè)模塊
[root@backup ~]# cat /etc/rsyncd.conf ######rsync_config_______________start uid = rsync gid = rsync use chroot = no max connections = 200 timeout = 300 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] path = /backup/ [nfsbackup] path = /nfsbackup/模塊要寫在最下面
要更改 備份文件夾的權(quán)限為rsync
案例
某公司里有一臺(tái)Web服務(wù)器,里面的數(shù)據(jù)很重要,但是如果硬盤壞了,數(shù)據(jù)就會(huì)丟失,現(xiàn)在領(lǐng)導(dǎo)要求你把數(shù) 據(jù)在其他機(jī)器上做一個(gè)周期性定時(shí)備份。要求如下: 每天晚上00點(diǎn)整在Web服務(wù)器A(web01)上打包備份網(wǎng)站程序目錄并通過(guò)rsync命令推送到服務(wù)器B(backup)上備份保留 (備份思路可以是先在本地按日期打包,然后再利用rsync推到備份服務(wù)器上)。 具體要求如下: 1)Web服務(wù)器A和備份服務(wù)器B的備份目錄必須都為/backup。 2)Web服務(wù)器站點(diǎn)目錄假定為(/var/www/html)。 3)Web服務(wù)器本地僅保留7天內(nèi)的備份。 4)備份服務(wù)器上每周六的數(shù)據(jù)都保留,其他備份僅保留180天備份。 5)備份服務(wù)器上檢查備份結(jié)果是否正常,并將每天的備份結(jié)果發(fā)給管理員信箱。 需求web01腳本
#!/bin/bash #desc: backup html && conf Date=$(date +%F_%w) #backup file && conf cd / && \ tar zchf /backup/web01-${Date}.tar.gz var/www/html/ etc/rc.local var/spool/cron/ #make md5sum cd /backup/ && \ md5sum web01-${Date}.tar.gz >check.log #rsync file to backup rsync -az /backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password #delete 7 day ago find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm view backup 腳本 [root@backup backup]# cat /server/scripts/check.sh #!/bin/bash #del 180 day file keep every 6 find /backup/ -type f -name "*.tar.gz" -mtime +180 ! -name "*_6.tar.gz"|xargs rm #check cd /backup/ && md5sum -c check.log >/backup/result.log if [ $? -ne 0 ];then mail -s "md5sum wrong" 918391635@qq.com </backup/result.log fi backup 腳本 #需要開啟postfix [root@backup backup]# /etc/init.d/postfix start Starting postfix: [ OK ] [root@backup backup]# chkconfig postfix on mail -s "md5sum wrong" 918391635@qq.com </etc/hosts [root@backup backup]# crontab -l |tail -2 #check & send result lee at 2017-01-01 00 03 * * * /bin/sh /server/scripts/check.sh >/dev/null 2>&1 backup 需要開啟postfix添加到定時(shí)任務(wù)
[root@backup backup]# crontab -l |tail -2 #check & send result 00 03 * * * /bin/sh /server/scripts/check.sh >/dev/null 2>&1rsync 報(bào)錯(cuò)總結(jié)
回答: 1)Failed to parse config file: /etc/rsyncd.conf rsync --daemon Failed to parse config file: /etc/rsyncd.conf 原因:沒(méi)有默認(rèn)的配置文件 解決:生成rsyncd.conf配置文件2)@ERROR: Unknown module 'backup' rsync -avz ./rsync-3.1.3 rsync_backup@10.0.0.200::backup @ERROR: Unknown module 'backup' rsync error: error starting client-server protocol (code 5) at main.c(1657) [sender=3.1.3] 原因:設(shè)置hosts allow = 172.16.1.0/24的網(wǎng)段,跟連接的網(wǎng)段10.0.0.220不一樣 解決:把hosts allow網(wǎng)段改為 hosts allow = 10.0.0.0/243)@ERROR: invalid uid rsync rsync -avz ./rsync-3.1.3 rsync_backup@10.0.0.222::backup --password-file=/etc/rsync.password @ERROR: invalid uid rsync rsync error: error starting client-server protocol (code 5) at main.c(1657) [sender=3.1.3] 原因:rsync用戶被刪除 解決:添加rsync用戶4)@ERROR: chdir failed rsync -avz ./rsync-3.1.3 rsync_backup@10.0.0.222::backup --password-file=/etc/rsync.password @ERROR: chdir failed rsync error: error starting client-server protocol (code 5) at main.c(1657) [sender=3.1.3] 原因:沒(méi)有創(chuàng)建backup目錄 解決:創(chuàng)建/backup目錄,并設(shè)置用戶和用戶組5)rsync: recv_generator: mkdir "rsync-3.1.3" (in backup) failed: Permission denied (13) [root@oldboyedu-01 ~]# rsync -avz ./rsync-3.1.3 rsync_backup@10.0.0.222::backup --password-file=/etc/rsync.password sending incremental file list rsync: recv_generator: mkdir "rsync-3.1.3" (in backup) failed: Permission denied (13) *** Skipping any contents from this failed directory *** rsync-3.1.3/sent 7,318 bytes received 192 bytes 715.24 bytes/sec total size is 7,488,150 speedup is 997.09 rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1189) [sender=3.1.3] 原因:服務(wù)器端/bakcup的用戶和用戶組不對(duì) 解決:修改服務(wù)器端/backup的 所屬用戶和用戶組6)@ERROR: auth failed on module backup [root@oldboyedu-01 ~]# rsync -avz ./rsync-3.1.3 rsync_backup@10.0.0.222::backup --password-file=/etc/rsync.password @ERROR: auth failed on module backup rsync error: error starting client-server protocol (code 5) at main.c(1657) [sender=3.1.3] 原因:1,服務(wù)器端的密碼文件的權(quán)限不對(duì) 解決:修改密碼文件權(quán)限 原因:2,客戶端密碼文件不存在 解決:創(chuàng)建客戶端密碼文件 原因:3,用戶名密碼不對(duì) 解決:把客戶端使用的用戶名的密碼修改正確7)ERROR: password file must not be other-accessible[root@oldboyedu-01 ~]# rsync -avz ./rsync-3.1.3 rsync_backup@10.0.0.222::backup --password-file=/etc/rsync.password ERROR: password file must not be other-accessible rsync error: syntax or usage error (code 1) at authenticate.c(196) [sender=3.1.3] 原因:客戶端密碼文件權(quán)限不對(duì) 解決:修改客戶端密碼文件權(quán)限8)@ERROR: Unknown module 'bbackup' [root@oldboyedu-01 ~]# rsync -avz ./rsync-3.1.3 rsync_backup@10.0.0.222::bbackup --password-file=/etc/rsync.password @ERROR: Unknown module 'bbackup' rsync error: error starting client-server protocol (code 5) at main.c(1657) [sender=3.1.3] [root@oldboyedu-01 ~]# 原因:沒(méi)有bbackup模塊 解決:把推送命令中的模塊名稱修改正確9)rsync: failed to connect to 172.16.1.41: No route to host (113) [root@nfs01 ~]# rsync -avz /root/ backup_rsync@172.16.1.41::backup --password-file=/etc/rsync.password rsync: failed to connect to 172.16.1.41: No route to host (113) rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6] 原因:被服務(wù)器端防火墻阻擋 解決:關(guān)閉服務(wù)器端防火墻 原因:服務(wù)器端IP寫錯(cuò)了 解決:修改正確的服務(wù)器端IP rsync 報(bào)錯(cuò)總結(jié)總結(jié)
以上是生活随笔為你收集整理的w7 全网架构-rsync-备份的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: CentOS 编译安装python3.6
- 下一篇: _Ansible批量管理与维护