1. 编写sh脚本
#!/bin/bash # 1.备份目录 BACKUP=/home/nedo/data/backup/db # 当前时间 DATETIME=$(date +%Y-%m-%d_%H%M%S) echo $DATETIME # 数据库的地址 HOST=localhost # 数据库的用户名 DB_USER=root #数据库的密码 DB_PW=nd2022. #备份的数据库名 DATABASE=ry #创建备份目录 如果不存在就创建 [ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}" # 备份数据库 ,找到自己的mysqldump路径 /usr/local/mysql/bin/mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz # 将文件处理成 tar.gz cd ${BACKUP} tar -zcvf $DATETIME.tar.gz ${DATETIME} # 删除对应的备份目录 rm -rf ${BACKUP}/${DATETIME} # 删除五天前的备份文件 find ${BACKUP} -atime +5 -name "*.tar.gz" -exec rm -rf {} \; echo "备份数据库${DATABASE} 成功" |
2. 查找mysqldump路径
find / -name mysqldump -print
![](https://i-blog.csdnimg.cn/blog_migrate/fe3002d3f3ae0d4557e5a08a6359c053.png)
3. 编写定时任务
执行命令:crontab -e
每天下午两点半执行一次:
30 2 * * * cd /home/nedo/;sh mysql_db_backup.sh >>log.txt 2>&1 |
查看定时任务:crontab -l
![](https://i-blog.csdnimg.cn/blog_migrate/21d6acbed9b494fb377394495959802b.png)