全网备份-创新互联

1.1全网备份项目介绍说明:

将全网架构中所有服务器上重要的数据进行汇总备份保存

创新互联专注于铅山企业网站建设,自适应网站建设,电子商务商城网站建设。铅山网站建设公司,为铅山等地区提供建站服务。全流程按需设计网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务

自动化:数据信息的自动备份

规范化:避免备份数据出错

全网备份

1.2  全网备份项目实施过程

    ①. 规划定义好备份服务器

          a 部署rsync备份服务(采用rsync守护进程方式)

              b 编写脚本文件管理备份数据信息

              c 编写定时任务执行脚本管理数据(难点)

       ②. 确认验证好架构服务器

          a 验证rsync备份服务

              b 编写脚本文件统一备份数据信息(难点)

              c 编写定时任务执行脚本备份数据

1.3 全网备份项目rsync守护进程模式部署

1.3.1 rysnc服务端部署操作

  1. 验证软件是否存在

[root@backup~]# rpm -qa rsync

rsync-3.0.6-12.el6.x86_64

  1. 检查配置文件

  2.  ##rsyncd.conf start##                配置文件描述信息

  3.  uid = rsync                          #用户 远端的命令使用rsync访问共享目录

  4.  gid = rsync                          #用户组

  5.  use chroot = no                      #安全相关

  6.  max connections = 200                #大的连接数

  7.  timeout = 300                        #超时时间

  8.  pid file = /var/run/rsyncd.pid       #存放服务运行的时候 进程的ID号(PID)

  9. lock file = /var/run/rsync.lock      #进程的锁文件

  10. log file = /var/log/rsyncd.log       #运行程序日志文件,显示出错信息等

  11.  [backup]                            #模块名称

  12. path = /backup                       #模块对应的位置(路径)

  13. ignore errors                        #忽略错误程序

  14. read only = false                    #是否只读

  15. list = false                         #是否可以列表

  16. hosts allow = 172.16.1.0/24          #允许访问rsync服务器的客户范围(白名单)

  17. hosts deny = 0.0.0.0/32              #禁止访问rsync服务器的客户范围(黑名单)

  18. auth users = rsync_backup            #不存在的用户,只用于开门(认证)

  19. secrets file = /etc/rsync.passwor    #不存在的用户进行认证时的密钥文件

  20. comment = "backup dir by oldboy"     #

  21.    创建虚拟用户管理rsync程序

[root@backup~]# # 创建用户

[root@backup~]# useradd -s /sbin/nologin -M rsync

创建完成后查看

[root@backup~]# id rsync

uid=500(rsync)gid=500(rsync) groups=500(rsync)

4. 检查rsync服务认证用户密码文件是否存在

[root@backup~]# cat /etc/rsync.password

rsync_backup:123456

记得检查密码文件权限是不是600

[root@backup~]# chmod 600 /etc/rsync.password

[root@backup~]# ll /etc/rsync.password

-rw------- 1root root 20 May 4 12:04/etc/rsync.password

5. 创建共享存储目录

[root@backup~]# # 创建目录

[root@backup~]# mkdir /backup -p

[root@backup~]# ll -d /backup/

drwxr-xr-x 2root root 4096 May 4 12:00 /backup/

[root@backup~]# # 修改备份目录权限

[root@backup~]# chown -R rsync.rsync /backup/

[root@backup~]# ll -d /backup/

drwxr-xr-x 2rsync rsync 4096 May 4 12:00 /backup/

6.   启动rsync 服务器

[root@backup~]# ps -ef |grep rsync

root      5138     1 0 01:31 ?       00:00:00 rsync --daemon

root      6503  6391 0 09:04 pts/1   00:00:00 grep --color=auto rsync

[root@backup~]# netstat -luntp |grep 873

tcp       0     0 0.0.0.0:873                0.0.0.0:*                  LISTEN     5138/rsync

tcp       0     0 :::873                     :::*                       LISTEN     5138/rsync

没有的话 打开

rsync --daemon

7.   将rsync启动命令放入到开机自启动文件中

[root@backup~]# echo "rsync --daemon" >> /etc/rc.local

[root@backup~]# tail -1 /etc/rc.local

rsync--daemon

1.3.2 rsync客户端验证操作

 第一个里程碑要做

1. 创建用户认证密码文件,实现数据备份传输免密钥

[root@nfs01~]# cat /etc/rsync.password

123456

查看目录权限 修改成600

[root@nfs01~]# ll /etc/rsync.password

-rw-------1 root root 7 May 5 10:02/etc/rsync.password

2. 测试rsync服务数据备份传输

1.4 全网备份项目脚本编写

1.4.1 rsync客户端脚本编写需求

