【Shell 脚本】Mysql 定时备份

参考 使用shell脚本实现定时备份mysql数据库
本脚本增加了系统判断

#!/usr/bin/env bash
#mysql 备份,保留最近10天备份

#备份目录
backupDir=/Users/yangqi/backup

############# MySQL config ##############
host="127.0.0.1"
user="root"
pswd="123"
#要备份的数据库数组
databases=(vastarai)

#系统 os_name [Linux / Darwin(Mac OS)]
os_name=`uname -s`
#今天的日期 Ymd
today=`date +%Y%m%d`
#10天前的日期 根据系统区别获取
if [ "$os_name" == "Linux" ]; then
    timeTenDayAgo=`date +%Y%m%d --date='-10 day'`
elif [ "$os_name" == "Darwin" ]; then
    timeTenDayAgo=`date -v -10d +%Y%m%d`
fi

#开始备份
for database in ${databases[@]}
do
    echo "开始备份${database}"
    mysqldump -h${host} -u${user} -p${pswd} ${database} | gzip > ${backupDir}/${database}-${today}.sql.gz
    echo "成功备份${database} 到${backupDir}"
    if [ ! -f "${backupDir}/${database}-${timeTenDayAgo}.sql.gz" ]; then
        echo "10天前备份不存在,无需删除"
    else
        rm -f ${backupDir}/${database}-${timeTenDayAgo}.sql.gz
        echo "删除10天前备份 ${database}-${timeTenDayAgo}.sql.gz"
    fi
done

 

posted @ 2017-12-14 12:59  yangqi7  阅读(252)  评论(0编辑  收藏  举报