当前位置: 56net亚洲必嬴 > 服务器&运维 > 正文

服务器数据备份实施方案

时间:2019-10-24 18:29来源:服务器&运维
利用rsync与crond服务器进行WEB服务备份,rsynccrond 行使rsync与crond服务器进行WEB服务备份 场景: 某厂家里有黄金年代台Web服务器,里面包车型客车数量十分重大,可是若是硬盘坏了,数据

利用rsync与crond服务器进行WEB服务备份,rsynccrond

行使rsync与crond服务器进行WEB服务备份
场景:
某厂家里有黄金年代台Web服务器,里面包车型客车数量十分重大,可是若是硬盘坏了,数据就能够放弃。
近年来首席推行官须要您把数据在别的机器上做贰个备份。需要如下:
每一天深夜00点在Web服务器A上包裹备份系统布局文件、网址前后相继目录及拜见日志并经过
rsync命令推送到服务器B上备份保留。
备份思路:能够优先在该地按日期打包,然后在推送到备份服务器上。
切实须要如下:
1)Web服务器A和备份服务器B的备份目录必需为/backup。
2)系统布局文件包含但不限于:
a.定期职务服务的安顿文件
b.开启自运维文件的配置/etc/rc.d/rc.local
c.经常脚本的目录/server/scripts
d.防火墙iptabls的布署文件/etc/sysconfig/iptables
e.别的必要备份的目录
3)Web服务器站点目录假定为/var/html/www
4)Web服务器A访问的日志路线假定为(/app/logs)
5) Web服务器保留打包后的7天的备份数据。备份服务器B上保留四个月的多寡别本。
6)备份服务器B上固守备份数据的服务器的IP为目录保存,打包的文本依据时间名字保存。
逻辑架构图:。。。。。
特地表明:
1)职业中领导很或者不会告诉你哪些去做,只会提要求,譬喻:小崔,WEB服务器很关键,请你把
数据在别的服务器备份黄金年代份。
2)逻辑架构图更不恐怕是老板给您画,而是你知道了领导的意味,然后自身想出备份的方案,最终,在
奉行前你做的二个图纸而已。

情形表明:
192.168.0.252 web
192.168.0.251 backup

空洞出技能点:
A、在备份服务器B上实践rsync服务,A是客商端。
B、在A上对根本数据开展备份,实行上就是写叁个备份脚本。
C、做一个定时职责,推行B步骤中的备份脚本。

起来配备
A、在备份服务器B上履行rsync服务,A是顾客端。
一、什么是rsync

  rsync,remote synchronize顾名思意就知道它是意气风发款实现远程同步效能的软件,它在同盟文件的还要,
可以保持原本文件的权柄、时间、软硬链接等附加消息。 rsync是用 “rsync 算法”提供了一个客户机和
长间隔文件服务器的文本同步的高效方法,并且能够由此ssh情势来传输文件,那样其保密性也相当好,其它
它照旧免费的软件。
  rsync 满含如下的后生可畏部分特点:

  能更新任何目录和树和文件系统;
  有选取性的保证符号链链、硬链接、文件属于、权限、设备以至时光等;
  对于安装来讲,无其余特殊权限供给;
  对于两个文件来讲,内部流程收缩文件等待的延时;
  能用rsh、ssh 或直接端口做为传输入端口;
  支持佚名rsync 同步文件,是可观的镜像工具;
初叶布置rsync服务
1、确定安装rsync软件包
[[email protected] ~]# rpm -qa|grep rsync
rsync-3.0.6-12.el6.x86_64
2、配置rsync配置文件
rsync配置文件如下:/etc/rsyncd.conf
###rsyncd.conf start###
uid=rsync
gid=rsync
use chroot=no
max connections=200
timout=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=10.0.0.0/24
hosts deny=0.0.0.0/32
auth users=rsync_backup
secrets file=/etc/rsync.password
#rsync_config________________________end###

