美文网首页程序员
Mysql 自动备份数据库 shell脚本

Mysql 自动备份数据库 shell脚本

作者: 金哲成长记 | 来源:发表于2018-12-15 21:51 被阅读10次

在我们平时的工作中。 有时需要定期去备份数据库。当然备份数据库有很多种方式。楼主这里只简单给大家说下如何编写定期备份数据库的shell 脚本。

创建备份目录

cd /opt

mkdir backup

cd backup/


创建备份 Shell 脚本:
vim DatabaseName.sh

#!/bin/bash

mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

对备份进行压缩:

#!/bin/bash

mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz

注意:

把 username 替换为实际的用户名;

把 password 替换为实际的密码;

把 DatabaseName 替换为实际的数据库名;


添加可执行权限

chmod u+x DatabaseName.sh


添加计划任务

crontab -e

01    5***opt/backup/DatabaseName.sh

表示每天 5点钟执行备份


Crontab 的格式

第 1列分钟 1~59

第 2列小时 1~23(0表示子夜)

第 3列日 1~31

第 4列月 1~12

第 5列星期 0~6(0表示星期天)

第 6列要运行的命令

下面是 crontab 的格式:

分 时 日 月 星期 要运行的命令

这里有 crontab 文件条目的一些例子:

3021***/usr/local/apache/bin/apachectl restart

上面的例子表示每晚的 21:30重启 apache。

4541,10,22**/usr/local/apache/bin/apachectl restart

上面的例子表示每月 1、10、22日的 4: 45重启 apache。

101**6,0/usr/local/apache/bin/apachectl restart

上面的例子表示每周六、周日的 1: 10重启 apache。

0,3018-23***/usr/local/apache/bin/apachectl restart

上面的例子表示在每天 18: 00至 23: 00之间每隔 30分钟重启 apache。

023**6/usr/local/apache/bin/apachectl restart

上面的例子表示每星期六的 11: 00pm 重启 apache。

0*/1***/usr/local/apache/bin/apachectl restart

每一小时重启 apache

#20160912 修正,感谢 @张琼的指正,之前写错了,*/1 和 * 表示的同样的意思,对于 / 的用法,可以参考另一篇文章 Crontab 中的除号到底怎么用?

023-7/1***/usr/local/apache/bin/apachectl restart

晚上 11点到早上 7点之间,每隔一小时重启 apache

0114*mon-wed /usr/local/apache/bin/apachectl restart

每月的 4号与每周一到周三的 11点重启 apache

041jan */usr/local/apache/bin/apachectl restart

一月一号的 4点重启 apache


此脚本为楼主在centos7.0 mysql5.7下亲测。其他环境应该都是类似的。

相关文章

本文标题:Mysql 自动备份数据库 shell脚本

本文链接:https://www.haomeiwen.com/subject/zkrzhqtx.html