Linux下自动备份MySQL数据库
1、查看磁盘空间,建立备份目录
[root@iZhp3itp0vzpy7u91aob6gZ DB_BACK]# df -h
[root@iZhp3itp0vzpy7u91aob6gZ /]# mkdir /DB_BACK
2、在备份目录下复制以下内容建立shell文件
[root@iZhp3itp0vzpy7u91aob6gZ /]# vim /DB_BACK/mysql_data_back.sh
复制以下代码内容到mysql_data_back.sh,按照实际mysql配置进行各项修改。
#!/bin/bash
echo '###############################'
echo '#########自动备份数据库########'
echo '###############################'
DATE=$(date +%Y%m%d%H%M%S)
USERNAME=root
PASSWORD=root
PORT=3306
DB=cloud_flower
DIR=/DB_BACK
echo '获取系统日期' $DATE
echo '开始备份。。。' $(date "+%Y-%m-%d %H:%M:%S")
/usr/bin/mysqldump --socket=/usr/local/mysql/tmp/mysql.sock -u$USERNAME -p$PASSWORD -P$PORT $DB | gzip > /DB_BACK/XXX_$DATE.sql.gz
#保持最新30天的备份
find /DB_BACK/ -mtime +30 -name "*.sql.gz" -exec rm -rf {} \;
echo '备份完成。。。' $(date "+%Y-%m-%d %H:%M:%S")
3、配置Linux计划任务
在CentOS 7中,可以使用crontab来创建和管理计划任务。要使用crontab命令。
[root@iZhp3itp0vzpy7u91aob6gZ /]# crontab -e
其中,* * * * 表示任务执行的时间规则,每个星号()代表一个时间字段,分别表示分钟、小时、日、月、星期几。可以使用具体的数值或通配符来设置时间。例如,30 8 * * *表示每天上午8点30分执行任务。
图例上表示的是每24小时执行一次。