3、增多客商备份目录
[[email protected] ~]# mkdir /backup
[[email protected] ~]# useradd rsync -s /sbin/nologin
[[email protected] ~]# id rsync
uid=502(rsync) gid=502(rsync) groups=502(rsync)
[[email protected] ~]# chown -R rsync /backup/
[[email protected] ~]# ll /backup -ld
drwxr-xr-x 2 rsync root 4096 Jan 14 20:25 /backup
4、运转rsync守护进度
[[email protected] ~]# rsync --daemon
[[email protected] ~]# netstat -lntup|grep 873
tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      1477/rsync          
tcp        0      0 :::873                      :::*                        LISTEN      1477/rsync    
5、rsync开机自运行
[[email protected] ~]# echo "#rsync bak by baizuo 20180120">>/etc/rc.local ;echo "/usr/bin/rsync --daemon --config=/etc/rsyncd.conf" >>/etc/rc.local 
[[email protected] ~]# tail /etc/rc.d/rc.local -n2
#rsync bak by baizuo 20180120
/usr/bin/rsync --daemon

6、配置用于rsync同步的账号、密码及账号文件权限
(只是用作rsync账号验证的杜撰客户,并非系统本人顾客)
[[email protected] ~]# echo "rsync_backup:baizuo" >/etc/rsyncd.password
[[email protected] ~]# tail /etc/rsync.password 
rsync_backup:baizuo
[[email protected] ~]# chmod 600 /etc/rsync.password 
[[email protected] ~]# ll /etc/rsync.password 
-rw------- 1 root root 20 Jan 20 17:06 /etc/rsync.password

7、在客商端举办配置
[[email protected] ~]# echo "baizuo" >/etc/rsync.password
[[email protected] ~]# chmod 600 /etc/rsync.password 
[[email protected] ~]# ll /etc/rsync.password 
-rw------- 1 root root 7 Jan 20 17:04 /etc/rsync.password

8、在顾客端进行推送测验
[[email protected] ~]# /backup
[[email protected] ~]#  touch /backup/test.txt
[[email protected] ~]# rsync -avzP /backup/ [email protected]::backup/ --password-file=/etc/rsync.password 
sending incremental file list
./
test.txt
           0 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/2)

sent 78 bytes  received 30 bytes  216.00 bytes/sec
total size is 0  speedup is 0.00

A技术点--------------OK----------------------------
B、在A上对关键数据开展备份,实施上正是写一个备份脚本。
对上面所说的计划文件做备份。

#先在shell上做三遍打包压缩测量试验。(能够不做测验)
[[email protected] ~]# mkdir /var/html/www/baizuo -p
[[email protected] ~]# mkdir /app/logs/baizuo_log -p
[[email protected] ~]# cd /var/html/www/
[[email protected] www]# tar zcvf baizuo_web_$(date +%F).tar.gz ./baizuo
./baizuo/
[[email protected] www]# ll
drwxr-xr-x 2 root root 4096 Jan 20 17:32 baizuo
-rw-r--r-- 1 root root  114 Jan 20 17:34 baizuo_web_2018-01-20.tar.gz

2、编写脚本,在测量检验一下。
(那么些剧本并不正规,你可以康健它。)
[[email protected] www]# mkdir /server/scripts/ -p
[[email protected] www]# mv rsync_copyall.sh /server/scripts/

[[email protected] www]# cat /server/scripts/rsync_copyall.sh 
#backup web_site
cd /var/html&&tar zcf /backup/www_$(date +%F).tar.gz ./www
cd /app/ && tar zcf /backup/logs_$(date +%F).tar.gz ./logs

#backup system config
cd / && tar zcf /backup/etc_$(date +%F).tar.gz ./etc

#backup crond root
cd /var/spool/cron/ && tar zcf /backup/crond_root_$(date +%F).tar.gz ./root

#rsync data to bakserver
rsync -avzP /backup/ [email protected]::backup/ --password-file=/etc/rsync.password >/dev/null 2>&1

#del data 7 days ago
find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f

