dev怎么自动排版_笔记:Linux下实现每天自动备份数据库

土豪玩家都直接买的云数据库的服务,像我这种平民玩家也只好老老实实的写好脚本对数据库每天进行备份啦。

1 创建备份目录

$ cd /home
$ mkdir backup
$ cd backup
$ mkdir bks   #专门存放备份文件

注意:建议备份在空间充足的磁盘里,另外如果使用docker的话应该是备份在挂载的目录下。

2 创建备份脚本

$ vim backup.sh

脚本是这样的

#!/bin/bash
# a ShellScript for auto DB backup and delete old backup

backupdir=/home/backup/bks
time=`date +%Y%m%d%H%M%S`

mysqldump -uusername1 -ppassword1 database1 | gzip > $backupdir/database1_$time.sql.gz
mysqldump -uusername2 -ppassword2 database2 | gzip > $backupdir/database2_$time.sql.gz

find $backupdir -name "*.sql.gz" -type f -mtime +5 -exec rm {} ; > /dev/null 2>&1

解释一下脚本

name:自定义备份文件前缀标识。

-type f 表示查找普通类型的文件,f表示普通文件。

-mtime +5 按照文件的更改时间来查找文件,+5表示文件更改时间距现在5天以前;如果是 -mmin +5 表示文件更改时间距现在5分钟以前。

-exec rm {} ; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个,最后是一个分号。

/dev/null 2>&1 把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的& 表示让该命令在后台执行。

3 给脚本添加执行权限

$ chmod 777 ./backup.sh

4 添加任务计划(定时任务)

4.1 先检测一下有没有安装 crontab

$ crontab  #如果没有安装会提示这个命令不存在

没有安装的安装一下

$ apt-get update
$ apt-get install cron

4.2 添加任务

$ crontab -e

然后再最后一行添加

00 8 * * * /home/backup/backup.sh

c0b40ebcbe0aa2edc3d276b3f6da4219.png

4.3 启动crontab

$ service cron start

crontab基本命令

service cron status  #查看状态
service cron start   #启动
service cron restart #重启
service cron stop    #停止

参考

1.linux下如何实现mysql数据库每天定时自动备份 - 凌凌小博客 - CSDN博客

2.linux下如何实现mysql数据库每天自动备份定时备份 - tonfay的博客 - CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值