1. 本地创建backup备份目录                  mkdir -p /backup

             2. 将备份数据统一压缩进行保存 有软链接文件 tar -zchf

             3. 推送备份目录数据到rsync备份服务器上      --password-file=

             4. 删除本地保存的7天前的数据信息

         find /backup/$Host_IP -type f -mtime+7 -name "*.tar.gz" |xargs rm -f

             5. 对备份数据数据进行验证,加上指纹信息     md5sum 生成数据文件指纹信息

vim/server/scripts/backup_nginx.sh

#!/bin/bash

#oldboy at2017 5 backup data

Host_IP=$(hostname-I|awk '{print $2}')

Date_info=$(date+%F_week0%w)

# createbackup data dir

mkdir -p/backup

mkdir/var/html/www -p

mkdir/app/logs/ -p

# tar datainfo

cd /&&\

mkdir /backup/$Host_IP-p

tar zchf/backup/$Host_IP/sysbak_date_${Date_info}.tar.gz ./var/spool/cron/root ./etc/rc.local./server/scripts ./etc/sysconfig/iptables

tar zchf/backup/$Host_IP/www_date_${Date_info}.tar.gz ./var/html/www

tar zchf/backup/$Host_IP/logs_date_${Date_info}.tar.gz ./app/logs

# rsync pushfiger info

find/backup/$Host_IP/ -type f -name "*${Date_info}.tar.gz" |xargs md5sum>/backup/$Host_IP/finger_${Date_info}.txt

# rsync pushdata to rsync_server

rsync -az/backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

# cleardata info for 7 day ago

find/backup/$Host_IP -type f -mtime +7 -name "*.tar.gz" |xargs rm -f

find/backup/$Host_IP -type f -mtime +7 -name "finger*" |xargs rm -f

1.4.2 rsync服务端脚本编写需求

         a. 验证数据完整性                            md5sum -c 客户端传输过来的指纹文件

b. 将完整性验证结果,通过邮件发送给监管人员 邮箱的配置 与 发送邮件的方式(两种方式发送邮件)

           01:发送邮件方式,利用文件方式表示邮件内容

           mail -s "check data" 18735676310@163.com

           02:发送邮件,利用命令行方式表示邮件内容

           # echo "系统有异常问题,请检查系统"|mail -s "异常告警" 18735676310@163.com

           说明:echo后面接上要发送的邮件信息,mail -s后面接上邮件标题,最后表示要将邮件发送给谁

             c. 将180天的数据进行删除,保留每周一的数据

          find /backup/ -type f -mtime +180 !-name "*week01.tar.gz"|xargs rm -f

vim /server/scritps/backup_rsync.sh

[root@backuptmp]# cat /server/scripts/backup_server.sh

#!/bin/bash

Date_info=$(date+%F_week0%w)

# check datainfo

find /backup/-type f -name "finger_${Date_info}.txt" |xargs md5sum -c>/tmp/figer_cheak.txt

# send cheakinfo mail

mail -s"cheak date" 18735676310@163.com

# delete180day ago date ; save week01

find /backup/-type f -mtime +180 ! -name "*week01.tar.gz" |xargs rm -f

 

1.5 全网备份项目定时任务编写

①    rsync客户端编写定时任务

nginx客户端的定时任务

#crond-id-002:push backup torsync

00 00 * * * /bin/bash/server/scripts/backup_nginx.sh >/dev/null 2>&1

nfs客户端的定时任务

#crond-id-002:push backup torsync

00 00 * * * /bin/bash/server/scripts/backup_nfs.sh >/dev/null 2>&1

②    .rsync服务端编写定时任务

rsync服务端的定时任务

#crotab-id002:backup NFS nginx

00 06 * * * /bin/bash/server/scripts/backup_rsync.sh >/dev/null 2>&1

   上面两个客户端的定时任务写的是每天晚上12点整进行打包发送,而rsync服务器的定时任务是每天早上6点进行发送。

1.6 全网备份项目难点分析

①    . 每周一的数据进行保存,确认清楚什么是周一的数据

/backup/$(hostname-I|awk '{print $2}')/sysbak_date_$(date+%F_week0%w).tar.gz./var/spool/cron/root

所以在打包压缩文件的时候就考虑到了这一点$(date+%F_week0%w)这个在文件名字上面加上了周几,所以在保存数据的时候能起到关键性作用。

      find /backup/ -type f -mtime +180 ! -name"*week01.tar.gz" |xargs rm -f

②    . 验证数据完整性是什么概念

       因为数据是从客户端传过来的,为了保证数据没有修改和丢失,在发送数据时,给数据进行加密处理,然后服务端收到数据和加密处理文件时,会进行比对。如果串码一样,说明没有丢失和修改。