3、测验脚本,查看结果
顾客端施行脚本
[[email protected] scripts]# sh rsync_copyall.sh 
劳务的查看结果
[[email protected] ~]# ll /backup/
total 10276
-rw-r--r-- 1 rsync rsync      161 Jan 20 17:54 crond_root_2018-01-20.tar.gz
-rw-r--r-- 1 rsync rsync 10509606 Jan 20 17:54 etc_2018-01-20.tar.gz
-rw-r--r-- 1 rsync rsync      136 Jan 20 17:54 logs_2018-01-20.tar.gz
-rw-r--r-- 1 rsync rsync        0 Jan 20 17:07 test.txt
-rw-r--r-- 1 rsync rsync      341 Jan 20 17:54 www_2018-01-20.tar.gz
PS:能够见见推送成功了,然而呢,这里有叁个主题素材,服务端的公文是还是不是相应用IP保存呢。
解决办法:
全盘剧本作用:
[[email protected] scripts]# cat rsync_copyall.sh 
IP=`grep IPADDR /etc/sysconfig/network-scripts/ifcfg-eth0 |cut -d '=' -f2`
mkdir /backup/$IP

#backup web_site
cd /var/html&&tar zcf /backup/$IP/www_$(date +%F).tar.gz ./www
cd /app/ && tar zcf /backup/$IP/logs_$(date +%F).tar.gz ./logs

#backup system config
cd / && tar zcf /backup/$IP/etc_$(date +%F).tar.gz ./etc

#backup crond root
cd /var/spool/cron/ && tar zcf /backup/$IP/crond_root_$(date +%F).tar.gz ./root

#rsync data to bakserver
rsync -avzP /backup/$IP [email protected]::backup/ --password-file=/etc/rsync.password >/dev/null 2>&1

#del data 7 days ago
find /backup/ -type f -name "*.tar.gz" -mtime +7|xargs rm -f

备份服务器端查看结果:
[[email protected] backup]# ls /backup/192.168.0.252/
crond_root_2018-01-20.tar.gz  logs_2018-01-20.tar.gz
etc_2018-01-20.tar.gz         www_2018-01-20.tar.gz

B技术点______________________________完成!
C、做四个准时义务,执行B步骤中的备份脚本。
(客户端做叁个定期职责)天天0点备份数据,数据保存7天。
[[email protected] scripts]# crontab -l
30 * * * * /usr/sbin/ntpdate cn.ntp.org.cn >/dev/null 2>&1
#bak local data by baizuo at 2018.1.20
00 00 * * * /bin/sh /server/scripts/rsync_copyall.sh >/dev/null 2>&1 
(服务端做个定期职责)备份数据保存四个月。
[[email protected] scripts]# crontab -l
30 * * * * /usr/sbin/ntpdate cn.ntp.org.cn >/dev/null 2>&1
#keep data 180 days
00 00 * * * /bin/sh /server/scripts/keepdata180days.sh >/dev/null 2>&1 

第1章 项目策动干活

Rsync:

演习题四,

1.1 基本备份要求

rsync 优点:
增量备份,协理socket,集中备份
缺点:
大量小文件同步的时候,比对时间较长,有时,rsync
经过会告风华正茂段落

第1章 练习题

已知3台服务器主机名分别为:web01,backup,nfs01,主机新闻如下表:

协办大文件,10G如此的大文件不经常也可能有标题
暂停,未完全同步前,是蒙蔽文件

1.1 每一天上午 12 点,打包站点目录/var/www/html 备份到/data 目录下(最佳每一次备份准时间变化分歧的备份包)

服务器说明

外网IP

内网IP

主机名

Nginx web服务器

10.0.0.8/24

172.16.1.8/24

web01

NFS存储服务器

10.0.0.31/24

172.16.1.31/24

nfs01

rsync备份服务器

10.0.0.41/24

172.16.1.41/24

backup

rsync -avz /etc/hosts /tmp/ (相当于cp -a 命令)

1.1.1 测量试验命令

[[email protected] ~]# cd / && tar zcf /data/www_`date +%F`.tar.gz  var/www/html

需求:每一日清晨0点整在web服务器上包裹备份系统布署文件,网址前后相继目录及拜会日志通过rsync命令推送备份服务器backup上备份保留。
 
