准备

1.从安装系统开始准备

安装过程中添加网卡
eth0
ip 10.0.0.210
netmask 24
gateway 10.0.0.254
eth1
ip 172.16.1.210
netmask 24
2.统一网络环境
网关都是 10.0.0.254
电脑===>网络连接
2.服务器ip地址规划 服务器说明 外网IP( NAT) 内网IP( LAN区段/Host-only) 主机名规划
A1-nginx负载服务器 01 10.0.0.5/24 172.16.1.5/24 lb01
A1-nginx负载服务器 02 10.0.0.6/24 172.16.1.6/24 lb02
B2-nginx web服务器 10.0.0.7/24 172.16.1.7/24 web02
B2-nginx web服务器 10.0.0.8/24 172.16.1.8/24 web01
C3-mysql数据库服务器 10.0.0.51/24 172.16.1.51/24 db01
C1-NFS存储服务器 10.0.0.31/24 172.16.1.31/24 nfs01
C2-rsync存储服务器 10.0.0.41/24 172.16.1.41/24 backup
X-管理服务器 10.0.0.61/24 172.16.1.61/24 m01

系统准备

系统优化

#所有服务器模板机的基本优化
\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、关闭selinux sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0
getenforce
#2、关闭iptables /etc/init.d/iptables stop
/etc/init.d/iptables stop
chkconfig iptables off
#3、精简开机自启动服务 export LANG=en
chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'|bash
chkconfig --list|grep 3:on
#4、提权oldboy可以sudo useradd 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、时间同步 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、内核优化 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
#以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。
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连接速度慢优化 sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config
/etc/init.d/sshd reload

系统优化

克隆虚拟机

克隆前准备
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 对子目录以递归模式处理。
-l, --links 保留软链结。
-p, --perms 保持文件权限。
-t, --times 保持文件时间信息。
-g, --group 保持文件属组信息。
-o, --owner 保持文件属主信息。
-D, --devices 保持设备文件信息。

-P

 等同于 --partial。   -P, --partial保留那些因故没有完全传输的文件,以加快随后的再次传输
显示同步过程及及传输过程进度信息 -e, --rsh=command 指定使用rsh、ssh方式进行数据同步。
-v, --verbose 详细模式输出。
-z, --compress 对备份的文件在传输时进行压缩处理。
--delete 删除那些DST中SRC没有的文件。
--exclude=PATTERN 指定排除不需要传输的文件模式。
 
--bwlimit=KBPS 限制I/O带宽,KBytes per second。单位是1KB
scp 全量复制

    -P:指定远程主机的端口号;
-r:以递归方式复制。
[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 全量复制

Rsync的应用场景说明

1.定时备份

1.1.生产场景集群架构服务器备份方案项目

借助cron+rsync把所有客户服务器数据同步到备份服务器

案列、全网服务器数据备份解决方案提出及负责实施 200x.03 – 200x.09

1.针对公司重要数据备份混乱状况和领导提出备份全网数据的解决方案。

2.通过本地打包备份,然后rsync 结合inotify应用把全网数据统一备份到一个固定存储服务器,然后在存储

服务器上通过脚本检查并报警管理员备份结果。

3.定期将IDC机房的数据备份公司的内部服务器,防止机房地震及火灾问题导致数据丢失。

2.实时复制

本地数据传输模式( local-only mode)
/oldboy/ 与 /oldboy 【仅限rsync 命令】
/oldboy 表示oldboy目录及oldboy目录下面的内容
/oldboy/ 只表示oldboy目录下面的内容
#/tmp/oldboy.txt /opt/ rsync /etc/hosts /opt/ 复制文件
rsync -avz /etc /opt/ 复制目录
-a 保持属性不变,所有者不变,递归复制目录
-v 显示过程
-z 压缩 --delete 复制的时候保持目标与源目录的内容 一模一样 目标目录多余的会被删除
一般用不到

view more

过远程shell进行数据传输

[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做数据同步,带宽占满,导致用户无法访问网站)

view more

rsync配置

创建目录和文件

[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 more

rsync backup 服务器配置

[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 873

rsync客户端

客户端密码配置

[root@nfs01 tmp]# echo '' > /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.26

rsync配置多个模块

[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/

模块要写在最下面

要更改 备份文件夹的权限为rsync

案例

某公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数
据在其他机器上做一个周期性定时备份。要求如下:
每天晚上00点整在Web服务器A(web01)上打包备份网站程序目录并通过rsync命令推送到服务器B(backup)上备份保留
(备份思路可以是先在本地按日期打包,然后再利用rsync推到备份服务器上)。
具体要求如下:
1)Web服务器A和备份服务器B的备份目录必须都为/backup
2)Web服务器站点目录假定为(/var/www/html)。
3)Web服务器本地仅保留7天内的备份。
4)备份服务器上每周六的数据都保留,其他备份仅保留180天备份。
5)备份服务器上检查备份结果是否正常,并将每天的备份结果发给管理员信箱。

需求

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

添加到定时任务

[root@backup backup]# crontab -l |tail -2
#check & send result
00 03 * * * /bin/sh /server/scripts/check.sh >/dev/null 2>&1

rsync 报错总结

