一、需求描述
已知3台服务器主机名分别为:web01,backup,nfs01,主机信息如下表:
操作系统 |
服务器角色 |
IP地址 |
备注 |
CentOS release 6.10 (Final) |
NFS客户端(nfs-server) |
内网172.16.1.31/24 外网10.0.0.31/24 |
|
CentOS release 6.10 (Final) |
NFS服务端(backup) |
内网172.16.1.41/24 外网10.0.0.41/24 |
|
CentOS release 6.10 (Final) |
NFS客户端(web01) |
内网172.16.1.8/24 外网10.0.0.8/24 |
|
每天晚上00点整在Web服务器 上打包备份,网站程序目录及访问日志通过rsync命令推送备份服务器backup上备份保留。(备份思路可以是先在本地按日期打包,然后再利用rsync推到备份服务器上)
具体要求如下:
1)web服务器和备份服务器的备份目录都必须为/backup
2)要备份的系统配置文件包括但不限:
a.定时任务服务的配置文件(/var/spool/cron/root)
b.开机自启动的配置文件(/etc/rc.local)
c.日常脚本的目录(/server/scripts)
d.防火墙iptables的配置文件(/etc/sysconfig/iptables)
3)web服务器站点目录为(/application/nginx/html/blog)
4)Web服务器A访问日志的路径为(/application/nginx/logs)
5)Web服务器保留打包后的7天的备份数据即可(本地留存不能多于7天,因为太多硬盘会满)
6)备份服务器上,保留最近7天的备份数据,同时保留6个月内每周一的所有数据。
7)备份服务器上要安装备份数据服务器的内网IP为目录保存备份,备份的文件安装时间名字保存。
8)需要确保备份的数据尽量完整争取,在备份服务器上对备份的数据进行检查,把备份的成功及失败结果信息发给系统管理员的邮箱中。
二、实现过程
实施前先完成rsync --deamon相关配置参考,rsync+sersync实现数据文件实时同步
完成用系统默认mail服务实现邮件发送相关配置
1、服务端测试(集群中的备份服务器)
[root@backup 10.0.0.8]# ps -ef |grep rsync
root 1351 1 0 Sep01 ? 00:00:00 rsync --daemon
[root@backup 10.0.0.8]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1351/rsync
tcp 0 0 :::873 :::* LISTEN 1351/rsync
[root@backup 10.0.0.8]# telnet localhost 873
Trying ::1...
Connected to localhost.
Escape character is ‘^]‘.
@RSYNCD: 30.0
2、客户端测试服务(指集群中有备份需求的服务器)
[root@nfs01 backup]# telnet 172.16.1.41 873
Trying 172.16.1.41...
Connected to 172.16.1.41.
Escape character is ‘^]‘.
@RSYNCD: 30.0
[root@web01 backup]# vim /server/scripts/backup.sh
IP=$(ifconfig|awk -F"[ :]+" ‘NR==2{print $4}‘)
Path=/backup
if [ $(date +%w) -eq 6 ]
then
Time="week_$(date +%F_%w)"
else
Time="$(date +%F)"
fi
LANG=en
mkdir -p $Path/$IP/$Time/
cd / &&\
/bin/tar zcfh $Path/$IP/$Time/conf_back_$Time.tar.gz var/spool/cron/root etc/rc.local etc/sysconfig/iptables &&\
/bin/tar zcfh $Path/$IP/$Time/script_back_$Time.tar.gz server/scripts &&\
md5sum /backup/$IP/$Time/*.tar.gz>$Path/$IP/$Time/flag_$Time.log
rsync -avz $Path/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password --bwlimit=10
find /backup -type f -mtime +7|xargs rm -f
[root@web01 backup]# crontab -l
00 00 * * * /bin/sh /server/scripts/backup.sh >/dev/null 2>&1 完成客户端的定时任务推送工作
3、服务端配置
[root@backup 10.0.0.8]# cat /server/scripts/check_and_del.sh
#check mdk5 flag and del +180day !name=*week_*_6* for moudle [backuup]
#!/usr/bin/sh
Path=/backup
IP=$(ifconfig|awk -F"[ :]+" ‘NR==2{print $4}‘)
if [ $(date +%w) -eq 6 ]
then
Time="week_$(date +%F_%w)"
else
Time="$(date +%F)"
fi
LANG=en
find $Path -type f -name "flag_${Time}.log"|xargs md5sum -c>>$Path/result_${Time}.report
mail -s ${Time}‘backup check report‘ yinxian*****@126.com<$Path/result_${Time}.report
find $Path -type f ! -name ‘*week_*_6.tar.gz‘ -mtime +180|xargs rm -f
[root@backup scripts]# crontab -l
* * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
* * * * * /bin/bash /server/scripts/check_and_del.sh >/dev/null 2>&1
发现的问题,时间同步会使rsync数据同步卡住
脚本排错可以在脚本加v,参数
查询服务器各项性能,CPU利用率,内存使用率
[root@backup backup]# tcpdump host 10.0.0.8
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:47:33.938222 IP 10.0.0.1.64619 > 10.0.0.8.ssh: Flags [P.], seq 292073317:292073369, ack 3766568025, win 258, options [nop,nop,TS val 19117577 ecr 91556660], length 52
原文:https://www.cnblogs.com/justlikeit/p/10751913.html