目的:容灾(怕在外打野家被偷了)
最终效果:
- 每天凌晨2:30备份数据库
- 删除7天前备份(Linux Shell)
#1.创建备份目录
mkdir /data/backup/db
2.创建脚本
vim /data/backup/mysql_db_backup.sh
#!bin/bash
#mysql配置信息
NOW=$(date +%Y%m%d-%H%M%S)
MYSQL_USER="账号"
MYSQL_PWD="密码"
MYSQL_HOST="localhost"
MYSQL_DUMP_DB="数据库名"
MYSQL_CONN="mysql -u$MYSQL_USER -p$MYSQL_PWD --host $MYSQL_HOST"
MYSQL_DUMP="mysqldump $MYSQL_CONN --databases $MYSQL_DUMP_DB"
#/data/backup/db/为存放备份数据的地址
BACKUP_DIR="/data/backup/db/$MYSQL_DUMP_DB"
#若不存在备份目录则创建
[ ! -d "${BACKUP_DIR}" ] && mkdir "${BACKUP_DIR}"
#备份数据库
${MYSQL_DUMP} | gzip > "${BACKUP_DIR}/${NOW}.sql.gz"
echo "BACKUP ${BACKUP_DIR}/${NOW}.sql.gz $?"
#删除7天前备份
find ${BACKUP_DIR} -ctime +7 -name "*.gz" -exec rm -rf {} \;
#编辑任务调度文本
crontab -e
#每天凌晨2:30定时调用备份脚本(刚才创建好的shell脚本)
30 2 * * * sh /data/backup/mysql_db_backup.sh
可以先进入shell文件目录,用./mysql_db_backup.sh命令测试是否备份成功
然后在备份目录中能看到备份的文件
-rw-r--r-- 1 root root 272121 Apr 11 15:17 20220411-151718.sql.gz