定时备份删除数据库sql
1.备份数据库
mkdir -p /home/mysql/mysql_bak/
vi mysql_bak.sh
#!/bin/bash
#Shell Command For Backup MySQL Database Everyday Automatically By Crontab
#time 2019-1-16
#name zhaojingen
USER=root
PASSWORD=123456
DATABASE=aaa
BACKUP_DIR=/home/mysql/mysql_bak/ #备份数据库文件的路径
LOGFILE=/home/mysql/mysql_bak/data_backup.log #备份数据库脚本的日志文件
DATE=`date +%Y%m%d-%H%M -d -3minute` #获取当前系统时间-3分钟
DUMPFILE=$DATE-aaa.sql #需要备份的数据库名称
ARCHIVE=$DUMPFILE-tar.gz #备份的数据库压缩后的名称
if [ ! -d $BACKUP_DIR ]; #判断备份路径是否存在,若不存在则创建该路径
then
mkdir -p "$BACKUP_DIR"
fi
echo -e "\n" >> $LOGFILE
echo "------------------------------------" >> $LOGFILE
echo "BACKUP DATE:$DATE">> $LOGFILE
echo "------------------------------------" >> $LOGFILE
cd $BACKUP_DIR #跳到备份路径下
/usr/bin/mysqldump -u$USER -p$PASSWORD $DATABASE > $DUMPFILE #使用mysqldump备份数据库
if [[ $? == 0 ]]; then
tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1 #判断是否备份成功,若备份成功,则压缩备份数据库,否则将错误日志写入日志文件中去。
echo "$ARCHIVE BACKUP SUCCESSFUL!" >> $LOGFILE
rm -f $DUMPFILE
else
echo “$ARCHIVE Backup Fail!” >> $LOGFILE
fi
(可同时备份多个数据库)
chmod +x mysql_bak.sh
2.清除七天以上的备份
cd /home/mysql/mysql_bak/
vi clean_bak.sh
#!/bin/bash
#time 2019-01-16
#name zhaojingen
BACKUPDIR="/home/mysql/mysql_bak/" #定义备份文件路径
KEEPTIME=7 #定义需要删除的文件距离当前的天数
DELFILE=`find $BACKUPDIR -type f -mtime +$KEEPTIME -exec ls {} \;` #找到天数大于7天的文件
for delfile in ${DELFILE} #循环删除满足天数大于七天的文件
do
rm -f $delfile
done
chmod +x clean_bak.sh
3.加入系统定时任务
vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# For details see man 4 crontabs # Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | | # * * * * * user-name command to be executed
01 00 * * * root /home/mysql/mysql_bak/mysql_bak.sh #定义每天凌晨0点01分执行备份数据库脚本
10 00 * * 0 root /home/mysql/mysql_bak/clean_bak.sh #定义每周日凌晨0点10分执行删除数据库备份文件
相关文章
- 又一数据库高危漏洞爆出,数据安全如何有效保障?
- 关于数据库时区,这么多奥秘你都知道么?
- mysql-linux定时备份mysql数据库
- windows上备份mysql数据库
- Java从入门到精通——数据库篇Mongo DB 导出,导入,备份
- ABAP锁、数据库锁
- 数据库备份还原
- MySQL连接数据库报时区错误:java.sql.SQLException: The server time zone value
- 历年双11实战经历者:我们是如何做数据库性能优化及运维-CloudDBA和天象
- 戴尔数据库加速:让用户体验“飞”起来
- Springboot数据库连接池的学习与了解
- SQLSERVER 设置自动备份数据库
- 简单的数据库备份语句--Oracle+SQLSERVER
- neo4j数据库迁移---------Neo4j数据库导入导出的方法
- 装饰者模式---使用装饰者模式实现带日志记录功能的数据库命令执行类
- 使用mariabackup备份MariaDB数据库
- 商业智能BI直连业务数据库做报表的延迟风险
- 《兔子的大厂面经合集》朋友面神策数据库,第五个问题不会,直接再见(1)
- 数据库备份,全备份、增量备份与恢复
- 【RAC】rac环境下的数据库备份与还原
- crontab自动备份MySQL数据库并删除5天前备份
- 一个响应式数据库框架SQLBrite,完美解决数据库和UI的同步更新!
- 一个备份MySQL数据库的简单Shell脚本