当前位置:网站首页>linux MySQL数据定时dump
linux MySQL数据定时dump
2022-04-23 14:00:00 【白云碎里一蓑舟】
一、备份数据库脚本文件
#!/bin/sh
# 数据库账号信息
DB_USER="root"
DB_PWD="123456"
DB_HOST="192.168.110.195"
DB_PORT="3305"
# MYSQL所在目录
MYSQL_DIR="/usr/local/mysql"
# 备份文件存放目录
BAK_DIR="/data/backups"
# 时间格式化,如 20200902
DATE=`date +%Y%m%d`
# 备份脚本保存的天数
DEL_DAY=10
# 要备份的数据库,空格分隔
DATABASES=("sales_release")
# 创建日期目录
mkdir $BAK_DIR/$DATE
echo "-------------------$(date +%F_%T) start ---------------" >>${BAK_DIR}/aggrega
te_backup.log
for database in "${DATABASES[@]}"
do
# 执行备份命令
$MYSQL_DIR/bin/mysqldump --opt -u$DB_USER -p$DB_PWD -h$DB_HOST -P$DB_PORT ${database} > $BAK_DIR/$DATE/${database}.sql
done
echo "--- backup file created: $BAK_DIR/aggregate_backup_$DATE.tar.gz" >>${BAK_DIR}/aggregate_backup.log
# 将备份好的sql脚本压缩到aggregate_backup_yyyyMMdd.tar.gz
tar -czf $BAK_DIR/aggregate_backup_$DATE.tar.gz $BAK_DIR/$DATE
# 压缩后,删除压缩前的备份文件和目录
rm -f $BAK_DIR/$DATE/*
rmdir $BAK_DIR/$DATE
# 至此备份操作已完成,下面的脚本命令用于清理之前备份的旧文件,以释放磁盘空间
# 遍历备份目录下的压缩文件
LIST=$(ls ${
BAK_DIR}/aggregate_backup_*)
# 获取10天前的时间,用于作比较,早于该时间的文件将删除
SECONDS=$(date -d "$(date +%F) -${DEL_DAY} days" +%s) for index in ${LIST} do # 对文件名进行格式化,取命名末尾的时间,格式如 20200902 timeString=$(echo ${
index} | egrep -o "?[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]") if [ -n "$timeString" ]
then
indexDate=${timeString//./-}
indexSecond=$( date -d ${
indexDate} +%s )
# 与当天的时间做对比,把早于10天的备份文件删除
if [ $(( $SECONDS- $indexSecond )) -gt 0 ]
then
rm -f $index
echo "---- deleted old backup file : $index " >>${BAK_DIR}/aggregate_backup.log
fi
fi
done
echo "-------------------$(date +%F_%T) end ---------------" >>${BAK_DIR}/aggregate_backup.log
注意:如果是Windows文件直接传到Linux上需要转换格式
sed -i 's/\r$//' aggregateBak.sh
二、给脚本赋执行权限
chmod 777 aggregateBak.sh
三、 利用Linux系统的crontab定时任务,去实现固定时间自动执行脚本
crontab -e #编辑
#输入以下代码
00 03 * * * /data/mysql_aggregate/aggregateBak.sh#在 03:00 a.m 运行
:wq #保存退出
service crond restart #重启服务,如果是ubuntu系统,则是cron
备份是个好习惯,一个不会让你赔钱的习惯
版权声明
本文为[白云碎里一蓑舟]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_49513507/article/details/123580181
边栏推荐
- Quartus Prime硬件实验开发(DE2-115板)实验一CPU指令运算器设计
- BUG_me
- JS 力扣刷题 102. 二叉树的层序遍历
- JS force deduction brush question 103 Zigzag sequence traversal of binary tree
- 1256:献给阿尔吉侬的花束
- 淘宝发布宝贝提示“您的消保保证金额度不足,已启动到期保障”
- China creates vast research infrastructure to support ambitious climate goals
- Haruki Murakami -- Excerpt from "what do I talk about when I talk about running"
- leetcode--357. 统计各位数字都不同的数字个数
- Interesting talk about network protocol
猜你喜欢
crontab定时任务输出产生大量邮件耗尽文件系统inode问题处理
Quartus Prime硬件实验开发(DE2-115板)实验一CPU指令运算器设计
Special test 05 · double integral [Li Yanfang's whole class]
Express②(路由)
Decentralized Collaborative Learning Framework for Next POI Recommendation
elmo(BiLSTM-CRF+elmo)(Conll-2003 命名实体识别NER)
UML统一建模语言
【项目】小帽外卖(八)
美联储数字货币最新进展
JS brain burning interview question reward
随机推荐
自动化的艺术
零拷貝技術
Spark入门基本操作
Leetcode | 38 appearance array
[code analysis (7)] communication efficient learning of deep networks from decentralized data
Android 面试主题集合整理
2022年江西最新建筑八大员(质量员)模拟考试题库及答案解析
网站_收藏
L2-024 部落 (25 分)
SPC简介
Leetcode brush question 𞓜 13 Roman numeral to integer
Multithreading
读了一篇博客,重新理解闭包整理一下
json反序列化匿名数组/对象
freeCodeCamp----arithmetic_ Arranger exercise
Choreographer full resolution
2021年秋招,薪资排行NO
33 million IOPs, 39 microsecond delay, carbon footprint certification, who is serious?
Using Baidu Intelligent Cloud face detection interface to achieve photo quality detection
【项目】小帽外卖(八)