切切实实须要如下:
1)web服务器和备份服务器的备份目录都不得不为/backup
2)要备份的连串布局文件满含但不限余:
  a.准期任务服务的安排文件(/var/spool/cron/root)
  b.开机自运维的布局文件(/etc/rc.local)
  c.日常脚本的目录(/server/scripts)
  d.防火墙iptables的安插文件(/etc/sysconfig/iptables)
3)web服务器站点目录为(/var/html/www)
4)Web服务器A访谈日志的不二等秘书技为(/app/logs)
5)Web服务器保留打包后的7天的备份数据就能够(本地留存不可能多于7天,因为太多硬盘会满)
6)备份服务器上,保留近来7天的备份数据,同有时候保留7个月内每一周黄金时代的兼具数据。
7)备份服务器上要设置备份数据服务器的内网IP为目录保存备份,备份的文件安装时间名字保存。
8)必要保障备份的数额尽量完整争取,在备份服务器上对备份的多寡实行反省,把备份的功成名就及战败结果新闻发给系统管理员的邮箱中。
 
1.2 轻易逻辑图

rsync -avz --delete /null/ /tmp/
(null 目录有吗,tmp目录就有甚,2者内容是大器晚成致的)

1.1.2 写入脚本中

[[email protected] /]# cat /server/scripts/www.sh

cd / && tar zcf /data/www_`date +%F`.tar.gz  var/www/html

图片 1

rsync 推到远端 2 台服务器都要有rsync服务,
要不会 command not found
rsync -avzP -e 'ssh -p 22' /tmp/ root@192.168.1.197:/test
(把地面包车型大巴tmp目录推到远端的test目录,目录的背后的斜线要带上)

1.1.3 测量检验脚本

[[email protected] ~]# sh /server/scripts/www.sh

1.3 解题思路
1)搭建backup服务器。
  a.搭建rsync服务
2)搭建web服务器。
  1.验证rsync服务是不是推送成功。
  2.支出脚本,达成打包,备份,推送,校验,删除。
  3.布置准期职分准期推送,每日0点定期推送。
3)搭建backup服务器。
1.达成校验,删除,报告急方。
2.安顿准时职责每一天6点定时施行。
4)搭建nfs服务器。
  1.验证rsync服务是不是推送成功。
  2.费用脚本,完毕打包,备份,推送,校验,删除。
  3.布局定期职责准时推送,天天0点定期推送。
 
第2章 项目实施
2.1 搭建backup服务器。
2.1.1 rsync的暗中认可配置文件是/etc/rsyncd.conf,配置文件默许是空的,须要自个儿编排

rsync -avzp -e 'ssh -p 22' root@192.168.1.197:/test/ /home/rdj/test/text/
(拉取远端的 注意test目录后的斜线要带上,拷贝的是目录里面包车型客车内容)

1.1.4 写入准时职分

[[email protected] /]# crontab -l |tail -2

#### backup /var/www/html dir

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

[root@backup ~]# cat /etc/rsyncd.conf
#rsync_config_____________________________start
#created by linuxidc 15:01 2007-6-5
##rsyncd.conf start##
uid = rsync 
gid = rsync 
use chroot = no   
max connections = 200     
timeout = 300   
pid file = /var/run/rsyncd.pid     
lock file = /var/run/rsyncd.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
[luo]
path = /luo
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = tang
secrets file = /etc/tang
#rsync_config________________________end

-e 表示 钦命使用隧道

1.1.5 检查试行结果

[[email protected] ~]# ll /data/

total 16

-rw-r--r--  1 root root 154 Sep 11 09:44 www_2017-09-11.tar.gz

2.1.2 增多客商rsync
[root@backup ~]# useradd rsync -s /sbin/nologin -M
[root@backup ~]# cat /etc/passwd|grep rsync
rsync:x:501:501::/home/rsync:/sbin/nologin

rsync服务端:

1.2 每周 六、日 清晨 9:00和凌晨 14: 00  来老男孩这里上学(执行顺序/server/script/oldboy.sh替代学习)。

