Shell备份数据库脚本编写

数据库备份

#!/bin/bash

# Mysql data 目录
db_data_dir=/alidata/server/mysql/data
# Mysql bin  目录
db_bin_dir=/alidata/server/mysql/bin
# Mysql 备份目录
db_backup_dir=/root/db_back

# Mysql 用户名
username=root
# Mysql 密码
password="19940921"
# Mysql host
host=localhost

# Mysql 数据库名字
db_names=()

today=`date +%Y-%m-%d`

files=(`ls "${db_data_dir}"`)
for file in ${files[*]}
do
    test -d ${db_data_dir}/${file}
    if [ $? -eq 0 ]
        then
            db_names+=("${file}")
    fi  
done

for dbname in ${db_names[*]}
do
    test -e ${db_backup_dir}/${dbname}
    if [ $? -ne 0 ]
        then
            echo "${dbname} 备份文件夹建立"
            mkdir -p ${db_backup_dir}/${dbname}
            chmod -R 777 ${db_backup_dir}/${dbname}
    fi
    echo "${dbname} 备份开始"
    ${db_bin_dir}/mysqldump -u${root} -p${password} -h${host} ${dbname} > ${db_backup_dir}/${dbname}/${today}.sql
    chmod a+x ${db_backup_dir}/${dbname}/*
done

数据库恢复

#!/bin/bash

test $# -ne 2 -o ! -f $1
if [ $? -eq 0 ]
        then
                echo "脚本参数不符"
        exit
fi

# Mysql data 目录
db_data_dir=/alidata/server/mysql/data
# Mysql bin  目录
db_bin_dir=/alidata/server/mysql/bin

# Mysql 用户名
username=root
# Mysql 密码
password="19940921"
# Mysql host
host=localhost

# Mysql 数据库名字

files=(`ls "${db_data_dir}"`)
flag=0
for file in ${files[*]}
do
    test -d ${db_data_dir}/${file} -a ${file} = $2
    if [ $? -eq 0 ]
        then
            flag=1
            break
    fi  
done

if [ ${flag} -eq 0 ]
    then
        echo "$2 数据库不存在"
        exit
fi

${db_bin_dir}/mysqldump -u${root} -p${password} -h${host} $2 < $1
echo "$2 已经恢复" 


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值