经常我们要做一些数据库的备份,主要的备份有三种
第一种:实时备份,表现为主从备份
第二种:非实时的备份,表现为按日,按星期备份等
第三种:异地备份,表现为灾备,这种一般是银行,大机构使用。
今天我们来探讨下按日备份
我们首先编写一段这样的脚本:
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 root@instance-kkvak9j5.localdomain Fri Mar 27 15:00:01 2020
Return-Path: <root@instance-kkvak9j5.localdomain>
X-Original-To: root
Delivered-To: root@instance-kkvak9j5.localdomain
Received: by instance-kkvak9j5.localdomain (Postfix, from userid 0)
id 56852100BD9; Fri, 27 Mar 2020 15:00:01 +0800 (CST)
From: "(Cron Daemon)" <root@instance-kkvak9j5.localdomain>
To: root@instance-kkvak9j5.localdomain
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: <20200327070001.56852100BD9@instance-kkvak9j5.localdomain>
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
所以一定要注意。
网友评论