CentOS 备份实战

备份实战要求:

统一用户为:www,uid=666 gid=6661.web01和web02可以上传图片2.nfs用户数据每天凌晨1点做备份3.校验数据的完整性4.nfs用户数据实时同步到backup的/data/目录下,做nfs的备机

环境准备主机名WanIPLanIP角色部署服务

web0110.0.0.7172.16.1.7nfs客户端httpd、php、nfs-utilsweb0210.0.0.8172.16.1.8nfs客户端httpd、php、nfs-utilsnfs10.0.0.31172.16.1.31rsync客户端、nfs服务端nfs-utils、rsync、inotify-tools、sersyncbackup10.0.0.41172.16.141rsync客户端、nfs服务端(备机)nfs-utils、rsync

部署web网站# 1.安装httpd和php[root@web01 ~]# yum install -y httpd php[root@web02 ~]# yum install -y httpd php# 2.修改httpd的配置文件[root@web01 ~]# vim /etc/httpd/conf/httpd.confUser apacheGroup apache改成User wwwGroup www[root@web02 ~]# vim /etc/httpd/conf/httpd.confUser apacheGroup apache改成User wwwGroup www# 3.创建www用户和组[root@web01 ~]# groupadd www -g 666[root@web01 ~]# adduser www -u 666 -g 666 -s /sbin/nologin -M[root@web01 ~]# id wwwuid=666(www) gid=666(www) groups=666(www)[root@web02 ~]# groupadd www -g 666[root@web02 ~]# adduser www -u 666 -g 666 -s /sbin/nologin -M[root@web02 ~]# id wwwuid=666(www) gid=666(www) groups=666(www)# 4.部署代码[root@web01 ~]# cd /var/www/html/[root@web01 html]# rz[root@web01 html]# lskaoshi_modify.zip[root@web01 html]# unzip kaoshi_modify.zip Archive: kaoshi_modify.zip inflating: bg.jpg inflating: index.html extracting: info.php inflating: upload_file.php [root@web02 ~]# cd /var/www/html/[root@web02 html]# rz[root@web02 html]# unzip kaoshi_modify.zip Archive: kaoshi_modify.zip inflating: bg.jpg inflating: index.html extracting: info.php inflating: upload_file.php # 5.创建用户上传目录[root@web01 html]# mkdir /var/www/html/user_data[root@web02 html]# mkdir /var/www/html/user_data# 6.授权用户上传数据目录[root@web01 html]# chown www:www /var/www/html/user_data/[root@web01 html]# ll -d /var/www/html/user_data/drwxr-xr-x 2 www www 6 May 21 12:59 /var/www/html/user_data/[root@web02 html]# chown www:www /var/www/html/user_data/[root@web02 html]# ll -d /var/www/html/user_data/drwxr-xr-x 2 www www 6 May 21 12:59 /var/www/html/user_data/# 7.启动httpd服务[root@web01 html]# systemctl start httpd[root@web01 html]# systemctl enable httpdCreated symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.[root@web02 html]# systemctl start httpd[root@web02 html]# systemctl enable httpdCreated symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.# 8.检查进程和端口[root@web01 html]# ps -ef | grep httpd[root@web01 html]# netstat -lntup[root@web02 html]# ps -ef | grep http[root@web02 html]# netstat -lntup# 9.浏览器访问

