day13.4
day13.4
web集群数据拆分及共享存储、实时同步
环境准备
主机名 | wanip | lanip | 角色 | 安装应用 |
---|---|---|---|---|
web01 | 10.0.0.7 | 172.16.1.7 | web网站,共享存储客户端 | nginx、PHP、nfs |
web02 | 10.0.0.8 | 172.16.1.8 | web网站,共享存储客户端 | nginx、PHP、nfs |
db01 | 10.0.0.51 | 172.16.1.51 | 数据库 | MySQL(mariadb) |
backup | 10.0.0.41 | 172.16.1.41 | 实时同步 | sersync |
nfs | 10.0.0.31 | 172.16.1.31 | 共享存储服务端 | nfs sersync |
lnmp环境搭建
# 1.关闭防火墙
[root@web01 ~]# systemctl stop firewalld
[root@web01 ~]# systemctl disable firewalld
# 2.关闭selinux
[root@web01 ~]# setenforce 0
# 3.添加yum源
1.nginx源
[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
2.PHP源
[root@web01 ~]# vim /etc/yum.repos.d/php.repo
[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0
# 4.安装PHP
[root@web01 ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
# 5.安装nginx
[root@web01 ~]# yum install -y nginx
# 6.创建www用户
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
[root@web01 ~]# id www
uid=666(www) gid=666(www) groups=666(www)
# 7.统一用户
1.修改nginx配置文件
[root@web01 ~]# vim /etc/nginx/nginx.conf
user www;
2.修改PHP用户
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
user = www
group = www
## 启动php服务时,创建php.sock安全套接字文件,该文件的属主和属组
listen = /opt/php.sock
listen.owner = www
listen.group = www
### 完整php配置文件
[www]
user = www
group = www
;listen = 0.0.0.0:9000
listen = /opt/php.sock
listen.owner = www
listen.group = www
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
# 8.配置nginx连接PHP文件
[root@web02 ~]# vim /etc/nginx/conf.d/blog.wc.com.conf
server{
listen 80;
server_name blog.wc.com;
root /wc;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/opt/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 检查语法
[root@web01 ~]# nginx -t
# 9.启动nginx和PHP并加入开机自启
[root@web01 ~]# systemctl start nginx php-fpm
[root@web01 ~]# systemctl enable nginx php-fpm
# 10.测试nginx连接PHP
# 编写PHP.info文件
1.创建站点目录
[root@web01 ~]# mkdir /wc
2.编写info.php
[root@web01 ~]# cd /wc/
[root@web01 wc]# vim info.php
<?php
phpinfo();
?>
# 11.windows上域名解析
10.0.0.7 blog.wc.com
部署MySQL
# 1.安装MySQL
[root@db01 ~]# yum install -y mariadb-server
# 2.启动MySQL并加入开机自启
[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb
# 3.给 MySQL root用户设置密码
[root@db01 ~]# mysqladmin -uroot -p password '123'
# 4.连接数据库
[root@db01 ~]# mysql -uroot -p123
# 5.创建数据库
MariaDB [(none)]> create database wp;
# 6.创建用户
MariaDB [(none)]> grant all on *.* to wp_user@'localhost' identified by '111';
# 7.查看数据库是否创建成功
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wp |
+--------------------+
# 8.查看用户是否创建成功
MariaDB [(none)]> select user,host from mysql.user;
+---------+-----------+
| user | host |
+---------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| | db01 |
| root | db01 |
| | localhost |
| root | localhost |
| wp_user | localhost |
+---------+-----------+
# MySQL相关库和用户
WordPress库:wp
WordPress用户:wp_user
WordPress用户密码:111
WordPress用户ip:losthost
# 9.测试PHP是否可以跟MySQL建立连接
[root@web01 wc]# vim pm.php
<?php
$servername = "10.0.0.51";
$username = "wp_user";
$password = "111";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "小哥哥,php可以连接MySQL...";
?>
部署 WeCenter代码
# 1.解压
[root@web01 WeCenter_3-2-1]# unzip WeCenter_3-2-1.zip
# 2.修改nginx配置文件
[root@web01 WeCenter_3-2-1]# vim /etc/nginx/conf.d/blog.wc.com.conf
server{
listen 80;
server_name blog.wc.com;
root /wc/WeCenter_3-2-1;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/opt/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 3.重新加载nginx
[root@web01 WeCenter_3-2-1]# systemctl reload nginx
# 4.授权站点目录
[root@web01 WeCenter_3-2-1]# chown -R www.www /wc/
# 5.将代码scp到web02上
[root@web01 ~]# scp -r /wc/WeCenter_3-2-1 172.16.1.8:/wc/
# 6.授权用户
[root@web02 ~]# chown -R www.www /wc/
# 7.尝试10.0.0.8登录网址,在域名解析上注释web01
nfs共享存储
# 图片没有共享
# [root@web01 ~]# ll /wc/WeCenter_3-2-1/uploads/article/20220609/
total 112
-rw-r--r-- 1 www www 113402 Jun 9 17:51 67f059447536e24b169f6d8d8911dcd1.jpg
# [root@web02 ~]# ll /wc/WeCenter_3-2-1/uploads/
total 0
nfs服务端
# 1.安装nfs
[root@nfs ~]# yum install -y nfs-utils
# 2.修改nfs配置文件
[root@nfs ~]# vim /etc/exports
# 共享目录 允许访问NFS服务端的网段 (可读可写,同步,任何用户都映射成nfs的匿名用户)
/data 172.16.1.0/24(rw,sync,anonuid=666,anongid=666,all_squash)
# 3.创建www用户和组
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
# 4..启动服务并加入开机自启
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl enable nfs
# 5.检查nfs配置文件是否生效
[root@nfs ~]# cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
nfs客户端
# 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@web02 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
# 3.拷贝已有数据到共享目录
[root@web01 ~]# scp -r /wc/WeCenter_3-2-1/uploads/ 172.16.1.31:/data
[root@web02 ~]# scp -r /wc/WeCenter_3-2-1:/data
# 4.给nfs的/data目录授权
[root@nfs ~]# chown -R www.www /data
# 5.挂载
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /wc/WeCenter_3-2-1/uploads/
[root@web02 ~]# mount -t nfs 172.16.1.31:/data /wc/WeCenter_3-2-1/uploads/
# 6.查看web01和web02、nfs
[root@web01 ~]# ll /wc/WeCenter_3-2-1/uploads/article/20220609/
total 352
-rw-r--r-- 1 www www 7332 Jun 9 18:16 170x110_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:15 8d29c7b23b877a5adb7ca01dadd1ceea.jpg
-rw-r--r-- 1 www www 4289 Jun 9 18:16 90x90_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:16 a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:09 eedd7cb07e5f407004b4f82cdb2677ac.jpg
[root@web02 ~]# ll /wc/WeCenter_3-2-1/uploads/article/20220609/
total 352
-rw-r--r-- 1 www www 7332 Jun 9 18:16 170x110_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:15 8d29c7b23b877a5adb7ca01dadd1ceea.jpg
-rw-r--r-- 1 www www 4289 Jun 9 18:16 90x90_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:16 a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:09 eedd7cb07e5f407004b4f82cdb2677ac.jpg
[root@nfs data]# ll article/20220609/
total 352
-rw-r--r-- 1 www www 7332 Jun 9 18:16 170x110_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:15 8d29c7b23b877a5adb7ca01dadd1ceea.jpg
-rw-r--r-- 1 www www 4289 Jun 9 18:16 90x90_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:16 a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:09 eedd7cb07e5f407004b4f82cdb2677ac.jpg
部署sersync
# 1.安装sersync的依赖
# 1.安装sersync的依赖
[root@nfs ~]# yum install -y rsync inotify-tools
# 2.下载sersync
[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/sersync-2.5.4/confxml.xml
inotifywait -mrq --format %w %f -e create,delete,attrib,close_write /data
1.将下面的false改成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>
2.修改推送数据的目录
<localpath watch="/data">
3.修改rsync服务端的IP地址和模块名
<remote ip="172.16.1.41" name="data"/>
4.修改rsync命令执行的选项
<commonParams params="-az --delete"/>
5.rsync命令认证,打开认证,修改匿名用户,密码文件
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.passwd"/>
# 6.创建密码文件
[root@nfs data]# echo '123' > /etc/rsync.passwd
# 7.授权密码文件
[root@nfs data]# chmod 600 /etc/rsync.passwd
# 8.启动sersync
[root@nfs sersync-2.5.4]# /application/sersync-2.5.4/sersync2 -rdo /application/sersync2.5.4/confxml.xml
```
day13.4
[toc]
## web集群数据拆分及共享存储、实时同步
## 环境准备
| 主机名 | wanip | lanip | 角色 | 安装应用 |
| ------ | --------- | ----------- | ----------------------- | --------------- |
| web01 | 10.0.0.7 | 172.16.1.7 | web网站,共享存储客户端 | nginx、PHP、nfs |
| web02 | 10.0.0.8 | 172.16.1.8 | web网站,共享存储客户端 | nginx、PHP、nfs |
| db01 | 10.0.0.51 | 172.16.1.51 | 数据库 | MySQL(mariadb) |
| backup | 10.0.0.41 | 172.16.1.41 | 实时同步 | sersync |
| nfs | 10.0.0.31 | 172.16.1.31 | 共享存储服务端 | nfs |
## lnmp环境搭建
```bash
# 1.关闭防火墙
[root@web01 ~]# systemctl stop firewalld
[root@web01 ~]# systemctl disable firewalld
# 2.关闭selinux
[root@web01 ~]# setenforce 0
# 3.添加yum源
1.nginx源
[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
2.PHP源
[root@web01 ~]# vim /etc/yum.repos.d/php.repo
[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0
# 4.安装PHP
[root@web01 ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
# 5.安装nginx
[root@web01 ~]# yum install -y nginx
# 6.创建www用户
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
[root@web01 ~]# id www
uid=666(www) gid=666(www) groups=666(www)
# 7.统一用户
1.修改nginx配置文件
[root@web01 ~]# vim /etc/nginx/nginx.conf
user www;
2.修改PHP用户
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
user = www
group = www
## 启动php服务时,创建php.sock安全套接字文件,该文件的属主和属组
listen = /opt/php.sock
listen.owner = www
listen.group = www
### 完整php配置文件
[www]
user = www
group = www
;listen = 0.0.0.0:9000
listen = /opt/php.sock
listen.owner = www
listen.group = www
listen.allowed_clients = 127.0.0.1
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
slowlog = /var/log/php-fpm/www-slow.log
php_admin_value[error_log] = /var/log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
php_value[session.save_handler] = files
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
# 8.配置nginx连接PHP文件
[root@web02 ~]# vim /etc/nginx/conf.d/blog.wc.com.conf
server{
listen 80;
server_name blog.wc.com;
root /wc;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/opt/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 检查语法
[root@web01 ~]# nginx -t
# 9.启动nginx和PHP并加入开机自启
[root@web01 ~]# systemctl start nginx php-fpm
[root@web01 ~]# systemctl enable nginx php-fpm
# 10.测试nginx连接PHP
# 编写PHP.info文件
1.创建站点目录
[root@web01 ~]# mkdir /wc
2.编写info.php
[root@web01 ~]# cd /wc/
[root@web01 wc]# vim info.php
<?php
phpinfo();
?>
# 11.windows上域名解析
10.0.0.7 blog.wc.com
```
## 部署MySQL
```bash
# 1.安装MySQL
[root@db01 ~]# yum install -y mariadb-server
# 2.启动MySQL并加入开机自启
[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb
# 3.给 MySQL root用户设置密码
[root@db01 ~]# mysqladmin -uroot -p password '123'
# 4.连接数据库
[root@db01 ~]# mysql -uroot -p123
# 5.创建数据库
MariaDB [(none)]> create database wp;
# 6.创建用户
MariaDB [(none)]> grant all on *.* to wp_user@'localhost' identified by '111';
# 7.查看数据库是否创建成功
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wp |
+--------------------+
# 8.查看用户是否创建成功
MariaDB [(none)]> select user,host from mysql.user;
+---------+-----------+
| user | host |
+---------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| | db01 |
| root | db01 |
| | localhost |
| root | localhost |
| wp_user | localhost |
+---------+-----------+
# MySQL相关库和用户
WordPress库:wp
WordPress用户:wp_user
WordPress用户密码:111
WordPress用户ip:losthost
# 9.测试PHP是否可以跟MySQL建立连接
[root@web01 wc]# vim pm.php
<?php
$servername = "10.0.0.51";
$username = "wp_user";
$password = "111";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "小哥哥,php可以连接MySQL...";
?>
```

## 部署 WeCenter代码
```bash
# 1.解压
[root@web01 WeCenter_3-2-1]# unzip WeCenter_3-2-1.zip
# 2.修改nginx配置文件
[root@web01 WeCenter_3-2-1]# vim /etc/nginx/conf.d/blog.wc.com.conf
server{
listen 80;
server_name blog.wc.com;
root /wc/WeCenter_3-2-1;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/opt/php.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 3.重新加载nginx
[root@web01 WeCenter_3-2-1]# systemctl reload nginx
# 4.授权站点目录
[root@web01 WeCenter_3-2-1]# chown -R www.www /wc/
# 5.将代码scp到web02上
[root@web01 ~]# scp -r /wc/WeCenter_3-2-1 172.16.1.8:/wc/
# 6.授权用户
[root@web02 ~]# chown -R www.www /wc/
# 7.尝试10.0.0.8登录网址,在域名解析上注释web01
```

## nfs共享存储
```bash
# 图片没有共享
# [root@web01 ~]# ll /wc/WeCenter_3-2-1/uploads/article/20220609/
total 112
-rw-r--r-- 1 www www 113402 Jun 9 17:51 67f059447536e24b169f6d8d8911dcd1.jpg
# [root@web02 ~]# ll /wc/WeCenter_3-2-1/uploads/
total 0
```
## nfs服务端
```bash
# 1.安装nfs
[root@nfs ~]# yum install -y nfs-utils
# 2.修改nfs配置文件
[root@nfs ~]# vim /etc/exports
# 共享目录 允许访问NFS服务端的网段 (可读可写,同步,任何用户都映射成nfs的匿名用户)
/data 172.16.1.0/24(rw,sync,anonuid=666,anongid=666,all_squash)
# 3.创建www用户和组
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
# 4..启动服务并加入开机自启
[root@nfs ~]# systemctl start nfs
[root@nfs ~]# systemctl enable nfs
# 5.检查nfs配置文件是否生效
[root@nfs ~]# cat /var/lib/nfs/etab
/data 172.16.1.0/24(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=666,anongid=666,sec=sys,rw,secure,root_squash,all_squash)
```
## nfs客户端
```bash
# 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@web02 ~]# showmount -e 172.16.1.31
Export list for 172.16.1.31:
/data 172.16.1.0/24
# 3.拷贝已有数据到共享目录
[root@web01 ~]# scp -r /wc/WeCenter_3-2-1/uploads/ 172.16.1.31:/data
[root@web02 ~]# scp -r /wc/WeCenter_3-2-1/uploads/ 172.16.1.31:/data
# 4.给nfs的/data目录授权
[root@nfs ~]# chown -R www.www /data
# 5.挂载
[root@web01 ~]# mount -t nfs 172.16.1.31:/data /wc/WeCenter_3-2-1/uploads/
[root@web02 ~]# mount -t nfs 172.16.1.31:/data /wc/WeCenter_3-2-1/uploads/
# 6.查看web01和web02、nfs
[root@web01 ~]# ll /wc/WeCenter_3-2-1/uploads/article/20220609/
total 352
-rw-r--r-- 1 www www 7332 Jun 9 18:16 170x110_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:15 8d29c7b23b877a5adb7ca01dadd1ceea.jpg
-rw-r--r-- 1 www www 4289 Jun 9 18:16 90x90_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:16 a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:09 eedd7cb07e5f407004b4f82cdb2677ac.jpg
[root@web02 ~]# ll /wc/WeCenter_3-2-1/uploads/article/20220609/
total 352
-rw-r--r-- 1 www www 7332 Jun 9 18:16 170x110_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:15 8d29c7b23b877a5adb7ca01dadd1ceea.jpg
-rw-r--r-- 1 www www 4289 Jun 9 18:16 90x90_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:16 a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:09 eedd7cb07e5f407004b4f82cdb2677ac.jpg
[root@nfs data]# ll article/20220609/
total 352
-rw-r--r-- 1 www www 7332 Jun 9 18:16 170x110_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:15 8d29c7b23b877a5adb7ca01dadd1ceea.jpg
-rw-r--r-- 1 www www 4289 Jun 9 18:16 90x90_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:16 a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:09 eedd7cb07e5f407004b4f82cdb2677ac.jpg
```
## 部署sersync
````bash
# 1.安装sersync的依赖
# 1.安装sersync的依赖
[root@nfs ~]# yum install -y rsync inotify-tools
# 2.下载sersync
[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/sersync-2.5.4/confxml.xml
inotifywait -mrq --format %w %f -e create,delete,attrib,close_write /data
1.将下面的false改成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>
2.修改推送数据的目录
<localpath watch="/data">
3.修改rsync服务端的IP地址和模块名
<remote ip="172.16.1.41" name="data"/>
4.修改rsync命令执行的选项
<commonParams params="-az --delete"/>
5.rsync命令认证,打开认证,修改匿名用户,密码文件
<auth start="true" users="rsync_backup" passwordfile="/etc/rsync.passwd"/>
# 6.创建密码文件
[root@nfs data]# echo '123' > /etc/rsync.passwd
# 7.授权密码文件
[root@nfs data]# chmod 600 /etc/rsync.passwd
# 8.启动sersync
[root@nfs sersync-2.5.4]# /application/sersync-2.5.4/sersync2 -rdo /application/sersync2.5.4/confxml.xml
# 9.测试实时同步
[root@web01 20220609]# rm -fr 170x110_a711948c6720e891390eb78ea7f4931c.jpg
[root@web01 20220609]# ll
total 344
-rw-r--r-- 1 www www 113402 Jun 9 18:15 8d29c7b23b877a5adb7ca01dadd1ceea.jpg
-rw-r--r-- 1 www www 4289 Jun 9 18:16 90x90_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:16 a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:09 eedd7cb07e5f407004b4f82cdb2677ac.jpg
[root@web02 ~]# ll /wc/WeCenter_3-2-1/uploads/article/20220609/
total 344
-rw-r--r-- 1 www www 113402 Jun 9 18:15 8d29c7b23b877a5adb7ca01dadd1ceea.jpg
-rw-r--r-- 1 www www 4289 Jun 9 18:16 90x90_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:16 a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:09 eedd7cb07e5f407004b4f82cdb2677ac.jpg
[root@nfs data]# ll article/20220609/
total 344
-rw-r--r-- 1 www www 113402 Jun 9 18:15 8d29c7b23b877a5adb7ca01dadd1ceea.jpg
-rw-r--r-- 1 www www 4289 Jun 9 18:16 90x90_a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:16 a711948c6720e891390eb78ea7f4931c.jpg
-rw-r--r-- 1 www www 113402 Jun 9 18:09 eedd7cb07e5f407004b4f82cdb2677ac.jpg
```
1.安装rsync
[root@backup ~]# yum install -y rsync
2.修改rsync的配置文件
[root@backup ~]# vim /etc/rsyncd.conf
[root@backup ~]# cat /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
#####################################
[backup]
comment = welcome to oldboyedu backup!
path = /backup
[data]
comment = I love you !
path = /data
3.创建www用户和组
[root@backup ~]# groupadd www -g 666
[root@backup ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M
4.创建密码文件
[root@backup ~]# echo 'rsync_backup:123' > /etc/rsync.password
5.授权密码文件
[root@backup ~]# chmod 600 /etc/rsync.password
6.创建备份目录和实时同步目录
[root@backup ~]# mkdir /backup
[root@backup ~]# mkdir /data
7.授权备份目录和实时同步目录
[root@backup ~]# chown www.www /backup/
[root@backup ~]# chown www.www /data/
8.启动rsync并加入开机自启
[root@backup ~]# systemctl start rsyncd
[root@backup ~]# systemctl enable rsyncd
9.检查进程和端口
[root@backup ~]# ps -ef|grep [r]sync
root 8059 1 0 10:24 ? 00:00:00 /usr/bin/rsync --daemon --no-detach
[root@backup ~]# netstat -lntup|grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 8059/rsync
tcp6 0 0 :::873 ::😗 LISTEN 8059/rsync
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了