扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在公安等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站设计、外贸营销网站建设 网站设计制作按需求定制网站,公司网站建设,企业网站建设,高端网站设计,成都营销网站建设,成都外贸网站建设公司,公安网站建设费用合理。
前方Web Server的数据存放在NFS server,NFS Server定时监控数据,数据变动时自动同步至rsync服务器上,在rsync服务器上存放着 Web Server的数据文件、以及各服务器的配置文件。Web Server的数据均在NFS、rsync。
上机实战
某公司里有一台Web服务器,里面的数据很重要,如果硬盘坏了,数据会丢失,现在领导要求把数据备份,这样Web服务器数据丢失可以进行恢复。
需求:
每天晚上00点整在Web服务器A上打包备份系统配置文件、网站程序目录及访问日志并通过rsync命令推送到服务器B上备份保留(备份思路可以是现在本地按日志打包,然后再推到备份服务器B上)。
问题一、实现把Web服务器A数据备份到服务器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天,因为太多硬盘会满),备份服务器B上要保留6个月的数据副本。
6) 备份服务器B上要按照备份数据服务器的IP为目录保存,打包的文件按照时间名字保存。
实现:
1.B服务器配置rsync服务端
uid=rsync
gid=rsync
use chroot = no
max connections = 2000
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 192.168.24.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
#############################
[backup]
comment = backup server
path=/backup
创建rsync用户 傀儡账号没有家目录
useradd rsync –s /sbin/nologin –M
创建/backup目录
Mkdir /backup
创建rsync.password密码文件
Echo “rsync_backup:oldboy”>/etc/rsync.password
Chmod 600 /etc/rsync.password
Rsync –daemon开启测试能否正常工作
Rsync –daemon
加入开机自启动
echo “rsync --daemon”>>/etc/rc.local
检查能否传输
rsync -avz /tmp/backup/rsync_backup@192.168.24.32::backup
2.测试备份文件
a) 定时任务服务的配置文件(/var/spool/cron/root)
b) 开机自启动的配置文件(/etc/rc.local)
c) 日常脚本的目录(/server/scripts)
d) 防火墙iptables的配置文件(/etc/sysconfig/iptables)
e) 思考还有什么需要备份
7) Web服务器站点目录假定为(/var/html/www)
8) Web服务器A访问日志路径假定为(/app/logs)
把a-d打包,把7,8分别打包7,8有可能数据很大所以要单独打包
mkdir /backup/"`ifconfig ens192|awk -F '[ :]+' 'NR==2 {print $3}'`_$(date +%F)"
cp /etc/rc.local /backup/192.168.24.21_2019-11-14/rc.local_$(date +%F)
其他的文件以这种格式复制
%文件名_%日期
写成sh脚本:
[root@lnmp01 /]# vi backup.sh
IP=$(ifconfig ens192|awk -F '[ :]+' 'NR==2 {print $3}')
Path="/backup/$IP."
[ ! -d /backup/$IP ] && mkdir /backup/$IP -p
#!/bin/sh
tar zcf $Path/www_$(date +%F).tar.gz /var/html/www/
tar zcf $Path/conf_$(date +%F).tar.gz /var/spool/cron/root /etc/rc.local /etc/sysconfig/iptables /server/scrips
tar zcf $Path/log_$(date +%F).tar.gz /app/logs/
#backup to server
rsync -avz /backup rsync_backup@192.168.24.32::backup --password-file=/etc/rsync.password
#del
find /backup -type f -name "*.tar.gz" -mtime +7|xargs rm -f
制定定时任务:
[root@lnmp01 backup]# crontab -l
#####
00 00 * * * /bin/sh /server/scrips/backup.sh &> /dev/null
在服务端制定保留6个月的数据的定时任务
[root@localhost ~]# vi /server/scrips/backupdel.sh
/bin/find /backup -type f -name "*.tar.gz" -mtime +180|xargs rm –f
[root@localhost ~]# crontab -e
no crontab for root - using an empty one
#####
00 00 * * * /bin/sh /server/scrips/backupdel.sh
通过添加md5校验值确定文件完整性
[root@lnmp01 backup]# find /backup/ -type f -name "*$(date +%F).tar.gz"|xargs md5sum > /backup/flag_$(date +%F)
使用-c参数测试文件是否完整
[root@lnmp01 backup]# md5sum -c flag_2019-11-19
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流