Linux下Mysql数据库备份
今天一同事的电脑无缘无故坏了,找了IT部门检测说是硬盘坏了,数据无法恢复。好悲剧。自己博客也写了好久不容易,要是突然间数据丢了那怎么办!于是写了个数据库自动备份脚本,并创建任务计划,实现每天22:30点自动备份远程数据库功能。
1、创建备份脚本
[root@toughhou www]# cat wwwbak.sh
#!/bin/bash
server="toughhou.gotoftp3.com"
user="mysql_user"
password="mysql_pwd"
bakdir="/home/tough/www/remotebak"
date=$(date +%Y%m%d)
#构造log文件名,$0-获取执行的shell文件名(wwwbak.sh),最后log文件名格式为:20131031_wwwbak.log
log="/home/tough/www/"$date"_"`echo "$0" | rev | cut -c 4- | rev`".log"
#如果log文件不存在就创建
if [ ! -f $log ]
then
touch $log
fi
#使用mysql前需判断mysql服务是否已经启动,如果没有的话则启动mysql服务
netstat -altn | grep 3306
if [ $? -ne 0 ]
then
service mysqld restart >> $log
fi
#登陆mysql,取得houxiaolongr下的所有数据库名称
dbs=$(echo "show databases;" | mysql -u$user -p$password -h$server)
#如果备份目录不存在,则新建
if [ ! -d $bakdir ]; then
mkdir -p $bakdir
fi
cd $bakdir
for db in ${dbs}
do
#information_schema是系统自带的数据库,Database是"show databases;"命令输出的一个标题而已,所以此处过滤掉它们
if [ $db != 'information_schema' -a $db != 'Database' ]; then
bakfile=$date"_"$db".sql"
#用mysqldump命令把数据库备份到文件
mysqldump -u$user -p$password -h$server $db > $bakfile
fi
done
#备份完成后把相关信息以邮件形式发送
mail -s "$0 bakup completed <$date>" "toughhou@126.com" < $log
2、把备份脚本加入任务调度计划
#创建任务
[root@toughhou www]# crontab -e
30 22 * * * (sh /home/tough/www/wwwbak.sh > /home/tough/www/crontab.log)
#重启crond服务使新任务生效
[root@toughhou www]# service crond restart
关于邮件发送部分,可参考:
关于任务调度计划部分,可参考:
Linux下Mysql数据库备份的更多相关文章
- linux下mysql定时备份数据库
linux下mysql定时备份数据库 (2010-10-21 12:40:17) 转载▼ 标签: 杂谈 一.用命令实现备份 首页进入mysql的bin目录 1.备份数据#mysqldump -uu ...
- Linux下MySQL的备份与还原
Linux下MySQL的备份与还原 1. 备份 [root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) [roo ...
- Linux下MySQL数据库主从同步配置
说明: 操作系统:CentOS 5.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备 ...
- Linux下MySQL数据库的备份与恢复
Linux下MySQL数据库的备份与恢复 作者:Grey 原文地址: Github 语雀 博客园 基于版本 MySQL5.7 Deepin Linux 15.11 xtrabackup-2.4.18 ...
- linux下mysql数据库的操作
本文主要针对linux下mysql数据库的安装,以及数据库的创建和简单的数据库操作进行说明. ①.Mysql数据库的安装: 数据库的安装分为源码安装和rpm安装. 当然对于老手来说需要进行一些自定义的 ...
- 记录--linux下mysql数据库问题
本次主要记录一下linux下mysql数据库的一些问题,也是之前经常用到的知识,这里简单总结一些问题,方便自己以后的回顾.原来一直使用的是阿里云的RDS数据库mysql版,主要是因为上次阿里云做活动可 ...
- Ubuntu Server下MySql数据库备份脚本代码
明: 我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar. ...
- Linux下mysql定时备份及恢复
备份 1.数据库定时备份工作脚本:(日期时间作为名称的压缩文件,解压开是sql脚本) /root/backup/script/backup_mysql.sh 2.备份输出路径: /root/backu ...
- linux篇--mysql数据库备份并删除前一分钟的数据
linux 中mysql数据库定时备份并删除前一分钟的所有数据 #!/bin/bash #mysqldump -uroot -ppassword01! imaginebase > /home/b ...
随机推荐
- ASP.NET MVC 下载列表
在ASP.NET WebForm里要想网站某个文件夹的文件列出来供用户下载似乎很简单,WebForm帮你做了很多事,只需要在Html文件里写: <a href="~/download/ ...
- wpf 父控件透明子控件不透明
在wpf开发中遇到子控件会继承父类控件属性的问题, 例如: <StackPanel Orientation="Horizontal" Grid.Row="1&quo ...
- 高效Count
SQL Server快速查询某张表的当前行数 传统做法可能是select count(1) 但是往往会比较慢.推荐如下做法: SELECT ISNULL(MAX(rowcnt), 0) Curre ...
- poj 1201 差分约束
http://www.cnblogs.com/wangfang20/p/3196858.html 题意: 求集合Z中至少要包含多少个元素才能是每个区间[ai,bi]中的元素与Z中的元素重合个数为ci. ...
- 转 oracle 11g 导出空表
1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参数为FALSE后,无论是 ...
- 轻松学习Ionic (四) 修改应用图标及添加启动画面(更新官方命令行工具自动生成)
由于Ionic更新了命令行工具,以后修改应用图标和添加启动画面就简单了,最新方法见最下方: 应用图标: 1.在整个项目所在文件夹下创建res文件夹,里边再分别创建两个文件夹android和io ...
- 转:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确 .
近期在做淘宝客的项目,大家都知道,淘宝的商品详细描述字符长度很大,所以就导致了今天出现了一个问题 VS的报错是这样子的 ” 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确“ 还说某 ...
- 基本STRUTS标签-学习笔记-Bean标签
<bean:include> 和标准的JSP标签<jsp:include>很相似,都可以用来包含其他Web资源的内容,区别在于<bean:include>标签把其它 ...
- Linux 命令 - passwd: 更改用户密码
命令格式 passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactiveda ...
- jBPM - jBPM Installer
Prerequisites This script assumes you have Java JDK 1.6+ (set as JAVA_HOME), and Ant 1.7+ installed. ...