环境
部署rsync
## 服务端
# 1.安装rsync
[root@backup ~]# yum install -y rsync
# 2.修改rsync配置文件
[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 = nfs_backup
path = /backup
[nfs_data]
comment = nfs_data
path = /data
# 3.创建统一用户
[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -u 666 -g 666 -M -s /sbin/nologin
# 4.创建匿名用户密码文件
[root@backup ~]# echo 'rsync_backup:123' >/etc/rsync.passwd
# 5.给目录授权(600)
[root@backup ~]# chmod 600 /etc/rsync.passwd
#6.创建模块目录
[root@backup ~]# mkdir /data
[root@backup ~]# mkdir /backup
# 7.给模块目录授权(属主:属组)
[root@backup ~]# chown www:www /data/
[root@backup ~]# chown www:www /backup/
# 8.启动服务
[root@backup ~]# systemctl start rsyncd
# 9.加入开机自启
[root@backup ~]# systemctl enable rsyncd
# 10.检查端口和进程
[root@backup ~]# ps -ef|grep [r]sync
root 8583 1 0 09:14 ? 00:00:00 /usr/bin/rsync --daem
[root@backup ~]# netstat -lntup|grep 873
## 客户端
# 1.安装rsync、inotify、
[root@nfs ~]# yum install -y rsync inotify-tools
# 2.下载sersync
[root@nfs ~]# wget
http://test.driverzeng.com/other/sersync2.5.4_64bit_binary_stable_fin
al.tar.gz
# 3.创建目录
[root@nfs ~]# mkdir /appsersync
# 4.解压
[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C
/appsersync/
# 5.修改(解压后的名字)GNU-Linux-x86为sersync-2.5.4(方便好记)
[root@nfs appsersync]# mv /appsersync/GNU-Linux-x86/
/appsersync/sersync-2.5.4
# 6.修改sersync配置文件
<inotify>
# inotify监控动作配置 全部改成true
<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.password"/>
<userDefinedPort start="false" port="874"/><!-- port=874
-->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
# 7.创建密码文件
[root@nfs ~]# echo '123' >/etc/rsync.password
# 8.授权密码文件(600)
[root@nfs ~]# chmod 600 /etc/rsync.password
# 9.创建目录/data
[root@nfs sersync-2.5.4]# mkdir /data
# 10.启动sersync
[root@nfs ~]# /appsersync/sersync-2.5.4/sersync2 -rdo
/appsersync/sersync-2.5.4/confxml.xml
# 11.停止方式
## 停止
[root@nfs ~]# pidof sersync2|xargs kill -3
## 重新加载
[root@nfs ~]# pidof sersync2|xargs kill -1
# 12.编写systemd管理脚本
[root@nfs ~]# vim /usr/lib/systemd/system/sersyncd.service
[Unit]
Description=Client for rsync
After=network.target
[Service]
Type=forking
ExecStart=/application/sersync-2.5.4/sersync2 -rdo
/application/sersync-2.5.4/confxml.xml
ExecReload=pidof sersync2|xargs kill -1
ExecStop=pidof sersync2|xargs kill -3
[Install]
WantedBy=multi-user.target
# 13.启动sersync并加入开机自启
[root@nfs ~]# systemctl start sersyncd
[root@nfs ~]# systemctl enable sersyncd
部署NFS
## 服务端
# 1.安装NFS
[root@backup ~]# yum install -y nfs-utils
[root@nfs ~]# yum install -y nfs-utils
# 2.修改nfs配置文件
[root@nfs ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
[root@backup ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
# 3.创建统一用户 (重复步揍,可以不用做)
[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -u 666 -g 666 -M -s /sbin/nologin
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -M -s /sbin/nologin
# 4.授权/data目录 (重复步揍,可以不用做)
[root@backup ~]# chown www:www /data/
[root@nfs ~]# chown www:www /data/
# 5.启动NFS服务
[root@nfs ~]# systemctl start nfs
root@backup ~]# systemctl start nfs
# 6.加入开机自启
[root@nfs ~]# systemctl enable nfs
[root@backup ~]# systemctl enable nfs
# 7.检查配置文件是否生效
[root@backup ~]# cat /var/lib/nfs/etab
[root@nfs ~]# cat /var/lib/nfs/etab
# 8.检查进程
[root@nfs ~]# ps -ef|grep [n]fs
[root@backup ~]# ps -ef|grep [n]fs
## 客户端
# 1.安装NFS
[root@web01 ~]# yum install -y nfs-utils
[root@web02 ~]# yum install -y nfs-utils
# 2.查看挂载点
[root@web01 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
[root@web01 ~]# showmount -e 172.16.1.41
Export list for 172.16.1.41:
/data 172.16.1.0/24
[root@web02 ~]# showmount -e 172.16.1.31
xport list for 172.16.1.31:
/data 172.16.1.0/24
[root@web02 ~]# showmount -e 172.16.1.41
Export list for 172.16.1.41:
/data 172.16.1.0/24
# 3.测试挂载
root@web01 ~]# mount -t nfs 172.16.1.31:/data /opt/
[root@web01 ~]# mount -t nfs 172.16.1.41:/data /opt/
[root@web02 ~]# mount -t nfs 172.16.1.31:/data /opt/
[root@web02 ~]# mount -t nfs 172.16.1.41:/data /opt/
# 4.检查挂载
[root@web02 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
172.16.1.31:/data 19G 1.4G 18G 8% /opt
172.16.1.41:/data 19G 1.4G 18G 8% /opt
[root@web01 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
172.16.1.31:/data 19G 1.4G 18G 8% /opt
172.16.1.41:/data 19G 1.4G 18G 8% /opt
# 5.测试
[root@web01 ~]# touch /opt/1.txt
[root@web02 ~]# ll /opt/
-rw-r--r-- 1 666 666 0 May 22 10:17 1.txt
[root@backup ~]# ll /data/
-rw-r--r-- 1 www www 0 May 22 10:17 1.txt
部署Web网站
# 1.安装httpd、php
[root@web02 ~]# yum install -y httpd php
[root@web01 ~]# yum install -y httpd php
# 2.修改配置文件
[root@web01 ~]# vim /etc/httpd/conf/httpd.conf
66 User www
67 Group www
[root@web02 ~]# vim /etc/httpd/conf/httpd.conf
66 User www
67 Group www
# 3.创建统一用户
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666 -M -s /sbin/nologin
[root@web02 ~]# groupadd www -g 666
[root@web02 ~]# useradd www -u 666 -g 666 -M -s /sbin/nologin
# 4.部署代码
[root@web01 html]# pwd
/var/www/html
[root@web01 html]# ll
-rw-r--r-- 1 root root 27020 May 18 11:56 zuoye_modify(httpd).zip
[root@web02 html]# pwd
/var/www/html
[root@web02 html]# ll
-rw-r--r-- 1 root root 27020 May 18 11:56 zuoye_modify(httpd).zip
# 5.解压代码
[root@web01 html]# unzip zuoye_modify(httpd\).zip
[root@web02 html]# unzip zuoye_modify(httpd\).zip
# 6.创建用户上传目录
[root@web02 html]# mkdir user_data
[root@web01 html]# mkdir user_data
# 7.授权用户上传目录(属主:属组)
[root@web01 ~]# chown www:www /var/www/html/user_data/
[root@web02 ~]# chown www:www /var/www/html/user_data/
# 8.启动服务
[root@web01 ~]# systemctl start httpd
[root@web02 ~]# systemctl start httpd
# 9.加入开机自启
[root@web01 ~]# systemctl enable httpd
[root@web02 ~]# systemctl enable httpd
# 10.检查端口和进程
[root@web01 ~]# netstat -lntup|grep httpd
[root@web01 ~]# ps -ef|grep [h]ttpd
[root@web02 ~]# netstat -lntup|grep httpd
[root@web02 ~]# ps -ef|grep [h]ttpd
# 11.打开网站
http://10.0.0.7/
http://10.0.0.8/
# 12.挂载用户上传目录
[root@web01 html]# mount -t nfs 172.16.1.31:/data
/var/www/html/user_data/
[root@web02 html]# mount -t nfs 172.16.1.31:/data
/var/www/html/user_data/
# 13.检查挂载
[root@web01 html]# df -h
Filesystem Size Used Avail Use% Mounted on
172.16.1.31:/data 19G 1.4G 18G 8% /var/www/html/user_data
[root@web01 html]# df -h
Filesystem Size Used Avail Use% Mounted on
172.16.1.31:/data 19G 1.4G 18G 8% /var/www/html/user_data
# 12.测试上传图片
[root@web01 html]# ll user_data/
-rw-r--r-- 1 www www 60109 May 22 10:44 33_123.jpg.png
[root@web02 html]# ll user_data/
-rw-r--r-- 1 www www 60109 May 22 10:44 33_123.jpg.png
[root@nfs ~]# ll /data/
-rw-r--r-- 1 www www 60109 May 22 10:44 33_123.jpg.png
每日备份
# 1.nfs备份脚本
[root@nfs ~]# vim nfs_backup.sh
#/!bin/bash
data_dir="/data/"
bak_dir="/client_back/"
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 -avz \
${bak_dir}/ rsync_backup@172.16.1.41::nfs_backup
find ${bak_dir}/ -type f ! -mtime -7|xargs rm -f
## 配置backup服务端发邮件
# 1.安装mailx
[root@backup ~]# yum install -y mailx
# 2.配置mail邮箱
set from=邮箱号
set smtp=smtps://smtp.qq.com:465
set smtp-auth-user=邮箱号
set smtp-auth-password=邮箱授权码
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
# 3.编写发邮件脚本
[root@backup ~]# vim mail_backup.sh
bak_dir="/backup"
host_name=`hostname`
ip=`/usr/sbin/ifconfig eth1|awk 'NR==2{print $2}'`
date_time=`date +%F`
export RSYNC_PASSWORD=123
cd ${bak_dir} && \
md5sum -c *${date_time}.md5|mail -s "${date_time}_数据备份结果" \
970839586@qq.com >/dev/null
find /backup/ -type f ! -mtime -180|xargs rm -f
编写定时任务
## nfs定时备份
[root@nfs ~]# crontab -e
# Usage:nfs_backup By:jin Date:2022/05/22
10 01 * * * /usr/bin/sh nfs_backup.sh >/dev/null
## backup定时发送邮件
[root@backup ~]# crontab -e
# Usage:mail_data_backup By:jin Date:2022/05/22
00 01 * * * /usr/bin/sh mail_backup.sh &>/dev/null