定时脚本备份服务器Mysql数据库表

我们平时的数据库为了避免误操作或者在迭代更新的时候都会对数据库进行备份,那么这边使用linux服务器自带的crontab定时脚本+linux shell脚本对我们博客的数据库进行备份。

分享两个网站一个是crontab教程、一个是根据表达式推算执行时间。

crontab 命令教程:https://www.runoob.com/linux/linux-comm-crontab.html

crontab 执行时间计算工具:https://tool.lu/crontab/


编写脚本

1.在服务器随便找个位置创建个文件夹,我创建文件夹/opt/scripts,在里面创建两个shell脚本(log_function.sh、mysql_backup.sh),创建/opt/backup,这个文件夹用来保存备份的sql文件。
在这里插入图片描述

2.mysql_backup.sh这个是数据库的备份脚本

  • 先判断脚本是否存在
  • 执行备份操作
  • 删除过期的sql文件
  • 确认文件大小即备份成功与否
#! /bin/bash
# Copyright by endwas
# date 2021-02-06

backup_path="/opt/backup"
user="root"
passwd="123456"

# 数据库名字
dbname="myblog"
host="localhost"
today=`date +'%Y%m%d-%H%M%S'`
sqlname=$dbname$today.sql

# 确认log脚本是否存在
if [ -e /opt/scripts/log_function.sh ]
then
source /opt/scripts/log_function.sh
else
echo -e "\033[41;37m /opt/scripts/log_function.sh is not exist. \033[0m"
exit 1
fi

# 数据库备份指令
backup(){
    log_correct "开始执行备份脚本。删除14天过期备份"
    mysqldump -h$host -u$user -p$passwd $dbname > $backup_path/$sqlname

}

# 删除过期sql文件
delete(){
    find /opt/backup -mtime +14 -type f -name '*.sql' -exec rm -f {} \;
}


size(){
    cd /opt/backup
	# 查询sql备份文件大小
    dd=`du -sh $sqlname`
    if [ -s ./$sqlname ] ;

    then
        log_correct "myblog备份正常"
        log_correct $dd
    else
        log_error "myblog备份失败"
    fi

}
backup
delete
size

  • \033…这些是输出日志颜色代码,可以忽略

3.log_function.sh这个是日志脚本,被mysql_backup.sh导入用于执行输出日志在/opt/scripts

#! /bin/bash
function log_correct(){
    DATE=`date +'%Y%m%d-%H%M%S'`
    USER=$(whoami)
    echo "${DATE} ${USER} execute $0 [INFO] $@" >>/opt/scripts/log_info.log



}


function log_error(){
    DATE=`date +'%Y%m%d-%H%M%S'`
    USER=$(whoami)
    echo "${DATE} ${USER} execute $0 [INFO] $@" >>/opt/scripts/log_error.log



}



function fn_log (){
if [ $? -eq 0 ]
then
log_correct " $@ successed! "
echo -e "\033[32m $@ sucessed. \033[0m"
else
log_error "$@ failed"
echo -e "\033[41;37m $@ failed! \033[0m"
exit
fi
}

设置定时脚本任务

1.输入crontab -e进入定时脚本编辑器
2.如果没有设置编辑器模式,提示你选择,推荐第三种和vim类似。
在这里插入图片描述

3.设置想要执行脚本的时间
这边是每天凌晨一点进行备份
在这里插入图片描述

备份文件

在这里插入图片描述
这样就会在每天凌晨一点进行备份了,第一条为测试所以时间不准确。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值