当筵意气临九霄,星离雨散不终朝。这篇文章主要讲述CentOS 备份实战相关的知识,希望能为你提供帮助。
备份实战
要求:
统一用户为:www,uid=666 gid=666
1.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 |
# 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.浏览器访问
文章图片
服务端
# 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:/data18G1.7G16G10% /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:/data18G1.7G16G10% /var/www/html/user_data# 9.打开浏览器并上传文件
【CentOS 备份实战】
文章图片
文章图片
每日备份
# 1.查看文件
[root@web01 ~]# ls /var/www/html/user_data/
04_111.webp04_333.webp
[root@web02 ~]# ls /var/www/html/user_data/
04_111.webp04_333.webp
[root@nfs ~]# ls /data/
04_111.webp04_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.webpsent 48,423 bytesreceived 65 bytes32,325.33 bytes/sec
total size is 48,208speedup is 0.99# 3.查看backup服务端是否有文件
[root@backup ~]# ls /backup/
04_111.webp04_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==2print $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.webp04_333.webp1.txt
推荐阅读
- linux-ext4格式文件误删除恢复
- 信而泰一体化智能测试,助力客户降本增效
- [ 链表OJ题 --C语言实现 ] 反转链表
- “军备竞赛”时期的对比学习
- 40篇学完C语言——(第七篇)地址算术运算
- 就全懂了
- 学妹一反常态主动联系我,我要不要答应帮她()
- Cisco WLAN和WLC
- SC实现隐藏Windows服务维持权限