老男孩教育32期-08-09次上机测试题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老男孩教育32期-08-09次上机测试题相关的知识,希望对你有一定的参考价值。


第1章 50台集群服务器全网备份解决方案

1.1基本备份要求

已知3台服务器主机名分别为A(web01)B(backup) C(nfs01)

   要求:每天晚上00 点整在Web服务器A上打包备份系统配置文件、网站程序目录及访

问日志并通过rsync命令推送备份服务器B上备份保留(备份思路可以是先在本地按日期

打包,然后再推到备份服务器B上)。

具体要求如下:

1)Web服务器A和备份服务器 B的备份目录必须都为/backup

2)要备份的系统配置文件包括但不限于:

  a.定时任务服务的配置文件(/var/spool/cron/root).

  b.开机自启动的配置文件(/etc/rc.local)

  c.日常脚本的目录  (/server/scripts)

  d.防火墙iptables的配置文件(/etc/sysconfig/iptables)

  e.自己思考下还有什么需要备份呢?

3)Web 服务器站点目录假定为(/var/html/www)

4)Web服务器A访问日志路径假定为(/app/logs

5)Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)

6)备份服务器B ,保留每周一的所有数据副本,其它要保留 6个月的数据副本。

7)备份服务器B上要按照备份数据服务器的IP为目录保存备份,备份的文件按照时间名字保存

===========================================================================================1.1.1准备环境:

1.1.1.1 #服务端环境: 

rpm -qa rsync

yum install rsync -y

useradd -s /sbin/nologin -M rsync

id rsync

vim /etc/rsyncd.conf

echo "rsync_backup:oldboy">/etc/rsync.password

chmod 600 /etc/rsync.password

mkdir /backup -p

chown -R rsync.rsync /backup

rsync --daemon

ps -ef|grep rsync|grep -v grep 

1.1.1.2 #客户端环境:

echo "oldboy" >/etc/rsync.password

chmod 600 /etc/rsync.password

mkdir /backup -p

==================================客户端推送脚本===========================================

#!/bin/sh

 

ip=$(ifconfig eth0|awk -F "[: ]+"‘NR==2{print $4}‘)

path="/backup"

[ ! -d ${path}/$ip ] && mkdir -p${path}/$ip &> /dev/null

DATE=`date +%u -d "-1day"`

 

if [ $DATE -eq 1 ];then

  DATE=${DATE}_MON

fi

 

#tar

cd / && \

tar zcf /$path/$ip/conf_${DATE}.tar.gzvar/spool/cron/root etc/rc.local server/scripts etc/sysconfig/iptables&&\

tar zcf /$path/$ip/www_${DATE}.tar.gzvar/html/www && \

tar zcf /$path/$ip/logs_${DATE}.tar.gzapp/logs && \

 

#md5sum

find $path -type f -name"*.tar.gz"|xargs md5sum >/$path/$ip/bak_${DATE}.flag

 

#rsync

rsync -az /$path/[email protected]::backup --password-file=/etc/rsync.password

 

#delete

find $path/$ip -type f -mtime +7|xargs rm-f

 

=====================================服务端脚本============================================

#!/bin/sh

 

ip=$(ifconfig eth1|awk -F "[: ]+"‘NR==2{print $4}‘)

path="/backup"

[ ! -d ${path}/$ip ] && mkdir -p${path}/$ip &> /dev/null

DATE=`date +%u -d "-1day"`

 

if [ $DATE -eq 1 ];then

  DATE=${DATE}_MON

fi

 

find /backup/ -type f -name"bak_*.flag"|xargs md5sum -c >/$path/$ip/mail.${DATE}.log

mail -s "backup web_${DATE}-lm"[email protected] <$path/$ip/mail.${DATE}.log

find $path -type f ! -name"*MON*" -mtime +180|xargs rm -f

 

第2章 网站集群后端NFS共享存储搭建及优化解决方案

1、配置 NFS 服务:

要求:

1)在NFS服务端C(nfs01)上共享/data/w_shared/data/r_shared两个文件目录,允许从NFS客户端A(web01)B(backup)上分别挂载共享目录后可实现从A(web01)B(backup)上只读/data/r_shared,可写/data/w_shared

2NFS客户端A(web01)上的挂载点为/data/b_w(写),/data/b_r(读),NFS客户端B(backup)上的挂载点为/data/w_你的名字英文(写)  ,/data/r_你名字英文(读)

3)从NFS客户端B(backup)上的NFS可写挂载点目录创建任意文件,从NFS客户端A(web01)上可以删除这个创建的文件,反之也可以。

