Linux 定时任务备份MySQL数据库

Linux 定时任务基本知识

crontab

shell 复制代码
yum install crontabs (安装 crontabs)
systemctl enable crond (设为开机启动)
systemctl start crond(启动crond服务)
systemctl status crond (查看状态)
systemctl restart crond (重启服务)

语法:

shell 复制代码
crontab  [选项]
选项说明:
	-e :编辑定时任务
	-l :查询 任务
	-r :删除当前用户所有的任务

新增一个定时任务

1、进入编辑页面

shell 复制代码
crontab -e

2、编写任务

shell 复制代码
语法:
* * * * * 执行的任务
# 第一个 * 一小时的第几分钟,范围 0-59
# 第二个 * 一天中的第几个小时,范围0-23
# 第三个 * 一月中的第几天,范围 1-31
# 第四个 * 一年中的第几月,范围 1-12
# 第五个 * 一周当中的星期几,范围 0-7 0和7都代表周日

特殊符号
* 代表任何时间
, 代表不连续的时间,比如 0 8,12,16 * * * 代表每天 8点 12点 16点 都执行一次命令
- 代表连续的时间,比如 0 5 * * 1-6 代表,每周一到周六的凌晨5点执行命令
*/n 代表每个多久执行一次,比如 */10 * * * * 代表每个10分钟执行一次

MySQL 备份知识

sql 复制代码
# 导出
# mysqldump -h 主机 -u用户名 -p密码 数据库1 数据库2> E:/文件名     
# 如果不写表名,默认备份该数据库中的全部表
mysqldump -h localhost -u root -p schooldb test >E:/a.sql

 mysqldump -h localhost -uroot -padmin shop > D:/a.sql

备份脚本

在 home/mydata/db_back 创建一个脚本 db-back.sh

shell 复制代码
#!/bin/bash

echo '开始备份数据'

# 定义 MySQL docker容器名称和备份目录
MYSQL_CONTAINER="mysql"
BACKUP_DIR="/home/mydata/db_back"

# 定义 MySQL 容器中的数据库用户名、密码和备份文件名
MYSQL_USER="root"
MYSQL_PASSWORD="admin"
BACKUP_FILE="${BACKUP_DIR}/earn-$(date +%Y%m%d%H%M%S).sql"

# 执行备份命令
docker exec ${MYSQL_CONTAINER} mysqldump --default-character-set=utf8mb4 --single-transaction -u ${MYSQL_USER} -p${MYSQL_PASSWORD} earn > ${BACKUP_FILE}

# 检查备份是否成功
if [ $? -eq 0 ]; then
  echo "MySQL 数据库备份成功:${BACKUP_FILE}"
else
  echo "MySQL 数据库备份失败"
fi
# 删除14天前的备份文件
find ${BACKUP_DIR} -type f -name "*.sql" -mtime +14 -delete
echo '完成备份'

定时任务

shell 复制代码
# 创建定时任务
crontab -e

# 每天凌晨一点开始执行 /home/mydata/db_back/db-back.sh 脚本,并将输出追加到 /home/mydata/db_back/db_back.log 文件中
0 1 * * * sh /home/mydata/db_back/db-back.sh >> /home/mydata/db_back/db_back.log 2>&1
相关推荐
跃渊Yuey8 分钟前
【Linux】线程同步与互斥
linux·笔记
舰长11510 分钟前
linux 实现文件共享的实现方式比较
linux·服务器·网络
万象.11 分钟前
redis持久化:AOF和RDB
数据库·redis·缓存
zmjjdank1ng25 分钟前
Linux 输出重定向
linux·运维
路由侠内网穿透.27 分钟前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居
tod11336 分钟前
力扣高频 SQL 50 题阶段总结(四)
开发语言·数据库·sql·算法·leetcode
VekiSon1 小时前
Linux内核驱动——基础概念与开发环境搭建
linux·运维·服务器·c语言·arm开发
!chen1 小时前
Redis快速实现布隆过滤器
数据库·redis·缓存
2301_790300961 小时前
数据分析与科学计算
jvm·数据库·python
zl_dfq1 小时前
Linux 之 【进程信号】(signal、kill、raise、abort、alarm、Core Dump核心转储机制)
linux