服务端# 1.安装[root@backup ~]# yum install -y rsync# 2.创建用户[root@backup ~]# groupadd www -g 666[root@backup ~]# adduser www -u 666 -g 666 -s /sbin/nologin/ -M[root@backup ~]# id wwwuid=666(www) gid=666(www) groups=666(www)# 3.配置[root@backup ~]# vim /etc/rsyncd.confuid = wwwgid = wwwport = 873fake super = yesuse chroot = nomax connections = 200timeout = 600ignore errorsread only = falselist = falseauth users = rsync_backupsecrets file = /etc/rsync.passwdlog file = /var/log/rsyncd.log#####################################[nfs_backup]comment = welcome to oldboyedu nfs _backup!path = /backup[nfs_data]comment = welcome to oldboyedu nfs _data!path = /data# 4.创建目录root@backup ~]# mkdir /data /backup# 5.修改备份目录的属组和属主[root@backup /]# chown www:www /data/[root@backup /]# ll -d /data/drwxr-xr-x 2 www www 6 May 21 15:51 /data/[root@backup /]# chown www:www /backup/[root@backup /]# ll -d /backupdrwxr-xr-x 2 www www 6 May 21 15:51 /backup# 6.创建服务端的密码文件[root@backup /]# vim /etc/rsync.passwd13579# 7.修改密码文件的权限为 600[root@backup ~]# chmod 600 /etc/rsync.passwd [root@backup ~]# ll /etc/rsync.passwd -rw——- 1 root root 19 May 21 15:53 /etc/rsync.passwd# 8.开启服务[root@backup ~]# systemctl start rsyncd[root@backup ~]# systemctl enable rsyncdCreated symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.nfs共享存储部署# 1.安装[root@nfs ~]# yum install -y rsync# 2.客户端创建密码文件(客户端上的密码文件,只需要写密码,不需要写用户)[root@nfs ~]# vim /etc/rsync.pass13579# 3.客户端上的密码文件也必须是600权限[root@nfs ~]# chmod 600 /etc/rsync.pass [root@nfs ~]# ll /etc/rsync.pass -rw——- 1 root root 6 May 21 15:56 /etc/rsync.pass# 4.创建共享目录[root@nfs ~]# mkdir /data# 5.创建www用户和组[root@nfs ~]# groupadd www -g 666[root@nfs ~]# adduser www -u 666 -g 666 -s /sbin/nologin/ -M[root@nfs ~]# id wwwuid=666(www) gid=666(www) groups=666(www)# 6.授权共享目录[root@nfs ~]# chown www:www /data/[root@nfs ~]# ll -d /data/drwxr-xr-x 2 www www 6 May 21 16:01 /data/# 7.修改nfs配置文件[root@nfs ~]# vim /etc/exports/data 172.16.1.0/24(rw,sync,anonuid=666,anongid=666,all_squash)# 8.启动nfs[root@nfs ~]# systemctl start nfs# 8.查看挂载点并web01和web02客户端将网站目录挂载到nfs /data目录[root@web01 ~]# showmount -e 172.16.1.31Export list for 172.16.1.31:/data 172.16.1.0/24[root@web01 ~]# mount -t nfs 172.16.1.31:/data /var/www/html/user_data/[root@web01 ~]# df -h | tail -1172.16.1.31:/data 18G 1.7G 16G 10% /var/www/html/user_data[root@web02 ~]# mount -t nfs 172.16.1.31:/data /var/www/html/user_data/[root@web02 ~]# df -h | tail -1172.16.1.31:/data 18G 1.7G 16G 10% /var/www/html/user_data# 9.打开浏览器并上传文件

