Linux脚本定时备份mysql数据库
Linux脚本定时备份mysql数据库
场景: 1.每天凌晨2:10备份数据库demo到/data/backup/db 2.备份开始和备份结束能给出相应的提示信息 3.备份后的文件要求以时间为文件名,并打包成.tar.gz的形式。比如2021-03-12——230201.tar.gz 4.在备份的同时,检查是否有10天前的数据库文件,如果有将其删除
前提:在mysql数据库中创建一个数据库,这里创建的是demo库,并且创建一个表,插入数据
1.创建脚本
vim db.sh
#!bin/bash #主机 HOST=localhost #数据库用户名 DB_USER=root #数据库密码 DB_PWD=root #备份数据库名 DATABASE=demo #创建备份的路径 #如果路径存在就使用,不存在就创建 [ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME" #执行mysql的备份数据库的指令 /opt/mysql/bin/mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz #打包备份的文件 cd $BACKUP tar -zcvf $DATETIME.tar.gz $DATETIME #删除临时目录 rm -rf $BACKUP/$DATETIME #删除10天前的备份文件 (注意{}左右要有空格,不然会报错) find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf { } ; echo "====备份文件成功======="
2.到备份文件路径中去查看
cd data/backup/db #解压 gunzip -zxvf2021_10_21_002922.tar.gz vim 2021_10_21_002922.sql
3.备份的文件数据
-- -- Dumping data for table `test` -- LOCK TABLES `test` WRITE; /*!40000 ALTER TABLE `test` DISABLE KEYS */; INSERT INTO `test` VALUES (1,dahaung,12); /*!40000 ALTER TABLE `test` ENABLE KEYS */; UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
4.创建任务调度
crontab -e
#每天凌晨2:10备份数据库demo到/data/backup/db 10 2 * * * /usr/sbin/db.sh
下一篇:
图书管理系统-罚款单解决方案