当前位置: 首页 > news >正文

crontab 定时备份 mysql 数据库

1、使用 mysqldump 命令备份数据

1.1 备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A > /data/backup/db.sql
1.2 备份全部数据库的结构(加 -d 参数)
mysqldump -uroot -p123456 -A -d > /data/backup/db.sql
1.3 备份全部数据库的数据(加 -t 参数)
mysqldump -uroot -p123456 -A -t > /data/backup/db.sql
1.4 备份单个数据库的数据和结构(,数据库名mydb)
mysqldump -uroot -p123456 -A -t > /data/backup/db.sql
1.5 备份单个数据库的结构
mysqldump -uroot -p123456 mydb -d > /data/backup/db.sql
1.6 备份单个数据库的数据
mysqldump -uroot -p123456 mydb -t > /data/backup/db.sql
1.7 备份多个表的数据和结构
mysqldump -uroot -p123456 mydb t1 t2 > /data/backup/db.sql
1.8 备份多个表的数据和结构
mysqldump -uroot -p123456 --databases db1 db2 > /data/backup/db.sql

2、还原 MySQL 备份内容

2.1 系统命令
mysql -uroot -p123456 < /data/backup/db.sql
2.2 使用系统命令登录mysql(mysql -uroot -p123456)
mysql> source /data/mysqlDump/mydb.sql

注意:
在使用 mysqldump 命令的时候,如果提示 -bash: mysqldump: command not found
解决方法:
可以找到你的 mysql 安装目录下面的 bin 目录
然后给 bin 目录下面的 mysqldump 建立一个软连接
eg:

ln -s /data/soft/mysql/install/mysql5.7/bin/mysqldump /usr/bin/mysqldump

3、编写备份命令脚本

#!/bin/bash#保存备份个数,备份24个月的数据
number=24
#备份保存路径
backup_dir=/data/backup/sql
#日期
dd=`date +%Y%m%d%H%M%S`
#备份工具
tool=mysqldump
#用户名
username=root
#密码
password=123456
#将要备份的数据库
database_name=blog#如果文件夹不存在则创建
if [ ! -d $backup_dir ];
then     mkdir -p $backup_dir;
fi#简单写法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql#写创建备份日志
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt#找出需要删除的备份
delfile=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | head -1`#判断现在的备份数量是否大于$number
count=`ls -l -crt $backup_dir/*.sql | awk '{print $9 }' | wc -l`if [ $count -gt $number ]
then#删除最早生成的备份,只保留number数量的备份rm $delfile#写删除文件日志echo "delete $delfile" >> $backup_dir/log.txt
fi

注意:
脚本中的换行符号要是 unix 的,如果是 windows 的会报错。

3、设置定时任务 (crontab)

3.1 使用yum命令安装Crontab
yum install vixie-cron 
yum install crontabs
注:vixie-cron软件包是cron的主程序;
crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
cron是linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start #启动服务
/sbin/service crond stop #关闭服务
/sbin/service crond restart #重启服务
/sbin/service crond reload #重新载入配置
3.2 查看Crontab状态
service crond status
ntsysv #查看crontab服务是否已设置为开机启动
chkconfig –level 35 crond on #加入开机自动启动
3.3 添加定时任务
crontab -e #编辑cron任务模式
i #默认文字编辑器为vim,按i字母键即可添加cron任务
0 0 1 * * /data/backup/sql/mysql_dump_script.sh #将命令代码放入,此命令意义为每天的03:30 重启apache
ESC #按ESC键退出编辑模式
:wq #键入:wq保存
service crond restart #重启crontab服务
3.4 查看任务列表
crontab -l

注意:
如果添加定时任务的时候出现

crontab: installing new crontab "/tmp/crontab.6ET70C":1: bad day-of-month errors in crontab file, can't install.

这个提示的时候,需要检查一下你的 cron 表达式是否正确,如果错误的话,就会出现这个提示。
eg:
0 0 1 * * crontab 的 cron 表达式是从 minute 分钟开始的,这里需要注意,可以使用 cat /etc/crontab 命令查看一下。

http://www.xdnf.cn/news/88381.html

相关文章:

  • CF思维题(cf round 1019 div.2 b题)
  • ADS基本操作之S参数仿真
  • 如何高效优化复杂的SQL查询:以项目发布管理为例
  • Java知识大纲
  • 内存管理之文件内存映射(mmap):外存(磁盘/flash)的文件映射到应用层(跨越内核层)
  • 解析芯片低功耗设计的底层逻辑与实现方法
  • 最新项目笔记
  • Java的反射机制(曼波超易懂图文版)
  • 一洽智能硬件行业解决方案探索与实践
  • 从零开始学Python游戏编程33-指令模式2
  • AI大模型-window系统CPU版安装anaconda以及paddle详细步骤-亲测有效
  • c++STL——stack、queue、priority_queue的模拟实现
  • JDK安装超详细步骤
  • c#操作excel
  • Codeforces Round 1019 (Div. 2)(A-D)
  • 【线段树】P10381 「HOI R1」杂赛选比|普及+
  • SpringbootWeb开发(注解和依赖配置)
  • Sqlserver安全篇之_Sqlcmd命令使用windows域账号认证sqlserver遇到问题如何处理的案例
  • 基于STM32、HAL库的MCP4018T数字电位器驱动程序设计
  • 第5章-1 优化服务器设置
  • 08_Docker Portainer可视化管理
  • Kafka 面试,java实战贴
  • Java中常见API的分类概述及示例
  • Spark集群搭建-spark-local
  • [Java · 铢积寸累] 数据结构 — 数组类型 - Arrays 工具类详解
  • 文献分享:不同抗体表位作图技术比较
  • 《计算机视觉度量:从特征描述到深度学习》—深度学习图像特征工程
  • 动态加载内容时selenium如何操作?
  • Kubernetes相关的名词解释etcdctl(20)
  • 鸿蒙移动应用开发--渲染控制实验