00 9,14 * * 0,6  /bin/sh /server/scripts/oldboy.sh >/dev/null 2>&1

                     0代表星期六

                     6代表周日

何以用编造顾客?
应答:文件和进程都要满意属主的渴求,文件和经过的存在必然是索要顾客的,也是为了安全难点。
2.1.3 根目录下加多backup目录
[root@backup ~]# mkdir -p /backup/
[root@backup ~]# chown -R rsync.rsync /backup/
[root@backup ~]# ls -ld /backup/
drwxr-xr-x 3 rsync rsync 20480 1月  18 09:51 /backup/

useradd rsync -s /sbin/nologin -M

1.3 描述下列路线的源委是做哪些的。

/etc/sysctl.conf            系统基本的安顿文件

/etc/rc.local               开机自运转

/etc/hosts                  ip与域名的附和关系 ,拆解深入分析主机名

/etc/fstab                  开机自动挂载

/var/log/secure             客户登入音讯,首要查看里面包车型客车Failed

2.1.4 创制rsync的密码配置文件,暗中认可也是空的
[root@backup ~]# cat /etc/rsync.password 
rsync_backup:linuxidc
[root@backup ~]# chmod 600  /etc/rsync.password 
[root@backup ~]# ls -l /etc/rsync.password 
-rw-------. 1 root root 20 11月 29 01:14 /etc/rsync.password

id rsync

1.4 请说出下列 grep 正则表达式的意义

^         以...开端的行

$         以...结尾的行

.(点号)    自便贰个字符

         在转义字符  n t

*           前二个字符练习现身0次或1次以上

{n,m}       前一个字符一而再三番五次现身,最少n次,最多m

[^t]         取不蕴涵t的

^[^t]        以不是t的开头

2.1.5 开启服务并开机自启动
[root@backup ~]# tail -1 /etc/rc.local 
/usr/bin/rsync --daemon

mkdir /backup
chown -R rsync /backup
ls -ld /backup/
echo 'rsync_backup:123456' >/etc/rsync.password

1.5  杀绝文件中的空行和空格

2.1.6 服务器端测量检验
[root@backup ~]# ps -ef|grep rsync|grep -v grep
root      23049      1  0 Jan15 ?        00:00:00 rsync --daemon
root@backup ~]# lsof -i:rsync
COMMAND  PID USER  FD  TYPE DEVICE SIZE/OFF NODE NAME
rsync  23049 root    3u  IPv4  56971      0t0  TCP *:rsync (LISTEN)
rsync  23049 root    5u  IPv6  56972      0t0  TCP *:rsync (LISTEN)
[root@backup ~]# netstat -lntup|grep rsync
tcp        0      0 0.0.0.0:873                0.0.0.0:*                  LISTEN      23049/rsync       
tcp        0      0 :::873                      :::*                        LISTEN      23049/rsync       
[root@backup ~]# telnet 172.16.1.41 873
Trying 172.16.1.41...
Connected to 172.16.1.41.
Escape character is '^]'.
@RSYNCD: 30.0
表达服务器端配置没不平时

chmod 600 /etc/rsync.password
ll /etc/rsync.password

1.5.1 文件的原委

[[email protected] ~]# cat -A mun.txt

znix1$

znix2$

znix3$

$

znix4$

      $

znix5$

      $

znix6$

2.2 验证rsync服务是不是推送成功。
2.2.1 顾客端配置
[root@web01 ~]# cat /etc/rsync.password 
linuxidc
[root@web01 ~]# ls -ld /etc/rsync.password 
-rw------- 1 root root 7 1月  18 16:01 /etc/rsync.password

 

1.5.2 egrep方法

寻找空行  -v参数消除

[[email protected] ~]# egrep -n "^ *$" mun.txt

4:

6:     

8:     

10:

14:

[[email protected] ~]# egrep -n  "^$|^ +$" mun.txt

4:

6:     

8:     

10:

14:

编辑:服务器&运维 本文来源:服务器数据备份实施方案

关键词:

  • 上一篇:没有了
  • 下一篇:没有了