NutzSite

Java快速开发框架


docker mysql 备份

<p>在Linux创建文件 <code>vim backup.sh</code></p> <pre><code>#!/bin/bash #备份存储路径 BACKUP_DIR='/opt/docker-mysql/backups' #备份时间 BACK_TIME=`date +%Y%m%d%H%M%S` #文件名 BACKUP_FILE_NAME=${BACK_TIME}.sql.gz #数据库 MYSQL_DATABASE='investment_project_management' #用户名 MYSQL_USER='backup' #密码 MYSQL_PASSWORD='xQ5BWbej686CnBf' #km-ipm-mysql 是容器名称 echo 输出日志 echo "docker exec km-ipm-mysql sh -c "mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} | gzip &gt; ${BACKUP_DIR}/${BACKUP_FILE_NAME}" docker exec km-ipm-mysql sh -c "mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} | gzip &gt; ${BACKUP_DIR}/${BACKUP_FILE_NAME}"</code></pre> <p>超时自动删除 记录日志方式</p> <pre><code>#!/bin/bash #备份存储路径 Linux路径 非docker容器内路径 BACKUP_DIR='/opt/backups' #日志备份路径 LOG_DIR='/opt/log' #备份时间 BACK_TIME=`date +%Y%m%d%H%M%S` #文件名 BACKUP_FILE_NAME=${BACK_TIME}.sql.gz #需要备份的数据库,多个数据库用空格分开 MYSQL_DATABASE='investment_project_management' #用户名 MYSQL_USER='backup' #密码 MYSQL_PASSWORD='xQ5BWbej686CnBf' #日志记录头部 echo "备份时间为${BACK_TIME},备份数据库表 ${MYSQL_DATABASE} 开始" &gt;&gt; ${LOG_DIR}/log.log #正式备份数据库 for db in $MYSQL_DATABASE; do docker exec km-ipm-mysql sh -c "mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} ${db} | gzip &gt; ${BACKUP_DIR}/${BACKUP_FILE_NAME} 2&gt;&gt; ${LOG_DIR}/log.log"; #备份成功以下操作 if [ "$?" == 0 ];then cd $BACKUP_DIR #删除30天前备份,也就是只保存30天内的备份 find $BACKUP_DIR -name "*.sql.gz" -type f -mtime +30 -exec rm -rf {} \; &gt; /dev/null 2&gt;&amp;1 echo "数据库表 ${MYSQL_DATABASE} 备份成功!!" &gt;&gt; ${LOG_DIR}/log.log else #备份失败则进行以下操作 echo "数据库表 ${MYSQL_DATABASE} 备份失败!!" &gt;&gt; ${LOG_DIR}/log.log fi done </code></pre>

页面列表

ITEM_HTML