linux下mysql自动备份脚本代码

 更新时间:2010年07月27日 23:06:46   作者:  
mysql是以mysql用户身份运行的,对/home /mybackup不可写也会失败
脚本放在 /home/user/mysql_backup.sh
crontab
# crontab -l
# m h dom mon dow command
28 16 * * * /home/user/mysql_backup.sh
脚本如下
复制代码 代码如下:

#!/bin/sh
# mysql_backup.sh: backup mysql databases and keep newest 5 days backup.
#
# Last updated: 20 March 2006
# ----------------------------------------------------------------------
# This is a free shell script under GNU GPL version 2.0 or above
# Copyright (C) 2006 Sam Tang
# Feedback/comment/suggestions : http://www.real-blog.com/
# ----------------------------------------------------------------------
# your mysql login information
# db_user is mysql username
# db_passwd is mysql password
# db_host is mysql host
# -----------------------------
db_user="root"
db_passwd="password"
db_host="localhost"
# the directory for story your backup file.
backup_dir="/home/mybackup"
# date format for backup file (dd-mm-yyyy)
time="$(date +"%d-%m-%Y")"
# mysql, mysqldump and some other bin's path
MYSQL="/usr/local/mysql/bin/mysql"
MYSQLDUMP="/usr/local/mysql/bin/mysqldump"
MKDIR="/bin/mkdir"
RM="/bin/rm"
MV="/bin/mv"
GZIP="/bin/gzip"
# check the directory for store backup is writeable
test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0
# the directory for story the newest backup
test ! -d "$backup_dir/backup.0/" && $MKDIR "$backup_dir/backup.0/"
# get all databases
all_db="$($MYSQL -u $db_user -h $db_host -p$db_passwd -Bse 'show databases')"
for db in $all_db
do
$MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | $GZIP -9 > "$backup_dir/backup.0/$time.$db.gz"
done
# delete the oldest backup
test -d "$backup_dir/backup.5/" && $RM -rf "$backup_dir/backup.5"
# rotate backup directory
for int in 4 3 2 1 0
do
if(test -d "$backup_dir"/backup."$int")
then
next_int=`expr $int + 1`
$MV "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"
fi
done
exit 0;

备注:
mysql是以mysql用户身份运行的,对/home /mybackup不可写也会失败
chmod 777 /home/mybackup问题解决了

相关文章

  • MySQL中MTR的概念

    MySQL中MTR的概念

    这篇文章主要介绍了MySQL中MTR的概念,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2020-11-11
  • MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

    MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决

    这篇文章主要介绍了MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • MySQL如何生成自增的流水号

    MySQL如何生成自增的流水号

    这篇文章主要介绍了MySQL如何生成自增的流水号问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • mysql 8.0.12 安装配置教程

    mysql 8.0.12 安装配置教程

    这篇文章主要为大家详细介绍了mysql 8.0.12安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Mysql的 存储过程procedure及具体案例

    Mysql的 存储过程procedure及具体案例

    存储过程是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名字和参数(如果有)来执行它,今天通过本文给大家介绍Mysql的 存储过程procedure及具体案例,感兴趣的朋友一起看看吧
    2024-06-06
  • 浅谈MySQL排序原理与案例分析

    浅谈MySQL排序原理与案例分析

    这篇文章主要介绍了浅谈MySQL排序原理与案例分析的相关资料,需要的朋友可以参考下
    2016-03-03
  • Mysql数据库中的各种日志详解

    Mysql数据库中的各种日志详解

    在MySQL系统中有着诸多不同类型的日志,各种日志都有着自己的用途,通过分析日志,我们可以优化数据库性能,排除故障,这篇文章主要给大家介绍了关于Mysql数据库中各种日志的相关资料,需要的朋友可以参考下
    2024-08-08
  • Mysql数据库双机热备难点分析

    Mysql数据库双机热备难点分析

    本文主要给大家介绍了在Mysql数据库双机热备其中的难点分析以及重要环节的经验心得,需要的朋友收藏分享下吧。
    2017-12-12
  • MYSQL悲观锁及乐观锁方式

    MYSQL悲观锁及乐观锁方式

    MySQL支持悲观锁和乐观锁两种机制,悲观锁在执行读写操作之前先获取锁,适用于高并发场景,但可能引发性能瓶颈和死锁问题,乐观锁则通过版本号或时间戳等机制判断数据是否被修改,适用于并发冲突较少的场景
    2024-12-12
  • Can’t open file:''[Table]mytable.MYI''

    Can’t open file:''[Table]mytable.MYI''

    也许很多人遇到过类似Can’t open file: ‘[Table]mytable.MYI’ 这样的错误信息,却不知道怎么解决他,下面我们做个介绍,
    2011-01-01

最新评论