MySQL按日备份

经常我们要做一些数据库的备份,主要的备份有三种

第一种:实时备份,表现为主从备份

第二种:非实时的备份,表现为按日,按星期备份等

第三种:异地备份,表现为灾备,这种一般是银行,大机构使用。

今天我们来探讨下按日备份

我们首先编写一段这样的脚本:

mysqldump -uroot -p666666 safe > /var/backup/mysql/safe`date +%Y%m%d`.sql

这就是一行备份命令。然后咱们要设置一个触发器,触发这条命令执行,这里就用到crontab

# chmod -R 777 backup-mysql.sh
# crontab -e
#m h  dom mon dow   command
0 3 * * * /var/backup/backup-mysql.sh

解释下哈:这个backup-mysql.sh是刚刚我们编写的备份脚本,然后给了一个最高的777权限。
crontab -e就是咱们编写的一个时间触发参数:

时间的格式是

分 时 日 月 周

上面的例子是指定每天凌晨3点备份一次数据库

最后咱们再执行下重启crond服务。

# service crond restart

附:如果没有chmod -R授权的话,执行的时候会报Permission denied

[root@instance-kkvak9j5 mail]# cat root 
From [email protected]  Fri Mar 27 15:00:01 2020
Return-Path: <[email protected]>
X-Original-To: root
Delivered-To: [email protected]
Received: by instance-kkvak9j5.localdomain (Postfix, from userid 0)
        id 56852100BD9; Fri, 27 Mar 2020 15:00:01 +0800 (CST)
From: "(Cron Daemon)" <[email protected]>
To: [email protected]
Subject: Cron <root@instance-kkvak9j5> /var/backup/backup-mysql.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=8737>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <[email protected]>
Date: Fri, 27 Mar 2020 15:00:01 +0800 (CST)

/bin/sh: /var/backup/backup-mysql.sh: Permission denied

[root@instance-kkvak9j5 mail]# pwd
/var/spool/mail

所以一定要注意。

猜你喜欢

转载自blog.csdn.net/weixin_29003023/article/details/107404790