首先想法是写一个脚本,然后设置为定时执行
1.脚本:
vim /root/mysql_backup.sh
#!/bin/bash
backupdir=/data/mysql_backup
time=` date +%Y%m%d%H`
mysqldump -uroot -p'数据库密码' 数据库名称 | gzip > $backupdir/db_$time.sql.gz
find $backupdir -name "db_*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
写完后按ZZ保存退出
这是单数据库备份,我公司服务器暂时有两个数据库需要备份,但是不能直接在数据库名称后继续添加数据库名称,例如
mysqldump -uroot -p'password' dba dbb | gzip > $backupdir/db_$time.sql.gz
上行代码的意思为:备份dba数据库下的dbb表 ,而不是备份dba数据库和dbb数据库
正确的写法为在数据库名称前加上 --databases
2.更改脚本的权限(增加可执行权限)
chmod +x /root/mysql_backup.sh
3.加入定时
crontab -e
59 23 * * * /root/mysql_backup.sh
每天晚上23:59执行
参考:https://www.cnblogs.com/wanqieddy/archive/2011/06/09/2076785.html