ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

hj_docker容器mysql数据备份

2022-06-17 18:31:34  阅读:175  来源: 互联网

标签:... begin NAME 数据备份 hj sh FILE mysql docker


1 在某个目录下 建一个 .sh 脚本文件,内容可参照如下

# 定义变量
echo "begin backup mysql..." #打印信息
FILE_NAME=$(date "+%Y%m%d%H%M%S.sql") #导出文件名
FILE_PATH="/home/${FILE_NAME}" #导出路径 容器里面的
CONTAINER_NAME=mysql_8.0.27 #容器名称
ROOT_PASS=horus0530 #mysql root 密码
MYSQL_BACKUP_FOLDER=/horus/sql_backups/ #服务器目录,放置导出的sql文件
#执行备份,此处不要加-it,否则会报“the input device is not a TTY”错误(脚本后台运行没有可交互终端)
echo "begin exec in mysql..."
podman exec ${CONTAINER_NAME} bash -c "mysqldump -uroot -p${ROOT_PASS} -A > ${FILE_PATH}"
#复制备份文件
echo "begin copy mysql file..."
podman cp ${CONTAINER_NAME}:${FILE_PATH} $MYSQL_BACKUP_FOLDER
#删除docker内备份文件
echo "begin rm docker mysql file..."
podman exec ${CONTAINER_NAME} bash -c "rm ${FILE_PATH}"
#压缩文件
echo "begin tar mysql file..."
cd $MYSQL_BACKUP_FOLDER
tar -zcvf "${FILE_NAME}.tgz" $FILE_NAME
echo "begin rm mysql file..."
rm $FILE_NAME
#保留最新30个备份文件,其他删除
echo "begin ls rm mysql file..."
ls -lt | awk '{if(NR>31){print "rm "$9}}' | sh
echo "over..."

   直接执行此 .sh 脚本 可以导出数据.

2 建立服务器的定时任务 跑此脚本

  •  crontab -l 查看定时任务  crontab -e 编辑脚本  
  • # 三分钟执行一次 测试用例
    */3 * * * * /horus/sh/backupSql.sh
    
    # 一小时执行一次 没必要
    0 */1 * * * /horus/sh/backupSql.sh
    
    # 每天的凌晨两点执行一次 
    0 2 * * * /horus/sh/backupSql.sh
    
    # 每周五的凌晨三点执行一次
    0 3 * * 5 /horus/sh/backupSql.sh

    over

标签:...,begin,NAME,数据备份,hj,sh,FILE,mysql,docker
来源: https://www.cnblogs.com/hua-jian/p/16386383.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有