定时脚本备份服务器Mysql数据库表_mysql 备份表到服务器-程序员宅基地

技术标签: shell  linux  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.设置想要执行脚本的时间
这边是每天凌晨一点进行备份
在这里插入图片描述

备份文件

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40922616/article/details/113706414

智能推荐

RuntimeError: “addmm_impl_cpu_“ not implemented for ‘Half‘_runtimeerror: "addmm_impl_cpu_" not implemented fo-程序员宅基地

文章浏览阅读2.6k次,点赞12次,收藏12次。将model.half() 改成 model.float()使用CPU进行推理时,遇到。_runtimeerror: "addmm_impl_cpu_" not implemented for 'half

九大【软件测试 自动化测试】企业级项目,(涵盖微信公众号 外卖平台 bbs论坛 企业加密)接口项目-程序员宅基地

文章浏览阅读444次,点赞17次,收藏9次。接口测试项目实战所获:精通接口测试流程,接口测试理论基础,接口测试用例设计,精通HTTP协议以及Dubbo协议,精通使用Postman,Jmeter,ApiFox执行接口测试,包括接口关联,接口鉴权,接口加密以及接口签名等,精通Postman+Newman+Jenkins和meter+ Ant+Jenkins以及ApiFox+Cli+Jenkins实现接口自动化测试持续集成等。数据化运营管理升级,提升了竞争力。接口测试顶目实战:微信公众平台接口项目,外卖平台接口项目,BBS论坛接口项目,企业加密接口项目。

java切面方法没有返回值_AOP高级用法——获取方法的参数和返回值-程序员宅基地

文章浏览阅读3k次。我们平时在使用springAop的时候,经常是将某一个方法定义为一个切入点,用来做前置,后置或环绕增强,但如果想得到切入点方法的参数,以及它的返回值就需要做一些特定的配置。普通的切面如下:@Configuration@Aspectpublic class UserInfoAspect {@Pointcut("execution(* com.*.test(*))")public void test(..._java方法添加切面后返回不了数据

Tensorflow入门--------计算卷积后的特征图尺寸_三维卷积后的尺寸怎么计算-程序员宅基地

文章浏览阅读2w次,点赞12次,收藏56次。 在卷积神经网络设计网型的时候,需要对卷积核和池化层进行参数设置。有三个重要的参数,首先是卷积核的大小,其次是设置步长(padding)的大小,最后是是否采用padding。这几个因素直接影响了卷积、池化后的特征图的大小,对于网络形状的设计非常重要的参数。本博客将针对这三个参数进行解释,并且利用tensorflow进行结论的实验。一、卷积核 卷积核这个东西比较好理解,就是卷积..._三维卷积后的尺寸怎么计算

线程的基础-程序员宅基地

文章浏览阅读944次,点赞25次,收藏24次。线程基础

【HLS学习 ug871详细手动翻译分析及实现】简介 + 第一章 Lab1 搭建平台实现一个简单的HLS流程 创建你的第一个HLS IP核-程序员宅基地

文章浏览阅读2.3k次,点赞7次,收藏21次。HLS的指导教程手册是ug871,本篇是该文档的笔记。相当于手动翻译了一下ug,然后记上了一些自己的学习感悟。这边采用的2015年版本的ug而且它们也的确就这一版这个是很权威的 hls 的教学。还有一个是ug902 更偏理论一些,这一册更偏向实践,教你如何去使用hls这个工具。并且在上面有很多的Lab。我们先看看目录Chapter 1 : 教程综述Chapter 2:高层次综合介绍Chapter 3:C代码的验证Chapter 4:接口综合Chapter 5:任意的精度类型我们先_ug871

随便推点

MySQL性能优化的参数简介-程序员宅基地

文章浏览阅读55次。 MySQL性能优化的参数简介公司网站访问量越来越大,MySQL自然成为瓶颈,因此最近我一直在研究 MySQL 的优化,第一步自然想到的是 MySQL 系统参数的优化,作为一个访问量很大的网站(日20万人次以上)的数据库系统,不可能指望 MySQL 默认的系统参数能够让 MySQL运行得非常顺畅。在Apache, PHP, MySQL的体系架构中,MySQL对于性能的影响最大,...

Docker安装Mysql-程序员宅基地

文章浏览阅读763次,点赞12次,收藏18次。本人面试腾讯,阿里,百度等企业总结下来的面试经历,都是真实的,分享给大家!

Mac - eclipse中缺少project facets解决办法-程序员宅基地

文章浏览阅读855次。Mac - eclipse中缺少project facets解决办法在2021新版的eclipse中,缺少Project Facets 选项,需要我们手动进行相关插件的安装解决方法1.在Help->Install New Software中进行插件的查询安装2.新增插件安装来源,可通过add进行添加,也可在Work with栏中直接填写插件来源url - http://download.eclipse.org/releases/oxygen然后进行插件查询,并安装插件安装完成后,就_project facets

探索SAR-Synthetic Aperture Radar:新一代遥感图像处理框架-程序员宅基地

文章浏览阅读250次,点赞4次,收藏7次。探索SAR-Synthetic Aperture Radar:新一代遥感图像处理框架项目地址:https://gitcode.com/denkywu/SAR-Synthetic-Aperture-Radar项目简介在GitCode上,我们发现了一个名为"SAR-Synthetic-Aperture-Radar"的开源项目,它是一个专门用于合成孔径雷达(Synthetic ...

Unity流水账4:动画_unity sprite skin-程序员宅基地

文章浏览阅读2.6k次,点赞5次,收藏8次。Animation_unity sprite skin

UG NX二次开发(C#)-建模-拔模功能_ug拔模分析作用-程序员宅基地

文章浏览阅读2.1k次。概念拔模通常用于对模型、部件、模具或冲模的竖直面添加斜度,以便借助拔模面将部件或模型与其模具或冲模分开。拔模,铸造时为了从砂中取出木模而不破坏砂型,往往零件毛胚设计带有上大下小的锥度,叫拔模斜度。拔模斜度有三种形式:增加厚度法,加减厚度法,减小厚度法。拔模是对模具或铸件的面做锥度调整。一个用于成型或铸造的零件必须被正确设计和适当拔模,以便取出模具。拔模角被应用在一个扩展分型线相反的方向。拔模就是为了保证模具在生产产品的过程中产品能顺利脱模,我们设计模具的时候有时就没有设置拔模度,而是用我们手工抛光时候_ug拔模分析作用