mysqldump --tab 本地备份

本文介绍了一款用于MySQL数据库备份的Shell脚本,该脚本能够实现自动化备份过程,包括数据库导出、日志记录、文件压缩等功能,并确保备份文件的安全性和完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.#!/bin/bash
LOG_START_TIME=`date +"%Y-%m-%d-%H-%M-%S"`
BACKUP_DIR=/data/sqlback
LOG_DIR=/root/tasks/backlog
BACKUP_LOG="$LOG_DIR/${LOG_START_TIME}.log"
BKDBF="$BACKUP_DIR/dblist.txt"
TIMEFILE1="$BACKUP_DIR/time1.txt"
TIMEFILE2="$BACKUP_DIR/time2.txt"
USER=root
function write_gziplog()
{
  log_time=`date +"%Y-%m-%d-%H-%M-%S"`
  backup_file_name=$2
  err_msg="$log_time ERROR GZIP in backup MySQL_Table($backup_file_name)"
  suc_msg="$log_time SUCCESS GZIP in backup MySQL($backup_file_name)"
  if [ $1 -eq 0 ]; then
     echo $suc_msg
     echo $suc_msg >> $BACKUP_LOG
  else
     echo $err_msg
     echo $err_msg >> $BACKUP_LOG
  fi
}
function write_dumplog()
{
  log_time=`date +"%Y-%m-%d-%H-%M-%S"`
  backup_file_name=$2
  err_msg="$log_time ERROR DUMP in backup MySQL_Table($backup_file_name)"
  suc_msg="$log_time SUCCESS DUMP in backup MySQL($backup_file_name)"
  if [ $1 -eq 0 ]; then
     echo $suc_msg
     echo $suc_msg >> $BACKUP_LOG
  else
     echo $err_msg
     echo $err_msg >> $BACKUP_LOG
  fi
}
function backup_file()
{
  mkdir "$BACKUP_DIR/$1"
  chown mysql.mysql "$BACKUP_DIR/$1"
  mysqldump -u $USER --tab="$BACKUP_DIR/$1" $1 >> "$BACKUP_DIR/mysqldump.log" 2>&1
  write_dumplog $? $1
  gzip "$BACKUP_DIR/$1"/*
  write_gziplog $? $1
}
function create_log_file()
{
   if [ ! -d $LOG_DIR ];then
      mkdir $LOG_DIR
      chown mysql.mysql $LOG_DIR
   fi
   if [ ! -d $BACKUP_DIR ];then
       mkdir $BACKUP_DIR
       chown mysql.mysql $BACKUP_DIR
   fi
   cd $BACKUP_DIR
   rm -rf *
   echo `date +%s` >>$TIMEFILE1
   touch $BACKUP_LOG
   mysql -e 'show databases' -u $USER|grep -v Database|grep -v information_schema >$BKDBF
   
}
clear
echo "Backup Process Begins"
create_log_file
for file in `cat $BKDBF`
do 
  backup_file $file
done
echo `du -csh $BACKUP_DIR` >> $BACKUP_LOG
echo "Backup Process Ends"
echo `date +%s` >>$TIMEFILE2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值