利用crontab定期备份博客数据库

crontab_2

话说我的博客也是运行在vps主机上的啊,哈哈

几年之前,辛辛苦苦写了很久的博客内容因为一次事故全部没有了,很是痛心,有了那次教训之后,意识到了数据的重要性,以前会定期的手动去数据库把数据导出,累了,写个脚本解决下吧,说到linux系统定时任务,就不得不说crontab啦,太复杂的不说,简简单单备份下数据库还不是分分钟的事情啊哈哈

[url href=https://mahongfei.com/1460.html]crontab介绍[/url]

好了,说正事,其实就是写个备份脚本,然后让这个脚本定期执行就可以了,思路非常简单,当然写起来更是简单哈哈

直接上代码,不罗嗦:

    1. #!/bin/bash
    1. ################################
    1. # 程序名称:mysql_backup.sh
    1. # 程序功能:定期备份mysql数据库
    1. # 参数信息: 
    1. # 创建信息:2018-01-25 by mhf
    1. # 修改信息:
    1. ################################
    1. startTime=`date  +%H:%M:%S`
    1. #设置mysql备份目录
    1. backup_dir=/data/backup
    1. echo $backup_dir
    1. cd $backup_dir
    1. #建立备份日期为名字的文件夹
    1. backup_time=`date +%Y%m%d`
    1. echo $backup_time
    1. rm -rf $backup_time
    1. mkdir $backup_time
    1. cd $backup_time
    1. #数据库服务器配置
    1. host='localhost'
    1. user='root'
    1. password='xxxxxxxxx'
    1. #设置数据保留多少天
    1. days=7
    1. for db in aaa bbb ccc ;do
    1.     #循环数据库进行备份
    1.     mysqldump -h$host -u$user -p$password $db |gzip >${backup_dir}/${backup_time}/${db}.backup.sql.gz
    1. done
    1. cd ..
    1. day=`date -d "$days days ago" +%Y%m%d`
    1. echo $day
    1. rm -rf $day
    1. #结束
    1. endTime=`date  +%H:%M:%S`
    1. sT=`date +%s -d$startTime`
    1. eT=`date +%s -d$endTime`
    1. let useTime=`expr $eT - $sT`
    1. echo "
    1. Run `basename $0` ok !
    1.         startTime = $startTime
    1.           endTime = $endTime
  1.           useTime = $useTime(s)!"

说明:for循环中的aaa,bbb和ccc是数据库的名字,因为我把每个数据库都被封了,所以写在了for循环里面

好了脚本写完了,接下来就是配置定时任务啦,需要配置crontab

假设上述文件位置为/data/backup/mysql_backup.sh

按照以下命令配置crontab

0 3 * * * /data/backup/mysql_backup.sh > /dev/null 2>&1 &

意思每天的半夜3点执行此脚本并且忽略日志输出。

/dev/null 2>&1 & 

作用是忽略日志输出,主要是因为我懒的删除日志,最好是有输出日志,以后出问题了方便查询嘛

编辑完了保存退出即可!

配置完毕之后,通过命令

crontab -l

查看crontab的配置情况。

可以看到编写的脚本已经在定时任务列表里面了。

over

mhf

我还没有学会写个人说明!

相关推荐

linux系统下面crontab简介

crond简介: crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务 …

linux系统awk命令详细教程

awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文 …

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。

微信扫一扫,分享到朋友圈

利用crontab定期备份博客数据库