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
相关推荐
zpjing~.~39 分钟前
Mongo 分页判断是否有下一页
数据库
2401_8576009540 分钟前
技术与教育的融合:构建现代成绩管理系统
数据库·oracle
2301_819287121 小时前
ce第六次作业
linux·运维·服务器·网络
秋恬意1 小时前
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
java·数据库·mybatis
武汉联从信息1 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
潇湘秦1 小时前
一文了解Oracle数据库如何连接(1)
数据库·oracle
雅冰石1 小时前
oracle怎样使用logmnr恢复误删除的数据
数据库·oracle
web前端神器1 小时前
mongodb给不同的库设置不同的密码进行连接
数据库·mongodb
从以前1 小时前
Berlandesk 注册系统算法实现与解析
数据库·oracle
Muko_0x7d21 小时前
Mongodb
数据库·mongodb