回答:
1)Failed to parse config file: /etc/rsyncd.conf
rsync --daemon
Failed to parse config file: /etc/rsyncd.conf
原因:没有默认的配置文件
解决:生成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]
原因:设置hosts allow = 172.16.1.0/24的网段,跟连接的网段10.0.0.220不一样
解决:把hosts allow网段改为 hosts allow = 10.0.0.0/24 3)@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]
原因:没有创建backup目录
解决:创建/backup目录,并设置用户和用户组 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]
原因:服务器端/bakcup的用户和用户组不对
解决:修改服务器端/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,服务器端的密码文件的权限不对
解决:修改密码文件权限
原因:2,客户端密码文件不存在
解决:创建客户端密码文件
原因:3,用户名密码不对
解决:把客户端使用的用户名的密码修改正确 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]
原因:客户端密码文件权限不对
解决:修改客户端密码文件权限 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 ~]#
原因:没有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]
原因:被服务器端防火墙阻挡
解决:关闭服务器端防火墙
原因:服务器端IP写错了
解决:修改正确的服务器端IP

rsync 报错总结

w7 全网架构-rsync-备份的更多相关文章

  1. day27 综合架构 rsync备份服务

    sync软件使用方法: rsync命令 1v4 a 本地备份数据 cp [root@nfs01 backup]# cp /etc/hosts /tmp [root@nfs01 backup]# ll ...

  2. 搭建企业级全网数据定时备份方案[cron + rsync]

    1.1.1. 服务端的配置[192.168.25.141] Rsync的端口是:873 man rsyncd.conf 查看帮助 Rsync是Redhat默认自带的,这里只是做了rsync服务器端的后 ...

  3. 全网数据定时备份方案[cron + rsync]

    1.1.1. Rsync(远程同步)介绍 [Rsync等价scp  cp  rm共3个命令的和] 1.什么是Rsync: Linux下面开源的,很快,功能很多,可以实现全量及增量的本地或者远程数据同步 ...

  4. 3、Rsync备份服务实战

    1.Rsync基本概述 rsync是一款开源的备份工具,可以在不同主机之间进行同步,可实现全量备份与增量备份,因此非常适合用于架构集中式备份或异地备份等应用. rsync官方地址:传送门http:// ...

  5. Linux架构--------Rsync守护进程推和拉

    一.Rsync基本概述 rsync是一款开源.快速.多功能.可实现全量及增量的本地或远程数据同步备份的优秀工具.rsync软件适用于Unix/linux/Windows等多种操作系统平台. 二.Rsy ...

  6. Rsync备份服务实战

    目录 Rsync备份服务实战 一.Rsync 二.rsync的应用场景 1.Rync的数据同步模式 2.rsync的三种模式 三.rsync配置服务端客户端 四.rsync实战 实战一 报错解决方法: ...

  7. Linux 期中架构 rsync

    上篇 Rsync rysnc查看版本   --version 全量  与增量在效率上有区别 cp mv scp  --全量复制 rsync       --增量复制 rsync利用的是quick ch ...

  8. 【Rsync实战】Rsync 备份的配置与管理

    一.Rsync 基本概述 rsync 是一款开源的备份工具,可以在不同主机之间进行同步,可实现全量备份与增量备份,因此非常适合用于架构集中式备份或异地备份等应用. rsync 官方地址: rsync ...

  9. 本文讲述下windows下使用rsync备份数据

    本文讲述下windows下使用rsync备份数据 需要使用的软件如下: 环境需求: 上海monitor上跑有定时任务计划备份线上数据库,现在需要把上海monitor上的备份数据拉回到179.12数据回 ...

随机推荐

  1. C语言 练习题

    subString #include <iostream> int subString(char* sSeek, char* sKey) { char* p = sSeek; while( ...

  2. k8s学习笔记之八:存储卷

    第一章.前言 默认情况下容器的数据都是非持久化的, 在容器消亡以后数据也跟着丢失, 所以 Docker 提供了 Volume 机制以便将数据持久化存储. 类似的, Kubernetes 提供了更强大的 ...

  3. 用户名、密码等15个常用的js正则表达式

    本文收集整理了15个常用的javaScript正则表达式,其中包括用户名.密码强度.整数.数字.电子邮件地址(Email).手机号码.身份证号.URL地址. IPv4地址. 十六进制颜色. 日期. Q ...

  4. android 开发 View _12_ 用Canvas 绘制一张图片(博客中演示用Canvas画验证码图片)

    package net.yt.yuncare.widgets; import android.graphics.Bitmap; import android.graphics.Canvas; impo ...

  5. Linux环境变量设置/etc/profile、/etc/bashrc、~/.profile、~/.bashrc区别

    登入系统读取步骤: 当登入系统时候获得一个shell进程时,其读取环境设定档有三步 : 1.首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/p ...

  6. Maven私服(Nexus)启动创建Windows服务

    sc create lutao-maven-nexus binpath= D:\maven-server\nexus--\bin\nexus.exe type= own start= auto dis ...

  7. (14)其他Linux命令

    *****拷贝文件cp somefile.1 /home/hadoop/      以原文件名进行拷贝 cp somefile.1 /home/hadoop/somefile.2    以新文件名进行 ...

  8. TP5.1 钩子与行为应用

    什么是行为: 可以将行为理解为是一个行为类的方法,在框架中行为类.行为方法则是有一定的规则约定:而钩子则是这些行为方法被调用执行的位置点.注意了,要想执行某个钩子中的行为,那行为一定要在应用程序执行到 ...

  9. 尚硅谷springboot学习32-整合druid

    使用druid数据源 配置druid数据源 这里配置的数据源参数并不会生效,因为在DataSourceProperties中并没有这些字段,如果想要生效,必须自己配置druid数据源 @Configu ...

  10. input设置背景透明、placeholder的字体颜色及大小

    1.设置input背景透明: background:rgba(255,255,255,0.1); 前面三个参数为对应的rgb数值,第四个参数为透明度:0~1,0:透明,1:不透明: 2.设置input ...