手机
当前位置:查字典教程网 >编程开发 >mysql数据库 >linux下mysql自动备份脚本代码
linux下mysql自动备份脚本代码
摘要:脚本放在/home/user/mysql_backup.shcrontab#crontab-l#mhdommondowcommand2816...

脚本放在 /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问题解决了

【linux下mysql自动备份脚本代码】相关文章:

Mysql命令行导入sql数据的代码

centos下mysql主从同步快速设置步骤分享

linux下讲解MySQL安装与登录方法

mysql 控制台操作

linux下perl操作mysql数据库(需要安装DBI)

linux mysql 找回密码

Mysql主从同步备份策略分享

MySQL数据库中备份/恢复的两方法介绍

在Win下mysql备份恢复命令

mysql函数split功能实现

精品推荐
分类导航