4)问答题:如何优化NFS 服务

  • 硬件:sas/ssd磁盘,买多块,硬件raid,指定raid5raid10.网卡吞吐量要大,至少千兆(多块bond

  • NFS服务器端配置:/data 10.0.0.0/24(rw,sync,all_squash,anonuid=65534,anongid=65534)

  • NFS客户端挂载优化配置命令:

mount -t nfs -o nosuid,noexec,nodev,noatime,nodiratime,rsize=131072,wsize=13107210.0.0.31:/data/ /mnt   ←兼顾安全性能

  • NFS 服务的所有服务器内核进行优化时,执行如下命令:

cat >>/etc/sysctl.conf<<EOF

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 16777216

net.core.wmem_max = 16777216

EOF

sysctl -p

  • 如果卸载的时候提示“umount: /mnt: device is busy”,需要退出挂载目录再进行卸载,如果是NFS Server宕机了,则需要强制卸载,可执行umount -lf /mnt

  • 大型网站NFS网站文件系统的替代软件为分布式文件系统Moosefs(nfs)GlusterFS(大文件)、FastNFS

NFS系统应用的优缺点说



====================================服务端环境=============================================

yum install nfs-utils rpcbind -y

 

mkdir /data/w_shared -p

mkdir /data/r_shared -p

 

chown -R nfsnobody.nfsnobody /data/ 

 

/etc/init.d/rpcbind start

/etc/init.d/nfs start

 

vim /etc/exports

/data/r_shared 172.16.1.0/24(ro,sync,all_squash)

/data/w_shared172.16.1.0/24(rw,sync,all_squash) 

 

====================================客户端挂载=============================================

[backup]

mount -t nfs 172.16.1.31:/data/r_shared/data/r_luoming/

mount -t nfs 172.16.1.31:/data/w_shared/data/w_luoming/

[web01]

mount -t nfs 172.16.1.31:/data/r_shared/data/b_r

mount -t nfs 172.16.1.31:/data/w_shared/data/b_w 

 

操作示例:

[[email protected] b_w]# pwd

/data/b_w

[[email protected] b_w]# touch oldboy{1..5}.txt

[[email protected] b_w]# ls

oldboy1.txt oldboy2.txt  oldboy3.txt  oldboy4.txt oldboy5.txt

[[email protected] w_shared]# pwd

/data/w_shared

[[email protected] w_shared]# ls

oldboy1.txt oldboy2.txt  oldboy3.txt  oldboy4.txt oldboy5.txt

[[email protected] w_luoming]# pwd

/data/w_luoming

[[email protected] w_luoming]# ls

oldboy1.txt oldboy2.txt  oldboy3.txt  oldboy4.txt oldboy5.txt

[[email protected] b_r]# touch 123.txt

touch: cannot touch `123.txt‘: Read-onlyfile system  ---只读

第3章 解决网站集群后端NFS共享存储单点实现实时数据同步

1、实时数据同步要求:

当用户通过 web 服务器将数据写入到 NFS 服务器C(nfs01)时,同时复制到备份服务器B(backup)

nfs服务端配置文件:

[[email protected] data]# cat /etc/exports

#share /data by lm at 20161228

/data 172.16.1.0/24(rw,sync,all_squash)

共享目录:

[[email protected] data]# ll -d /data/

drwxr-xr-x 4 nfsnobody nfsnobody 266240 Jan  7 20:52 /data/

nfs服务端脚本:

vim /server/scripts/inotify.sh

#!/bin/sh

 

Path=/data

Ip=172.16.1.41

/usr/bin/inotifywait -mrq --format ‘%w%f‘ -ecreate,delete,close_write /data/ |while read line

do

  if [ -f$line ];then

     rsync-az $line --delete [email protected]$Ip::nfsbackup--password-file=/etc/rsync.password

  else

     cd $Path&& \

     rsync-az /data/ --delete [email protected]$Ip::nfsbackup--password-file=/etc/rsync.password

  fi

 

done

web客户端挂载:

[[email protected] mnt]# df -h

Filesystem        Size  Used Avail Use% Mounted on

/dev/sda3         6.9G  1.5G  5.1G  23%/

tmpfs             491M     0  491M  0% /dev/shm

/dev/sda1         190M   33M  147M 19% /boot

172.16.1.31:/data 6.9G  1.6G  4.9G 25% /mnt

创建文件:

[[email protected] mnt]# touch lidao.txt

nfs服务端查看:

[[email protected] data]# ll lidao.txt

-rw-r--r-- 1 nfsnobody nfsnobody 0 Jan  7 20:58 lidao.txt

查看backup备份服务器:

[[email protected] nfsbackup]# ll lidao.txt

-rw-r--r-- 1 rsync rsync 0 Jan  7 20:58 lidao.txt


以上是关于老男孩教育32期-08-09次上机测试题的主要内容,如果未能解决你的问题,请参考以下文章

老男孩教育运维班100台规模集群阶段性综合上机实战考试

老男孩教育46期-赵福星

老男孩教育-Linux46期脱产班学生-决心书

求老男孩教育-Python自动化开发-12期-VIP视频的解压密码。

老男孩教育运维班2016春节期末大型集群架构搭建说明

老男孩教育入学前测试题