shell脚本备份mysql数据库

shell脚本备份mysql数据库

需求

临近年关整理一些脚本程序,发现一个mysql数据库备份的脚本可以和大家分享一下,基于环境是ubuntu10.04server

思路

获取mysql服务器所有数据库名称,过滤掉不需要备份的数据库

通过mysqldump来for循环导出所有的数据库的sql文件

用zip加密压缩所有的sql文件

定期进行数据清理工作

shell代码

数据库导出代码

[html]

#!/bin/bash

#1.数据库信息定义

mysql_host="192.168.1.1"

mysql_user="root"

mysql_passwd="root"

#sql备份目录

root_dir="/backup"

back_dir="/backup/databases"

data_dir="databases"

store_dir="database"

if [ ! -d $back_dir ]; then

mkdir -p $back_dir

fi

#备份的数据库数组

db_arr=$(echo "show databases;" | mysql -u$mysql_user -p$mysql_passwd -h$mysql_host)

#不需要备份的单例数据库

nodeldb="test1"

#当前日期

date=$(date -d '+0 days' +%Y%m%d)

#zip打包密码

zippasswd="passwd"

zipname="lczh_"$date".zip"

#2.进入到备份目录

cd $back_dir

#3.循环备份

for dbname in ${db_arr}

do

if [ $dbname != $nodeldb ]; then

sqlfile=$dbname-$date".sql"

mysqldump -u$mysql_user -p$mysql_passwd -h$mysql_host $dbname >$sqlfile

fi

done

#4.tar打包所有的sql文件

tar -zcPpf $root_dir/$store_dir/$zipname --directory /  $root_dir/$data_dir

#打包成功后删除sql文件

if [ $? = 0 ]; then

rm -r $data_dir

fi

数据定期清理脚本

作用

定期清理14天前的备份文件

shell代码

[html]

#!/bin/bash -

#1.参数配置

#mysql文件备份目录

backup_dir1="/backup/test1/"

backup_dir2="/backup/test2/"

backdir_arr=($backup_dir1 $backup_dir2)

#过期文件的时间

keep_time=14

#当前所在星期,crontab在奇数的星期7执行

week=$(date +%W)

flag=`expr $week % 2`

#2.清理过期文件,只在奇数星期7执行

if [ $flag -eq 1 ]; then

for dir in ${backdir_arr[*]}

do

if [ -d $dir ]; then

#查找14天之外的文件数据

clean_arr=`find $dir -type f -mtime +$keep_time -exec ls {} /;`

for cleanfile in ${clean_arr}

do

rm $cleanfile

done

fi

done

fi

crontab配置

[html]

0 5 * * 7  执行清理脚本

后记

大家有更好的数据库备份方法或者是指点我shell脚本的不足,都可以跟帖留言,我保证回复,一起加油!

时间: 2024-12-24 06:17:41

shell脚本备份mysql数据库的相关文章

关于shell脚本操作mysql数据库的问题

问题描述 关于shell脚本操作mysql数据库的问题 hi我写了一个将log文件导入数据库的脚本,可一直报错,不知道啥原因,如果是做查询就没问题 报错如下: 解决方案 http://www.2cto.com/database/201306/220570.html 解决方案二: #!/bin/shmysql?-u?root?-h?localhost?-pYourPassword?CREATE?DATABASE?DBnameUSE?DBnameCREATE?TABLE?TBname?(name?c

linux中shell脚本进行MySQL数据库定时备份

具体方法  代码如下 复制代码 #!/bin/bash #Shell Command For Backup MySQL Database Everyday Automatically By Crontab #Author : Carlos Wong #Date : 2010-08-24 #配置参数  代码如下 复制代码 USER=root #数据库用户名" >用户名 PASSWORD=××××× #数据库用户密码 DATABASE=TIENIUZAI    #数据库名称 WEBMASTER

用Python脚本备份Mysql数据库

#!/usr/bin/env python #coding=utf8 #author : itnihao #mail : itnihao@qq.com #source : http://code.taobao.org/p/python2/src/trunk/ #version:1.0 ''' 功能:mysql备份.用mysqldump对mysql中各库进行备份 1.user,pass,host,path,del参数为变量 2.默认备份删除周期为5天,备份以天为单位 3.默认备份路径为/mysql

Linux shell实现每天定时备份mysql数据库_linux shell

每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据: 需求:   1,每天4点备份mysql数据:   2,为节省空间,删除超过3个月的所有备份数据:   3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据: #创建shell文件 vim backup_mysql.sh mysqldump -uroot -p123456 --all-databases > /data/dbdata/mysqlbak/`date +%Y%m%d`.sql find

一个备份MySQL数据库的简单Shell脚本

Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行.我们也可以逐一敲入命令手动执行.如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后就可以随意反复运行这些命令了. 我首先要在本文带给你的是完整脚本.后面会对该脚本做说明.我假定你已经知道shell scripting. mysqldump和crontab. 适用操作系统:任何Linux或UNIX. 主脚本(用于备份mysql数据库): 该Shell脚本可以自动备份数据库.只要复制粘贴本脚本到

Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1678653 设计该脚本的一些设计.编写考虑: 该脚本适用于编译安装mysql和通过yum或apt-get等安装方式 该脚本可以反复执行,不会重复覆盖数据 可增加,删除N天前的备份以节省磁盘空间 充分利用mysqldump的自带锁表功能.刷新日志.复制等功能 利用mysqldump命令备份MySQL数据库的脚本(不带

Linux自动备份MySQL数据库脚本代码

下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行.在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩.需要注意的是,这段脚本仅适用数据一致性要求不高的环境.  代码如下 复制代码 #!/bin/bash mysql_pwd="password" mysql_dump="/usr/local/mysql/bin/mysqldump" cur_year=$(date +"%Y&

mysqldump使用脚本自动备份mysql数据库

问题描述 mysqldump使用脚本自动备份mysql数据库 在linux服务器使用脚本自动数据库时,报如下错误,备份不成功,求问大神如何解决:Warning: Using a password on the command line interface can be insecure 以下是我的脚本:#!/bin/shDUMP=/usr/local/mysql/bin/mysqldumpOUT_DIR=/home/dbbak/todayOUT_HISTORY_DIR=/home/dbbak/o

Linux VPS自动定时备份MySQL数据库发送至邮箱实现脚本

如今,我们在选择主机建站或者部署项目的时候,越发觉得VPS.服务器性价比会高很多,比如我们经常有看到年付十几美金.二十几美金的VPS服务器.相比较传统的虚拟主机是便宜很多,不过老蒋一直强调,如果我们是普通的个人博客.个人网站,如果虚拟主机能够满足需求的,建议还是要使用虚拟主机.因为虚拟主机站长维护成本较低,而且稳定性和安全性比VPS.服务器强一些. 因为,大部分VPS服务器都是无管理型的,所有的环境配置.网站部署.数据安全都需要我们自己来运维.尤其对于很多Linux服务器新手用户,老蒋遇到很多选