If you do not leave me . I will by your side untillthe life end

四级水平:你如果不离开我,我就和你同归于尽,

六级水平:你若不离不弃,我必生死相依。

八级水平:问世间情为何物?直教人生死相许。

十级水平:天地合,乃敢与君绝。

佛祖水平:你在或不在,爱就在那里,不增不减。

1.7 全网备份项目部署

1.7.1     第一个里程碑:实现数据传输备份

rsync守护进程模式配置步骤

检查服务端

  1. 1.检查软件是否存在

[root@backup~]# rpm -qa rsync

rsync-3.0.6-12.el6.x86_64

  1. 2.检查配置文件

[root@backup~]# cat /etc/rsyncd.conf

##rsyncd.conftart##

uid =rsync

gid =rsync

usechroot = no

maxconnections = 200

timeout= 300

pidfile = /var/run/rsyncd.pid

lockfile = /var/run/rsync.lock

logfile = /var/log/rsyncd.log

[backup]

path= /backup

ignoreerrors

readonly = false

list= false

hostsallow = 172.16.1.0/24

hostsdeny = 0.0.0.0/32

authusers = rsync_backup,oldboy

secretsfile = /etc/rsync.password

[data]

path= /data

ignoreerrors

readonly = false

list= false

hostsallow = 172.16.1.0/24

hostsdeny = 0.0.0.0/32

authusers = rsync_backup,oldboy

secretsfile = /etc/rsync.password

  1. 3.创建虚拟用户管理rsync程序

[root@backup~]# # 创建用户

[root@backup~]# useradd -s /sbin/nologin -M rsync

  1. 4.检查rsync服务认证用户密码文件是否存在

[root@backup~]# cat /etc/rsync.password

rsync_backup:123456

记得检查密码文件权限是不是600

  1. 5.创建共享存储目录

mkdir  /backup/ -p

修改目录的属组和属主

[root@backup~]# ll -d /backup/

drwxr-xr-x5 rsync rsync 4096 May 5 15:35 /backup/

  1. 6.启动rsync服务器

[root@backup~]# ps -ef |grep rsync

root      5138     1 0 01:31 ?       00:00:00 rsync --daemon

root      6503  6391 0 09:04 pts/1   00:00:00 grep --color=auto rsync

[root@backup~]# netstat -luntp |grep 873

tcp       0     0 0.0.0.0:873                0.0.0.0:*                  LISTEN     5138/rsync

tcp       0     0 :::873                     :::*                       LISTEN     5138/rsync

没有的话 打开

rsync --daemon

  1. 7.将rsync启动命令放入到开机自启动文件中

[root@backup~]# echo "rsync --daemon" >> /etc/rc.local

[root@backup~]# tail -1 /etc/rc.local

rsync--daemon

客户端
1. 创建用户认证密码文件,实现数据备份传输免密钥

[root@nfs01~]# cat /etc/rsync.password

123456

查看目录权限 修改成600

[root@nfs01~]# ll /etc/rsync.password

-rw-------1 root root 7 May 5 10:02 /etc/rsync.password

2. 测试rsync服务数据备份传输

      第二个里程碑:编写数据备份脚本

                 nginx nfs

--rsync客户端编写的备份脚本

客户端nginx编写的脚本

vim/server/scripts/backup_nginx.sh    要规范脚本的名称和存放脚本的目录

#!/bin/bash                            命令解释器

#oldboy at2017 5 backup data          必要的注释

Host_IP=$(hostname-I|awk '{print $2}') 设置的别名

Date_info=$(date+%F_week0%w)          设置的别名

# createbackup data dir               要创建的目录

mkdir -p/backup

mkdir/var/html/www -p

mkdir/app/logs/ -p

# tar datainfo                         打包目的的注释

cd /&&\                                一定要在根目录下面进行打包,

mkdir/backup/$Host_IP -p

tar zchf/backup/$Host_IP/sysbak_date_${Date_info}.tar.gz ./var/spool/cron/root ./etc/rc.local./server/scripts ./etc/sysconfig/iptables        记得要加h参数,可以打包软链接

tar zchf /backup/$Host_IP/www_date_${Date_info}.tar.gz ./var/html/www

tar zchf/backup/$Host_IP/logs_date_${Date_info}.tar.gz ./app/logs

# rsync pushfiger info

find/backup/$Host_IP/ -type f -name "*${Date_info}.tar.gz" |xargs md5sum>/backup/$Host_IP/finger_${Date_info}.txt 把找到的文件进行加密

# rsync pushdata to rsync_server

rsync -az/backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

                                             免密钥进行打包传输数据

# cleardata info for 7 day ago             删除七天前的文件

