8.14-LVS主从+nginx的haproxy+mysql的haproxy+读写分离

一、LVS-主从数据库

# nat
# 添加规则
[root@DS ~]# ipvsadm -A -t 192.168.2.130:3306 -s rr
[root@DS ~]# ipvsadm -a -t 192.168.2.130:3306 -r 192.168.2.40:3306 -m
[root@DS ~]# ipvsadm -a -t 192.168.2.130:3306 -r 192.168.2.42:3310 -m
[root@DS ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.2.130:3306 rr-> 192.168.2.40:3306            Masq    1      0          0         -> 192.168.2.42:3310            Masq    1      0          0   
# 修改文件
[root@DS ~]# vim /etc/sysctl.conf
[root@DS ~]# sysctl -p
net.ipv4.ip_forward = 1
​
# 主数据库-添加网关
[root@master ~]# route del default
[root@master ~]# route add default gw 192.168.2.60
​
# 从数据库-添加网关
[root@slave ~]# route del default
[root@slave ~]# route add default gw 192.168.2.60
​
# 主数据库-创建用户
[root@master ~]# mysql -pHui@2003
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 49
Server version: 8.0.33 MySQL Community Server - GPL
​
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> create user 'aaaa'@'%' identified by 'aaaa';
Query OK, 0 rows affected (0.03 sec)
​
mysql> grant all on *.* to 'aaaa'@'%';
Query OK, 0 rows affected (0.01 sec)
​
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
​
# 客户端测试
./mysql -h192.168.2.130 -P3306 -uaaaa -paaaa
show variables like 'server_id';

二、nginx的高可用

# 安装ntpdate
[root@haproxy ~]# yum -y install ntpdate.x86_64 
# 同步时间
[root@haproxy ~]# ntpdate cn.ntp.org.cn
14 Aug 10:22:43 ntpdate[1512]: adjust time server 203.107.6.88 offset 0.002669 sec
# 启动服务
[root@haproxy ~]# systemctl start ntpdate.service 
# 设置开机启动
[root@haproxy ~]# systemctl enable ntpdate.service 
# 安装haproxy
[root@haproxy ~]# yum -y install haproxy
# 修改配置文件
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 
63行 frontend  main *:80 # 把5000改为80
67行 # use_backend static          if url_static  # 注释
68行 default_backend             web # 把app改为web
86行:添加内容
backend webbalance roundrobinserver  weba 192.168.2.101:80 checkserver  webb 192.168.2.102:80 check# 启动服务
[root@haproxy ~]# systemctl start haproxy.service 
# 设置开机自启
[root@haproxy ~]# systemctl enable haproxy.service 
# 本机测试
[root@haproxy ~]# curl 192.168.2.70
web===01
[root@haproxy ~]# curl 192.168.2.70
web===02
​
# 添加内容
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 
# 定义web管理界面
listen statisticsbind   *:9090       #定义监听端口mode   http        #默认使用协议stats   enable    #启用statsstats   uri /hadmin?stats   #自定义统计页面的urlstats   auth admin:admin   #统计页面的账号密码stats   hide-version   #隐藏在统计页面上stats   refresh 30s  # 统计页面自动刷新时间stats   admin if TRUE    # 如果认证通过就做管理功能,可以管理后端服务器stats   realm hapadmin   #统计页面密码框上提示文件,默认haproxy\statistics# 重启服务
[root@haproxy ~]# systemctl restart haproxy.service 
​

浏览器访问:192.168.2.70:9090

关闭web02的nginx服务

[root@web02 ~]# nginx -s stop

# 设置权重
​
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 
​
backend webbalance roundrobinserver  weba 192.168.2.101:80 weight 8 checkserver  webb 192.168.2.102:80 weight 2 check
​
[root@haproxy ~]# systemctl restart haproxy.service 

浏览器访问:192.168.2.70

三、数据库的高可用

haproxy

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 
42 defaults
43    mode                    tcp  # 将http改为tcp
67    #use_backend static          if url_static # 注释
68    default_backend             mysql # 将web改为mysql
91    添加内容
backend mysqlbalance roundrobinserver  master 192.168.2.40:3306 checkserver  master 192.168.2.42:3310 check
[root@haproxy ~]# systemctl restart haproxy.service 

主数据库-master

# 主数据库-创建用户
[root@master ~]# mysql -pHui@2003
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 49
Server version: 8.0.33 MySQL Community Server - GPL
​
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> create user 'aaaa'@'%' identified by 'aaaa';
Query OK, 0 rows affected (0.03 sec)
​
mysql> grant all on *.* to 'aaaa'@'%';
Query OK, 0 rows affected (0.01 sec)
​
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

客户端测试

[root@client ~]# ls
anaconda-ks.cfg  mysql-8.0.33-linux-glibc2.12-x86_64.tar
[root@client ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar 
[root@client ~]# tar -xf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz 
[root@client ~]# ls
anaconda-ks.cfg
mysql-8.0.33-linux-glibc2.12-x86_64
mysql-8.0.33-linux-glibc2.12-x86_64.tar
mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
mysql-router-8.0.33-linux-glibc2.12-x86_64.tar.xz
mysql-test-8.0.33-linux-glibc2.12-x86_64.tar.xz
[root@client ~]# cp -r mysql-8.0.33-linux-glibc2.12-x86_64 /usr/local/mysql
[root@client ~]# cd /usr/local/mysql/
[root@client mysql]# ls
bin  docs  include  lib  LICENSE  man  README  share  support-files
[root@client mysql]# cd bin
[root@client bin]# ./mysql -h192.168.2.70 -P5000 -uaaaa -paaaa
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 8.0.33 MySQL Community Server - GPL
​
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 11    |
+---------------+-------+
1 row in set (0.01 sec)
​
mysql> quit
Bye
[root@client bin]# ./mysql -h192.168.2.70 -P5000 -uaaaa -paaaa
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 8.0.33 MySQL Community Server - GPL
​
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
​
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
​
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
​
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id     | 10    |
+---------------+-------+
1 row in set (0.05 sec)

远程访问测试

四、读写分离

1.在生产中,查询和修改的比例为7:3,查询压力大,可以分出多的主机做查询,slave也是可以被查询,所以,可以将mysql做成高可用主从复制

2.用户发送请求服务器响应压力 (nginx,lvs,haproxy),但是web服务器要提供服务,需要从数据库读写数据,随着业务并发量的提高,单点mysql已经无法满足需求,所以需要配置一主一从,一主多从

3.对数据库的从服务是不用允许修改,否则M-S失效

4.读写分离

5.代码级别读写分离,另一种是中间件读写分析

1.mysql的主从复制

(1)主数据库

# master
​
1.rm -rf /etc/my.cnf
2.glibc下载解压
3.将解压后的文件移动到指定的/usr/local/mysql
4.mkdir /usr/local/mysql/mysl-files
5.user -r -s /sbin/nologin mysql
6.chown mysql:mysql /usr/local/mysql/mysql-files
7.chmod 750 /usr/local/mysql/mysql-files
8./usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/
9.查看data目录和初始密码
10./usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
11.配置文件
[root@master ~]# vim /usr/local/mysql/my.cnf 
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/db01-master.err
log-bin=/usr/local/mysql/data/binlog
server-id=10
character_set_server=utf8mb4
12.cp support-files/mysql.server /etc/init.d/mysql8
13.service mysql8 start
14.sed -i '$aexport PATH=$PATH:/usr/local/mysql/bin' /etc/profile
15.source /etc/profile

(2)创建用户

16.mysql -h192.168.2.40 -P3306 -uhaha -phaha
17.create user 'aaaa'%'aaaa' identified by 'an'
18.grant all on *.* to 'aaaa';

(3)从数据库

# slave
​
1.rm -rf /etc/my.cnf
2.glibc下载解压
3.将解压后的文件移动到指定的/usr/local/mysql
4.mkdir /usr/local/mysql/mysl-files
5.user -r -s /sbin/nologin mysql
6.chown mysql:mysql /usr/local/mysql/mysql-files
7.chmod 750 /usr/local/mysql/mysql-files
8.配置文件
[root@master ~]# vim /usr/local/mysql/my.cnf 
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3310
log-error=/usr/local/mysql/data/mysql.log
log-log=/usr/local/mysql/data/relaylog
server-id=11
character_set_server=utf8mb4
9.cp support-files/mysql.server /etc/init.d/mysql8
10.sed -i '$aexport PATH=$PATH:/usr/local/mysql/bin' /etc/profile
11.source /etc/profile

(4)同步数据

1.yum -y install rsync 
2.service mysql8 stop 
3.master=> rm -rf /usr/local/mysql/data/auto.cnf
4.rsync -av /usr/local/mysql/data root@slaveip:/usr/local/mysql
5.slave=>service mysql8 start
6.master=>service mysql8 start

(5)设置主数据库

1.创建远程slave账号
create user 'slave'@'%' identified by 'slave';
​
grant replication slave on *.* to 'slave'@'%';
​
flush privileges;
2.锁表
flushtables with read lock;
3.查看主库信息
show master status\G;
​
•   1.文件名称
​
•   2.文件位置

(6)设置从数据库

1.设置change master to
mysql> change master to-> master_host='192.168.2.40',-> master_user='slave',-> master_password='slave_123',-> master_log_file='binlog.000006',-> master_log_pos=1547,-> get_master_public_key=1;
2.启动slave并且查看状态
start slave
​
show slave status\G
3.解锁
master=>unlock tables;

2.python代码的读写分离

1.环境配置

[root@client ~]# python3 -m pip install --upgrade pip
​
[root@client ~]# pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
​
[root@client ~]# pip3 install pymysql

2.安装pymysql

pymysql是python管理mysql的驱动,或者成为连接器

[root@client ~]# pip3 install pymysql

3.在python3的命令行界面输入

如pymysql

>>> import pymysql

4.创建两个connection对象

一个指向master mysql,一个指向slave mysql

>>> import pymysql
>>> master_conn=pymysql.connect(host="192.168.2.40",user="aaaa",password="aaaa",database="test",port=3306)
>>> slave_conn=pymysql.connect(host="192.168.2.42",user="aaaa",password="aaaa",database="test",port=3310)

5.master-主数据库

(1)获取数据游标
语法:
master_cursor=master_conn.cursor()
(2)执行查询
语法:
select_sql="select * from user";
master_cursor.execute(select_sql);
rs=master_cursor.fetchall()
练习:
>>> master_cursor=master_conn.cursor()
>>> select_sql="select * from user";
>>> master_cursor.execute(select_sql);
4
>>> rs=master_cursor.fetchall()
>>> rs
((1, 'zhangsan', '123'), (2, 'lisi', '456'), (3, 'wangwu', '789'), (4, 'zhaoliu', 'aaa'))
在数据中查看
mysql> select * from user;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | zhangsan | 123      |
|  2 | lisi     | 456      |
|  3 | wangwu   | 789      |
|  4 | zhaoliu  | aaa      |
+----+----------+----------+
4 rows in set (0.00 sec)
​
(3)执行修改
语法:
update_sql="update user set password='000' where username='aaa'"
master_cursor.execute(update_sql)
master_conn.commit()
练习:
>>> update_sql="update user set password='rrr' where username='lisi'"
>>> master_cursor.execute(update_sql)
1
>>> master_conn.commit()
在数据中查看
mysql> select * from user;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | zhangsan | 123      |
|  2 | lisi     | rrr      |
|  3 | wangwu   | 789      |
|  4 | zhaoliu  | aaa      |
+----+----------+----------+
4 rows in set (0.01 sec)
(4)执行删除
语法:
delete_sql="delete user from user where username='aaaa'"
master_cursor.execute(delete_sql)
master_conn.commit()
练习:
>>> delete_sql="delete user from user where username='haha'"
>>> master_cursor.execute(delete_sql)
1
>>> master_conn.commit()
在数据中查看
mysql> select * from user;
+------+----------+----------+
| id   | username | password |
+------+----------+----------+
|    1 | zhangsan | 123      |
|    2 | lisi     | rrr      |
|    3 | wangwu   | 789      |
|    4 | zhaoliu  | aaa      |
| 1004 | haha     | a1b2     |
+------+----------+----------+
5 rows in set (0.00 sec)
​
mysql> select * from user;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | zhangsan | 123      |
|  2 | lisi     | rrr      |
|  3 | wangwu   | 789      |
|  4 | zhaoliu  | aaa      |
+----+----------+----------+
4 rows in set (0.00 sec)
(5)执行新增
语法:
insert_sql="insert into user values(1004,'dddd','dddd')"
master_cursor.execute(insert_sql)
master_conn.commit()
练习:
>>> insert_sql="insert into user values(1004,'haha','a1b2')"
>>> master_cursor.execute(insert_sql)
1
>>> master_conn.commit()
在数据中查看
mysql> select * from user;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | zhangsan | 123      |
|  2 | lisi     | rrr      |
|  3 | wangwu   | 789      |
|  4 | zhaoliu  | aaa      |
+----+----------+----------+
4 rows in set (0.01 sec)
​
mysql> select * from user;
+------+----------+----------+
| id   | username | password |
+------+----------+----------+
|    1 | zhangsan | 123      |
|    2 | lisi     | rrr      |
|    3 | wangwu   | 789      |
|    4 | zhaoliu  | aaa      |
| 1004 | haha     | a1b2     |
+------+----------+----------+
5 rows in set (0.00 sec)
(6)slave-从数据库
>>> # 执行查询,获得slave游标
... 
>>> slave_cursor=slave_conn.cursor()
>>> select_sql
'select * from user'
>>> slave_cursor.execute(select_sql)
4
>>> slave_cursor.fetchall()
((1, 'zhangsan', '123'), (2, 'lisi', 'rrr'), (3, 'wangwu', '789'), (4, 'zhaoliu', 'aaa'))
​

脚本-判断如果是select开头,就去slave执行,如果是其他的就去master执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/404032.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机毕业设计选什么题目好? springboot 大学志愿填报系统

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

ffmpeg的基础命令

文章目录 ffmpeg/ffplay/ffprobe区别ffmpeg 的作用ffplay的作用ffprobe的作用 ffmpeg使用概述功能概述转码过程简单使用FFMPEG -i常用的 -i例子 ff***工具之间共享的选项ffmpeg主要选项ffmpeg提取音视频数据ffmpeg命令修改原有的视频格式ffmpeg命令裁剪和合并视频拼接视频的方式…

数据结构—— 初识二叉树

1.树概念及结构 1.1树的概念 树是由根和子树构成 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的 1. 树有…

20240819 每日AI必读资讯

📚AI爆料人遭全网封禁!OpenAI等25个机构祭大招,一眼辨别AI机器人 - 最近半个月,全网被OpenAI的「AI爆料人」「草莓哥」iruletheworldmo愚弄。所有人没有等他预测的GPT-4o large模型,反被AI初创MultiOn创始人揭穿身份—…

Git安装包及怎么再windows上运行

第一步:下载git。 国内 Git for Windows. 国内镜像 感谢GitHub - waylau/git-for-win: Git for Windows. 国内直接从官网下载比较困难,需要翻墙。这里提供一个国内的下载站,方便网友下载 安装步骤: Git for Windows安装和基本…

【C语言可变参数函数的使用与原理分析】

文章目录 1 前言2 实例2.1实例程序2.2程序执行结果2.3 程序分析 3 补充4 总结 1 前言 在编程过程中,有时会遇到需要定义参数数量不固定的函数的情况。 C语言提供了一种灵活的解决方案:变参函数。这种函数能够根据实际调用时的需求,接受任意…

ansible相关模块

copy模块(重点) copy模块⽤于对⽂件的远程拷⻉操作(如把本地的⽂件拷⻉到远程 的机器上) https://docs.ansible.com/ansible/latest/modules/copy_module.htm l#copy-module 在master上准备⼀个⽂件,拷⻉此⽂件到group1的所有机器上 使⽤content参数直…

zabbix-配置监控远程主机

1.在被监控主机上配置zabbix-agent 1.获取zabbix官方源 rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm# 替换阿里源,这一步很重要 sed -i s#http://repo.zabbix.com#https://mirrors.aliyun.com/zabb…

微服务架构设计中的常见的10种设计模式

微服务架构设计的概念 微服务架构(Microservices Architecture)是一种用于构建分布式系统的软件设计模式。它将大型应用程序拆分成一组小型、自治的服务,每个服务都运行在其独立的进程中,服务之间通过轻量级的通信机制&#xff08…

clickhouse集群+Zk优化-解决只读模式,主节点磁盘增长快

问题1:数据库进入只读模式 最近在项目中使用clickhouse的时候,遇到了一个批量插入后报错的问题。报错的内容是数据库进入了只读模式,导致数据写不进去。发现有大量的批量写入报错日志信息。(关键异常信息:DB::Exceptio…

高德地图SDK Android版开发 6 显示覆盖物

高德地图SDK Android版开发 6 显示覆盖物 前言地图类中覆盖物的接口覆盖物类Marker示例Polyline示例Polygon示例Arc示例Circle示例移除示例效果图 Marker的更多属性常用属性交互动画其它属性 折线的更多属性常用属性其它属性 多边形的更多属性常用属性其它属性 Arc的更多属性Ci…

[数据结构] RBTree 模拟实现RBTree

标题:[数据结构] RBTree && 模拟实现RBTree 水墨不写bug 目录 一、红黑树的概念 二、map和set的封装 三、红黑树的实现 1、红黑树节点的定义 2、红黑树的结构 3、红黑树的插入 1.名称 2.插入节点的颜色 红黑树的insert 实现 情况一:不…

QT翻金币小游戏(含音频图片文件资源)

目录 QT翻金币小游戏 音频图片资源文件获取 效果展示 图片 视频 实现代码 main.cpp mymainwindow.h mymainwindow.cpp startscene.h startscene.cpp selectscene.cpp playscene.h playscene.cpp mypushbutton.h mypushbutton.cpp dataconfig.h dataconfig.cpp QT…

Spring Boot: 2.7.x 至 2.7.18 及更旧的版本,漏洞说明

本文提供的修复指南将帮助开发者有效规避 CVE-2024-38808 和 CVE-2024-38809 的风险。如果你正在使用老版本的 Spring Boot,请尽快参考本文进行修复与升级。 此漏洞来源于spring官网:https://spring.io/blog/2024/08/14/spring-framework-releases-fixe…

8.17模拟赛题解

先考虑空间能不能把N个座位放好 最优的方式就是挨着摆放 那么一排能摆放QL/x的商个椅子 ,然后计算摆放完N个座位需要多少排,N/Q 向上取整 计算所需要的排总共占据多宽,讨论有没有超过W,然后讨论剩余空间还能放几条走廊 如果走廊数…

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署

【Datawhale AI夏令营第四期】 魔搭-大模型应用开发方向笔记 Task04 RAG模型 人话八股文Bakwaan_Buddy项目创空间部署 什么是RAG: 我能把这个过程理解为Kimi.ai每次都能列出的一大堆网页参考资料吗?Kimi学了这些资料以后,根据这里面的信息综…

Leading SAFe领导大规模敏捷认证公开课

课程简介 SAFe – Scaled Agile Framework是目前全球最广泛使用的大规模敏捷框架,也是全球敏捷相关认证中增长最快、最受认可的规模化敏捷认证。全球已有超过120万名SAFe认证专业人士。据官方统计,获得SAFe认证的IT专业人士平均工资增长13,000美元&…

澎湃认证显实力,浪潮信息存储兼容新篇章

浪潮信息在存储技术兼容性领域取得新突破,其集中式存储HF/AS系列与长擎安全操作系统24强强联合,成功完成澎湃技术认证。此次合作不仅验证了双方产品的无缝对接能力,更体现了浪潮信息在推动全产业链共建共享方面的坚定决心。 浪潮信息澎湃技术…

python人工智能001:NumPy科学计算库说明与安装

1. NumPy说明 NumPy(Numerical Python)是Python的一个开源数值计算扩展库。它提供了一个强大的N维数组对象ndarray,以及用于对这些数组进行操作的函数。NumPy的数组和数组操作是Python数据分析、机器学习、科学计算等领域的基础。 NumPy的主…

Linux 配置定时任务

Linux定时任务,通常被称为Cron Jobs,在系统管理和运维自动化领域中扮演着至关重要的角色,并且在日常的服务器维护活动中也展现出了广泛而深远的应用价值。这种强大的工具允许用户按照预定的时间周期自动执行各种任务,如数据备份、…