当前位置: 亚洲城ca88 > 计算机网络 > 正文

服务器数据备份消除方案,演练题肆

时间:2019-05-02 07:16来源:计算机网络
利用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个月的数据副本。
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 
(服务端做个定时任务)备份数据保存6个月。
[[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 

2.2.3.4 全部放到脚本里:
cat  /server/scripts/bak.sh
#!/bin/sh
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
IP=$(ifconfig eth1|awk -F "[ :] " 'NR==2{print $4}')
Bak_Path=/backup
mkdir $Bak_Path/$IP -p
if [ $(date %w) -eq 2  ];then
date="$(date %F -d "-1day")_week1"
else
date="$(date %F -d "-1day")"
fi
cd / &&
tar zcfh $Bak_Path/$IP/sys_config_${date}.tar.gz ./var/spool/cron ./etc/rc.local ./server/sc
ripts  &&
tar zcf $Bak_Path/$IP/webdata_${date}.tar.gz var/html/www/  &&
tar zcf $Bak_Path/$IP/access_log_${date}.tar.gz app/logs/  &&
find $Bak_Path -type f -name "*.tar.gz"|xargs md5sum >$Bak_Path/$IP/flag_${date} &&
rsync -az $Bak_Path/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password
&&
###delete data before 7days ago by chen at 20170118
find $Bak_Path -type f  -mtime 7|xargs rm -f
~

2.4.3 查询某个命令属于哪个软件包

查询的时候要使用绝对路径

[[email protected] ~]# rpm -qf `which crond` 

cronie-1.4.4-16.el6_8.2.x86_64

 

第1章 练习题 1.1 每天晚上 12 点,打包站点目录 /var/www/html 备份到 /data 目录下(最好每次备份按时间生成不同的备份包) 1.1....

2.2.2 客户端推送
[root@web01 backup]# rsync -avz /backup/  --password-file=/etc/rsync.password   
sending incremental file list
./
1
10
2
3
4
5
6
7
8
9
说明客户端推送成功

练习题四,

rsync同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm

1.9 把 oldboy 目录及其子目录的属主改为 oldboy,组改为 root。

chown  oldboy.lodboy oldboy.txt

图片 1

1.11.5 测试定时任务

[[email protected] ~]# date -s '23:59:29'

Mon Sep 11 23:59:29 CST 2017

[[email protected] ~]# ll /backup/file2017-09-1*

-rw-r--r-- 1 root root 127455 Sep 11 15:44 /backup/file2017-09-11.tar.gz

-rw-r--r-- 1 root root 127455 Sep 12  2017 /backup/file2017-09-12.tar.gz

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
说明服务器端配置没有问题

第1章 练习题

RSync实现文件备份同步详解   http://www.linuxidc.com/Linux/2014-09/106967.htm

2.4.2 查询软件包里面的内容

[[email protected] ~]# rpm -ql tree

/usr/bin/tree

/usr/share/doc/tree-1.5.3

/usr/share/doc/tree-1.5.3/LICENSE

/usr/share/doc/tree-1.5.3/README

/usr/share/man/man1/tree.1.gz

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

1.11.2 写入脚本

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

cd / && tar zcf /backup/file`date %F`.tar.gz  etc/rc.local  etc/hosts etc/services

2.2.3.5 每天00点定时任务推送
[root@web01 backup]# crontab -l
00 00 * * * /bin/sh /server/scripts/bak.sh >/dev/null 2>&1  完成客户端的定时任务推送工作

2.3 linux无法上网怎么办

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-01/139887.htm

1.7 vi/vim命令、快捷键

 含义

命令

退出保存

:wq

退出并强制保存,!为强制的意思

:wq!

强制退出,不保存 

:q!

另存为

:q  /tmp/****

光标移动到文件的最后一行

G

光标移动到文件的第一行

gg

光标移动到文件的100行

100gg 100G :100

从光标所在位置将光标移动到当前行的开头

0  ^

从光标所在位置将光标移动到当前行的结尾

$

删除当前行的内容

dd

删除当前行到文件的最后一行的内容 

dG

删除当前行到文件的第一行的内容

dgg

粘贴

p

粘贴10次

10p

复制

yy

取消上一次的动作

u

删除一行

dd

/ 搜索内容

继续向下搜索              n

继续向上搜索              N

向上搜索 

?

取消对找到的内容的高亮显示

:noh

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

第2章 回顾课程

2.2.3 Web服务器实现打包,备份,推送,删除。
2.2.3.1 命令行备份
[root@web01 backup]# mkdir /var/html/www -p
[root@web01 scripts]# mkdir /app/logs -p
[root@web01 /]# tar zcvfh /backup/sys_config_$(date %F).tar.gz  ./var/spool/cron/root  ./server/scripts/ ./etc/rc.local 
./var/spool/cron/root
./server/scripts/
./server/scripts/bak.sh
./etc/rc.local
[root@web01 /]# tar zcvfh /backup/webdata_config_$(date %F).tar.gz ./var/html/www/
./var/html/www/
./var/html/www/4
./var/html/www/7
./var/html/www/5
./var/html/www/6
./var/html/www/2
./var/html/www/8
./var/html/www/3
./var/html/www/10
./var/html/www/1
./var/html/www/9
[root@web01 /]# tar zcvfh /backup/access_log_config_$(date %F).tar.gz ./app/logs/ 
./app/logs/
./app/logs/f
./app/logs/c
./app/logs/a
./app/logs/d
./app/logs/e
./app/logs/b
./app/logs/g

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:

2.2.3.3 删除:
[root@web01 backup]# find /backup/ -type f -mtime 7|xargs rm -rf

1.1.2 写入脚本中

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

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

为什么用虚拟用户?
应答:文件和进程都要满足属主的要求,文件和进程的存在一定是需要用户的,也是为了安全问题。
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/

2.2.2 是否有人劫财劫色

查看 iptables selinux是否关闭

服务器说明

外网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

1.3 描述下列路径的内容是做什么的。

/etc/sysctl.conf            系统内核的配置文件

/etc/rc.local               开机自启动

/etc/hosts                  ip与域名的对应关系 ,解析主机名

/etc/fstab                  开机自动挂载

/var/log/secure             用户登陆信息,主要查看其中的Failed

Linux文件夹对比并提取的差分文件技巧-rsync的妙用 http://www.linuxidc.com/Linux/2016-02/128307.htm

2.2.1 道路是否通畅

ping ip地址

实例2-1 无法ping通的解决办法:

服务器的ip地址是否正确

服务器网卡是否启动,即ONBOOT是否为yes

系统网卡的配置

实例2-2 VMware相关的:

vmware-5个服务是否启动

vmware配置-网卡是否连接

查看你vmware网卡的vmnet8 是否已经启动

inotify-tools rsync实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm

1.6.4 awk方法

awk中的变量:

-vOFS=":"

OFS 的内容就是 , 的内容

awk在显示每一列内容的时候,每一列之间的分隔符

-v 修改和创建awk可以使用的变量

[[email protected] ~]# awk -F: -vOFS=":" '{print $NF,$2,$3,$4,$5,$6,$1}' passwd.txt

/bin/bash:x:0:0:root:/root:root

/sbin/nologin:x:1:1:bin:/bin:bin

……

2.2.3.2 推送:
[root@web01 backup]# rsync -avz /backup/ rsync_backup@172.16.1.41::backup/ --password-file=/etc/rsync.password

1.6.3 sed方法

[[email protected] ~]# sed -r 's#(^.*)(:x.*:)(.*)#321#g' passwd.txt

/bin/bash:x:0:0:root:/root:root

/sbin/nologin:x:1:1:bin:/bin:bin

……

排除不是以 :开头的行

[[email protected] ~]# sed -r 's#(^[^:] )(.*:)(/.*$)#321#' passwd.txt

/bin/bash:x:0:0:root:/root:root

/sbin/nologin:x:1:1:bin:/bin:bin

……

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.6.2 排除思想

[[email protected] ~]# egrep "^[^:] " passwd.txt  -o

root

bin

……

利用inotify rsync实现Linux文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm

2.1 定时任务

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

1.1 每天晚上 12 点,打包站点目录/var/www/html 备份到/data 目录下(最好每次备份按时间生成不同的备份包)

[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

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

Rsync 的详细介绍:请点这里
Rsync 的下载地址:请点这里

1.6 把passwd.txt 第一列取出来

1.1 基本备份要求

1.7.1 编辑services定位到第100行把这一行复制到文件的最后一行粘贴10次。

100gg

yy

G

10p

第1章 项目准备工作

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

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

2.4 检查一个软件是否按照 rpm 相关

第3章 backup服务器实现校验,删除,报警
首先我们测试下如果实现服务器报警
[root@backup ~]# tail -1 /etc/mail.rc 
set from=njlc_jsbcmq@linuxidc.com smtp=smtp.163.com smtp-auth-user=njlc_jsbcmq  smtp-auth-password=hgg7454196ls smtp-auth=login
[root@backup ~]#  echo "31qqi zuzi bang"|mail -s "nihao" linuxidc@linuxidc.com
就可以收到邮件了
 
[root@backup scripts]# cat checkbak.sh 
#!/bin/bash
export
if [ $(date %w) -eq 2 ];then
date="$(date %F -d "-1day")_week1"
else
date="$(date %F -d "-1day")"
fi
find /backup/ -name "flag_${date}*"|xargs md5sum -c  &>>/tmp/mail_$(date %F).log
find /backup/ -type f -name "*.tar.gz"  -a ! -name "*week1*"  -mtime 1|xargs rm -f 
mail -s  "backup ~date~"  linuxidc@linuxidc.com </tmp/mail_$(date %F).log
cp /tmp/mail_$(date %F).log  /tmp/mail_$(date %F).log.ori
>/tmp/mail_$(date %F).log
做定时任务,每天上午6点发送邮箱
[root@backup scripts]# crontab -l
* * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1 
* * * * * /bin/bash  /server/scripts/checkbak.sh >/dev/null 2>&1 
项目完成

1.10 描述下 umask 的作用.

umask管理着linux默认的权限

实例1-1 当umask为021时

file 权限为644

 666-021 001=644

dir 权限为 756

 777-021=756

利用inotifywait监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm

2.3.3 检查dns配置文件

[[email protected] ~]# cat /etc/resolv.conf

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,配置文件默认是空的,需要自己编辑

2.3.2 ping  外网ip

可以ping 通

[[email protected] ~]# ping 123.206.66.149

PING 123.206.66.149 (123.206.66.149) 56(84) bytes of data.

64 bytes from 123.206.66.149: icmp_seq=1 ttl=128 time=63.1 ms

64 bytes from 123.206.66.149: icmp_seq=2 ttl=128 time=60.5 ms

CentOS 6.5下Rsync远程同步 http://www.linuxidc.com/Linux/2014-05/101084.htm

2.2.3 是否有人提供服务

实例2-3 看22端口是否开启

方法一: telnet 10.0.0.200 22

方法二: ss -lntup |grep 22

实例2-4 进程是否在运行

ps -ef |grep sshd

需求:每天晚上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天的备份数据,同时保留6个月内每周一的所有数据。
7)备份服务器上要安装备份数据服务器的内网IP为目录保存备份,备份的文件安装时间名字保存。
8)需要确保备份的数据尽量完整争取,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员的邮箱中。
 
1.2 简单逻辑图

1.9.1 修改时可能发生的错误

[[email protected] ~]# id oldboy

uid=500(oldboy) gid=501(incahome) groups=501(incahome)

[[email protected] ~]# chown oldboy.oldboy oldboy-new.txt

[[email protected] znix ~]# chown oldboy.oldboy num.txt

chown: invalid user: `oldboy.oldboy'

检查oldboy用户是否存在,检查oldbo这个用户组是否存在

图片 2

2.1.3 测试脚本

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

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

^         以...开头的行

$         以...结尾的行

.(点号)    任意一个字符

         在转义字符  n t

*           前一个字符练习出现0次或1次以上

{n,m}       前一个字符连续出现,至少n次,最多m

[^t]         取不包含t的

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

1.11.3 测试脚本

[[email protected] /]# sh /server/scripts/file.sh

[[email protected] /]# ll /backup/file2017-09-11.tar.gz

-rw-r--r-- 1 root root 127455 Sep 11 15:44 /backup/file2017-09-11.t

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

1.5  排除文件中的空行和空格

2.4.1 查询某个软件包是否安装

[[email protected] ~]# rpm -qa tree

tree-1.5.3-3.el6.x86_64

每隔 2 个小时将/etc/services 文件打包备份到/tmp 下(最好每次备份成不同的备份包)

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.2 无法连接linux

1.11.1 测试命令

[email protected] ~]# cd / && tar zcf /backup/file`date %F`.tar.gz  etc/rc.local  etc/hosts etc/services

  [email protected] /]# ll /backup/file2017-09-11.tar.gz

-rw-r--r-- 1 root root 127455 Sep 11 15:41 /backup/file2017-09-11.tar.gz

1.11 每天打包备份 /etc/rc.local /etc/hosts /etc/services 到 /backup目录。

2.3.4 修改配置文件

修改完成重启网卡,生效

[[email protected] ~]# service network restart

Shutting down interface eth0:                              [  OK  ]

Shutting down loopback interface:                          [  OK  ]

Bringing up loopback interface:                            [  OK  ]

Bringing up interface eth0:  Determining if ip address 10.0.0.201 is already in use for device eth0...

                                                           [  OK  ]

1.11.4 写入定时任务

### beifen zhongyaowenjan

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

1.5.1 文件的内容

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

znix1$

znix2$

znix3$

$

znix4$

      $

znix5$

      $

znix6$

2.1.2 放入脚本中

[[email protected] ~]# cat /server/scripts/ser.sh

cd / && /bin/tar zcf /tmp/ser_`date %F_%H`.tar.gz  etc/services

2.1.5 检查定时任务是否成功

1)是否打包成功,看看文件里面是否有追加的信息

2)查看定时任务日志 /var/log/cron

1.8 授权 oldboy 目录及其子目录 755 的权限。

chmod -R 755 oldboy

2.1.1 测试命令

[[email protected] ~]# cd / && /bin/tar zcf /tmp/ser_`date %F_%H`.tar.gz  etc/services

2.1.4 写入定时任务

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

#backup /etc/services

00 */2 * * * /bin/sh /server/scripts/bak-ser.sh >/dev/null 2>&1

1.1.3 测试脚本

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

1.6.1 文件内容

[[email protected] ~]# cat passwd.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

1.5.3 awk方法

[[email protected] ~]# awk '!/^[ ]*$/' mun.txt

znix1

znix2

znix3

znix4

znix5

znix6

2.3.1 ping 域名

域名无法ping 通

[[email protected] ~]# ping centos.houzhaoshun.cn

ping: unknown host centos.houzhaoshun.cn

 

1.1.1 测试命令

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

编辑:计算机网络 本文来源:服务器数据备份消除方案,演练题肆

关键词: 亚洲城ca88