find/backup/$Host_IP -type f -mtime +7 -name "*.tar.gz" |xargs rm -f

find/backup/$Host_IP -type f -mtime +7 -name "finger*" |xargs rm -f

--nfs客户端编写的备份脚本

vim/server/scripts/backup_nfs.sh                 要规范脚本的名称和存放脚本的目录

#!/bin/bash                                       命令解释器

#oldboy at2017 5 backup data                     必要的注释

Host_IP=$(hostname-I|awk '{print $2}')

Date_info=$(date+%F_week0%w)

# createbackup data dir

mkdir -p/backup

# tar datainfo

cd /&&\                   一定要在根目录下面进行打包

mkdir/backup/$Host_IP -p

tar zchf

/backup/$Host_IP/sysbak_date_${Date_info}.tar.gz ./var/spool/cron/root ./etc/rc.local./server/scripts ./etc/sysconfig/iptables  记得要加h参数,可以打包软链接

# rsync pushfiger info

find/backup/$Host_IP/ -type f -name "*${Date_info}.tar.gz" |xargs md5sum>/backup/$Host_IP/finger_${Date_info}.txt

把找到的文件进行加密

# rsync pushdata to rsync_server

rsync -az/backup/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password

免密钥进行打包传输数据

# cleardata info for 7 day ago

find/backup/$Host_IP -type f -mtime +7 -name "*.tar.gz" |xargs rm -f

find/backup/$Host_IP -type f -mtime +7 -name "finger*" |xargs rm -f

备份服务器端 --rsync服务端编写备份脚本

--rsync服务端编写备份脚本

vim/server/scripts/backup_rsync.sh要规范脚本的名称和存放脚本的目录

#!/bin/bash                       命令解释器

Date_info=$(date+%F_week0%w)

# check datainfo           查找传过来的密码就行比对,将结果追加到figer_cheak.txt文件中

find /backup/-type f -name "finger_${Date_info}.txt" |xargs md5sum -c>/tmp/figer_cheak.txt

# send cheakinfo mail    把文件的内容发送到邮箱

mail -s"cheak date" 18735676310@163.com

# delete180day ago date ; save week01  删除180天的文件除了每星期一的文件

find /backup/-type f -mtime +180 ! -name "*week01.tar.gz" |xargs rm -f

      第三个里程碑:配置定时任务

①rsync客户端编写定时任务

nginx客户端的定时任务

#crond-id-002:push backup torsync

00 00 * * * /bin/bash/server/scripts/backup_nginx.sh >/dev/null 2>&1

nfs客户端的定时任务

#crond-id-002:push backup torsync

00 00 * * * /bin/bash/server/scripts/backup_nfs.sh >/dev/null 2>&1

②. rsync服务端编写定时任务

rsync服务端的定时任务

#crotab-id002:backup NFS nginx

00 06 * * * /bin/bash/server/scripts/backup_rsync.sh >/dev/null 2>&1

   上面两个客户端的定时任务写的是每天晚上12点整进行打包发送,而rsync服务器的定时任务是每天早上6点进行发送。因为如果服务端也是晚上12点整进行备份,怕客户端的还没有发送过来就没有文件,所有往后推一点时间最好。

1.8 全网备份用到的知识点

1.8.1 md5sum

对传输的文件进行加密

[root@nfs01~]# md5sum /etc/hosts

c559a5da81a3ecc708ae5d84985a0776 /etc/hosts

指纹加密特点:雪崩效应

1.8.2 发送邮件修改的配置文件 vim /etc/mail.rc

进入到邮件发送的配置文件中,编辑发送邮件的参数信息

vim/etc/mail.rc

setfrom=18735676310@163.com smtp=smtp.163.com

setsmtp-auth-user=18735676310@163.com smtp-auth-password=Zr950220 smtp-auth=login

setfrom=邮箱地址@163.com smtp=smtp.163.com <-邮件发送邮件服务器域名,此处为163邮箱的发送服务器域名

setsmtp-auth-user=邮箱账号 smtp-auth-password=登录邮箱密码 smtp-auth=login

说明:设置发送邮件是从哪个公共邮箱地址发送,采用的发送邮件服务器域名,公共邮箱账号和密码

1.8.3 发送邮件的方式(两种方式发送邮件)

           01:发送邮件方式,利用文件方式表示邮件内容

           mail -s "check data"2722982316@qq.com

           02:发送邮件,利用命令行方式表示邮件内容

           # echo "系统有异常问题,请检查系统"|mail -s "异常告警" 17778058507@163.com

           说明:echo后面接上要发送的邮件信息,mail -s后面接上邮件标题,最后表示要将邮件发送给谁

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站栏目:全网备份-创新互联
标题来源:http://ybzwz.com/article/dheedg.html