每日备份# 1.查看文件[root@web01 ~]# ls /var/www/html/user_data/04_111.webp 04_333.webp[root@web02 ~]# ls /var/www/html/user_data/04_111.webp 04_333.webp[root@nfs ~]# ls /data/04_111.webp 04_333.webp# 2.测试,将nfs客户端数据推送到backup服务端[root@nfs ~]# rsync -avz /data/ rsync_backup@172.16.1.41::nfs_backup –password-file=/etc/rsync.passsending incremental file list./04_111.webp04_333.webpsent 48,423 bytes received 65 bytes 32,325.33 bytes/sectotal size is 48,208 speedup is 0.99# 3.查看backup服务端是否有文件[root@backup ~]# ls /backup/04_111.webp 04_333.webp# 4.编写脚本[root@nfs ~]# vim /root/backup.sh#!/bin/bashbak_dir="/client_backup"data_dir="/data"host_name=`hostname`ip=`/usr/sbin/ifconfig eth1|awk ‘NR==2{print $2}’`date_time=`date +%F`export RSYNC_PASSWORD=123#创建客户端的备份目录mkdir -p $bak_dir# 进入备份目录,压缩备份文件cd $data_dir && \tar zcf $bak_dir/${host_name}_${ip}_${date_time}.tar.gz ./*#生成校验文件cd $bak_dir && \md5sum ${host_name}_${ip}_${date_time}.tar.gz > ${host_name}_${ip}_${date_time}.md5#推送数据到rsync服务端rsync -avz $bak_dir/ rsync_backup@172.16.1.41::nfs_backup#保留7天内的文件find $bak_dir -type f ! -mtime -7|xargs rm -f# 5.配置邮箱[root@backup ~]# yum install -y mailx[root@backup ~]# vim /etc/mail.rcset from=540080971@qq.comset smtp=smtps://smtp.qq.com:465set smtp-auth-user=540080971@qq.comset smtp-auth-password=邮箱授权码set smtp-auth=loginset ssl-verify=ignoreset nss-config-dir=/etc/pki/nssdb/# 6.编写服务端脚本[root@backup ~]# vim check_md5.sh#!/bin/bashbak_dir="/backup"host_name=`hostname`date_time=`date +%F`cd ${bak_dir} && \md5sum -c *${date_time}.md5|mail -s "${date_time}_数据备份校验" 540080971@qq.com>/dev/nullfind $bak_dir -type f ! -mtime -180 | xargs rm -f# 7.编写定时任务[root@nfs ~]# crontab -e00 01 * * * /usr/bin/sh /root/backup.sh &>/dev/nullroot@backup ~]# crontab -e00 01 * * * /usr/bin/sh check_md5.sh &>/dev/null实时同步sersync# 1.安装sersync的依赖[root@nfs ~]# yum install -y rsync inotify-tools# 2.下载sersync## 国外[root@nfs ~]# wget https://github.com/wsgzao/sersync/raw/master/sersync2.5.4_64bit_binary_stable_final.tar.gz## 国内[root@nfs ~]# wget http://test.driverzeng.com/other/sersync2.5.4_64bit_binary_stable_final.tar.gz# 3.创建安装目录[root@nfs ~]# mkdir /application# 4.解压sersync[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /application/# 5.改名[root@nfs ~]# mv /application/GNU-Linux-x86/ /application/sersync-2.5.4# 6.修改配置文件[root@nfs ~]# vim /application/sersync2.5.4/confxml.xml<!– inotify监控动作配置 全部改成true –><inotify><delete start="true"/><createFolder start="true"/><createFile start="true"/><closeWrite start="true"/><moveFrom start="true"/><moveTo start="true"/><attrib start="true"/><modify start="true"/></inotify><sersync><!– 监控目录,推送数据的目录 /data –><localpath watch="/data"><!– rsync服务端的IP地址:172.16.1.41 和 模块名:nfs_data –><remote ip="172.16.1.41" name="nfs_data"/><!–<remote ip="192.168.8.39" name="tongbu"/>–><!–<remote ip="192.168.8.40" name="tongbu"/>–></localpath><rsync><!– rsync命令执行时的选项 –><commonParams params="-az –delete"/><!– rsync命令认证,打开认证,rsync匿名用户,密码文件 –><auth start="true" users="rsync_backup" passwordfile="/etc/rsync.pass"/><userDefinedPort start="false" port="874"/><!– port=874 –><timeout start="false" time="100"/><!– timeout=100 –><ssh start="false"/># 7.启动sersync[root@nfs ~]# /application/sersync2.5.4/sersync2 -rdo /application/sersync2.5.4/confxml.xml# 8.查看是否实时同步成功[root@nfs ~]# cd /data/[root@nfs data]# touch 1.txt[root@backup ~]# cd /data/[root@backup data]# ls04_111.webp 04_333.webp 1.txt 海内存知已,天涯若比邻。

CentOS 备份实战

相关文章:

你感兴趣的文章:

标签云: