当前位置 : 主页 > 操作系统 > centos >

CentOS 备份实战

来源:互联网 收集:自由互联 发布时间:2022-08-10
备份实战 要求: 统一用户为:www,uid=666 gid=6661.web01和web02可以上传图片2.nfs用户数据每天凌晨1点做备份3.校验数据的完整性4.nfs用户数据实时同步到backup的/data/目录下,做nfs的备机 环境

备份实战

要求:

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

环境准备

主机名 WanIP LanIP 角色 部署服务 web01 10.0.0.7 172.16.1.7 nfs客户端 httpd、php、nfs-utils web02 10.0.0.8 172.16.1.8 nfs客户端 httpd、php、nfs-utils nfs 10.0.0.31 172.16.1.31 rsync客户端、nfs服务端 nfs-utils、rsync、inotify-tools、sersync backup 10.0.0.41 172.16.141 rsync客户端、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.conf User apache Group apache 改成 User www Group www [root@web02 ~]# vim /etc/httpd/conf/httpd.conf User apache Group apache 改成 User www Group www # 3.创建www用户和组 [root@web01 ~]# groupadd www -g 666 [root@web01 ~]# adduser www -u 666 -g 666 -s /sbin/nologin -M [root@web01 ~]# id www uid=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 www uid=666(www) gid=666(www) groups=666(www) # 4.部署代码 [root@web01 ~]# cd /var/www/html/ [root@web01 html]# rz [root@web01 html]# ls kaoshi_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 httpd Created 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 httpd Created 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.浏览器访问

image.png

服务端

# 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 www uid=666(www) gid=666(www) groups=666(www) # 3.配置 [root@backup ~]# vim /etc/rsyncd.conf uid = www gid = www port = 873 fake super = yes use chroot = no max connections = 200 timeout = 600 ignore errors read only = false list = false auth users = rsync_backup secrets file = /etc/rsync.passwd log 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 /backup drwxr-xr-x 2 www www 6 May 21 15:51 /backup # 6.创建服务端的密码文件 [root@backup /]# vim /etc/rsync.passwd 13579 # 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 rsyncd Created 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.pass 13579 # 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 www uid=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.31 Export 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 -1 172.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 -1 172.16.1.31:/data 18G 1.7G 16G 10% /var/www/html/user_data # 9.打开浏览器并上传文件

image.png

image.png

每日备份

# 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.pass sending incremental file list ./ 04_111.webp 04_333.webp sent 48,423 bytes received 65 bytes 32,325.33 bytes/sec total 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/bash bak_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.rc set from=540080971@qq.com set smtp=smtps://smtp.qq.com:465 set smtp-auth-user=540080971@qq.com set smtp-auth-password=邮箱授权码 set smtp-auth=login set ssl-verify=ignore set nss-config-dir=/etc/pki/nssdb/ # 6.编写服务端脚本 [root@backup ~]# vim check_md5.sh #!/bin/bash bak_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/null find $bak_dir -type f ! -mtime -180 | xargs rm -f # 7.编写定时任务 [root@nfs ~]# crontab -e 00 01 * * * /usr/bin/sh /root/backup.sh &>/dev/null root@backup ~]# crontab -e 00 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]# ls 04_111.webp 04_333.webp 1.txt 【转自:外国服务器 http://www.558idc.com/shsgf.html转载请说明出处】
上一篇:CentOS nginx实现七层负载
下一篇:没有了
网友评论