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

  • A+
所属分类:Shell 博客建设

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

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

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

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

直接上代码,不罗嗦:

  1. #!/bin/bash
  2. ################################
  3. # 程序名称:mysql_backup.sh
  4. # 程序功能:定期备份mysql数据库
  5. # 参数信息: 
  6. # 创建信息:2018-01-25 by mhf
  7. # 修改信息:
  8. ################################
  9. startTime=`date  +%H:%M:%S`
  10. #设置mysql备份目录
  11. backup_dir=/data/backup
  12. echo $backup_dir
  13. cd $backup_dir
  14. #建立备份日期为名字的文件夹
  15. backup_time=`date +%Y%m%d`
  16. echo $backup_time
  17. rm -rf $backup_time
  18. mkdir $backup_time
  19. cd $backup_time
  20. #数据库服务器配置
  21. host='localhost'
  22. user='root'
  23. password='xxxxxxxxx'
  24. #设置数据保留多少天
  25. days=7
  26. for db in aaa bbb ccc ;do
  27.     #循环数据库进行备份
  28.     mysqldump -h$host -u$user -p$password $db |gzip >${backup_dir}/${backup_time}/${db}.backup.sql.gz
  29. done
  30. cd ..
  31. day=`date -d "$days days ago" +%Y%m%d`
  32. echo $day
  33. rm -rf $day
  34. #结束
  35. endTime=`date  +%H:%M:%S`
  36. sT=`date +%s -d$startTime`
  37. eT=`date +%s -d$endTime`
  38. let useTime=`expr $eT - $sT`
  39. echo "
  40. Run `basename $0` ok !
  41.         startTime = $startTime
  42.           endTime = $endTime
  43.           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的配置情况。

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

  • QQ群二维码
  • 免费维皮恩账号赶紧来吧
  • weinxin
  • 微信公众号
  • 扫一扫关注"你不知道的iPhone技巧"
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: