精华内容
下载资源
问答
  • shell脚本备份数据库
    2019-09-26 10:40:26

    使用crontab 定时备份数据库

    1. 编辑crontab 规则,定时执行脚本

    2. my.cnf 文件中加

     [mysqldump]

     user=root

     password=密码

    3.编写shell脚本

    mysqldump 数据库名 > /home/dbbackup/数据库名_`date +%Y-%m-%d_%H%M%S`.sql
    cd  /home/dbbackup/
    # 删除5天以前的备份 rm -rf `find . -name '*.sql' -mtime +5`

     

     执行脚本可能报错,文件打开的连接太多。此时需要修改my.cnf中配置,具体配置请参考其他博文。

     

    转载于:https://www.cnblogs.com/BluePegasus/p/10335420.html

    更多相关内容
  • shell脚本备份数据库

    2022-02-23 10:52:33
    shell脚本自动备份数据库

    编写shell脚本库备份数据库

    具体要求如下:

    1. 每天凌晨 2:30 备份数据库 mysql 到 /data/backup/db
    2. 备份开始和备份结束都有对应的提示语
    3. 备份后的文件以时间为文件名,并打包成 .tar.gz 的形式。eg:2022-01-01_080808.tar.gz
    4. 在备份的同时,检查是否有超过15天前的备份数据库文件,如果有就将其删除

    脚本如下:

    #!/bin/bash
    
    #备份路径
    BACKUP=/data/backup/db
    
    #显示当前时间
    DATATIME=$(date "+%Y-%m-%d_%H%M%S")
    
    #数据库地址
    HOST=localhost
    
    #数据库用户名
    DB_USER=root
    
    #数据库密码
    DB_PW=123qwe..
    
    #备份的数据库名
    DATABASE=db_shell
    
    #开始备份数据库提示语
    echo "开始备份数据库${DATABASE}"
    
    #创建备份目录,如果不存在,则新建目录
    [ ! -d ${BACKUP}/${DATATIME} ] && mkdir -p "${BACKUP}/${DATATIME}"
    
    #备份数据库
    mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST}  --databases ${DATABASE} | gzip > ${BACKUP}/${DATATIME}/$DATATIME.sql.gz
    
    #将文件处理成  tar.gz 
    cd ${BACKUP}
    tar -zcvf $DATATIME.tar.gz ${DATATIME}
    
    #删除已备份的目录
    rm -rf  ${BACKUP}/${DATATIME}
    
    #删除10天前的备份文件
    find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;
    
    #结束备份数据库提示语
    echo "数据库${DATABASE}备份成功!"
    

    定时任务如下:

    [root@Rocky shell]# crontab -l
    30 2  * * *   /shell/mysql_db.backup.sh
    

    执行结果如下:

    [root@Rocky shell]# ./mysql_db.backup.sh_0222 
    开始备份数据库db_shell
    mysqldump: [Warning] Using a password on the command line interface can be insecure.
    2022-02-23_105956/
    2022-02-23_105956/2022-02-23_105956.sql.gz
    数据库db_shell备份成功!
    
    [root@Rocky db]# ll
    总用量 12
    -rw-r--r--. 1 root root 1021 2月  22 16:59 2022-02-22_165934.tar.gz
    -rw-r--r--. 1 root root 1018 2月  22 17:01 2022-02-22_170115.tar.gz
    -rw-r--r--. 1 root root 1021 2月  23 10:59 2022-02-23_105956.tar.gz
    

    解压查看压缩包sql内容:
    在这里插入图片描述

    展开全文
  • DBLIST="备份数据库名,随便取" BACKUPDIR=/sdb/data/mysql //备份文件存放路径,如果没有就自动创建 NUMDAYS=30 FINDCMD="find" MYSQLCMD="mysql" MyUSER="root"//数据库用户名 MyPASS="123456"//密码 ...

    创建cmysql.sh 文件
    输入以下内容

    #!/bin/bash
    DBLIST="备份的数据库名(数据库得创建相对应的数据库)"
     
    BACKUPDIR=/sdb/data/mysql //备份文件存放路径,如果没有就自动创建
     
    NUMDAYS=30
     
    FINDCMD="find"
    MYSQLCMD="mysql"
    MyUSER="root"//数据库用户名
    MyPASS="123456"//密码     
    MyHOST="localhost"       
    DUMPCMD="mysqldump -u$MyUSER -h $MyHOST -p$MyPASS --lock-tables --databases "
    GZIPCMD="gzip"
     
    BACKUPDATE=`date +%Y%m%d_%H%M`
     
    function USAGE() {
    cat << EOF
    usage: $0 options
     
    This script backs up a list of MySQL databases.
     
    OPTIONS:
      -H Show this message
      -a Backup all databases
      -l Databases to backup (space seperated)
      -n Number of days to keep backups
    EOF
    }
    
    while getopts "hal:n:" opt; do
      case $opt in
        a)
          DBLIST=""
          ;;
        h)
          USAGE
          exit 1
          ;;
        l)
          DBLIST="$OPTARG"
          ;;
        n)
          NUMDAYS=$OPTARG
          ;;
        \?)
          USAGE
          exit
          ;;
        :)
          echo "Option -$OPTARG requires an argument." >&2
          exit 1
          ;;
      esac
    done
     
    function ERROR() {
      echo && echo "[error] $@"
      exit 1
    }
     
    function NOTICE() {
      echo && echo "[notice] $@"
    }
     
    function RUNCMD() {
      echo $@
      eval $@
    }
     
    if [ ! -n "$DBLIST" ]; then
      DBLIST=`$MYSQLCMD -N -s -e "show databases" | grep -viE '(information_schema|performance_schema|mysql|test)'`
     
      if [ ! -n "$DBLIST" ]; then
        ERROR "Invalid database list"
      fi
    fi
     
    if [ ! -n "$BACKUPDIR" ]; then
      ERROR "Invalid backup directory"
    fi
     
    if [[ ! $NUMDAYS =~ ^[0-9]+$ ]]; then
      ERROR "Invalid number of days: $NUMDAYS"
    elif [ "$NUMDAYS" -eq "0" ]; then
      ERROR "Number of days must be greater than zero"
    fi
     
    umask 077
     
    RUNCMD mkdir -p -v $BACKUPDIR
     
    if [ ! -d $BACKUPDIR ]; then
      ERROR "Invalid directory: $BACKUPDIR"
    fi
     
    NOTICE "Dumping MySQL databases..."
    RC=0
     
    for database in $DBLIST; do
      NOTICE "Dumping $database..."
      RUNCMD "$DUMPCMD $database | $GZIPCMD > $BACKUPDIR/$BACKUPDATE.sql.gz"
     
      RC=$?
      if [ $RC -gt 0 ]; then
        continue;
      fi
    done
     
    if [ $RC -gt 0 ]; then
      ERROR "MySQLDump failed!"
    else
      NOTICE "Removing dumps older than $NUMDAYS days..."
      RUNCMD "$FINDCMD $BACKUPDIR -name \"*.sql.gz\" -type f -mtime +$NUMDAYS -print0 | xargs -0 rm -fv"
     
      NOTICE "Listing backup directory contents..."
      RUNCMD ls -la $BACKUPDIR
     
      NOTICE "MySQLDump is complete!"
    fi
    

    给与权限

    chmod u+x cmysql.sh
    

    运行脚本

    ./cmysql.sh
    

    成功之后会在你配置的路径生成以时间为名的备份文件

    展开全文
  • linux系统通过shell脚本备份mysql数据库,并通过定时任务的配置,每天在设定的时间内执行备份计划
  • shell脚本实现数据库备份

    千次阅读 2022-04-09 22:40:37
    ' fi 把shell脚本上传到数据库服务器上的 /root/ 下,待会添加定时任务会用到 开启shell定时服务 service status crontab //查看cron服务是否运行 cron服务 相关命令 /sbin/service crond start //启动服务 /sbin/...
  • shell脚本可配置备份oracle数据库,完全可配置,使用方便。
  • 基于Xtrabackup的MySQL数据库备份Shell脚本
  • linux服务器上,自己做所有数据库备份脚本方法,先打包在保存
  • linux环境中通过shell脚本备份mysql数据库shell脚本执行脚本注意点 shell脚本 #!/bin/bash #登陆数据库用户名 DB_USER="root" #登陆数据库密码 DB_PASS="123456" #数据库所在服务器ip地址 DB_HOST="10.30.89.141...
  • 防止误删服务器数据库 ,使用Shell脚本备份数据库: ### 1、需求分析: 1)每天凌晨2:10备份数据库atguiguDB到/data/backup/db 2)备份开始和备份结束能够给出相应的提示信息 3)备份后的文件要求以备份时间为...
  • 公司用到的MySQL数据库,经常有同事通过一顿骚操作把一些关键的配置数据误删,每次恢复都要花上不少时间,于是写了个shell脚本,结合corntab每天凌晨备份数据库,并保留7天。 同样的备份脚本也可用于生产环境MySQL...
  • 实验:编写shell备份数据库脚本1.创建脚本文件 2.编写代码 3.赋予执行权限 4.运行脚本 警告错误扩展: 注意:需要的话加到进入目录之前即可 后面会更新关于shell详细的一些命令和语句...
  • 前段时间由于在工作中有同学由于误操作,导致把生产环境的基础信息表删除了,为防止此类问题,决定写一个定时备份基础表的脚本,也正好可以巩固一下Linux及shell基础。备份规则为:当天每小时备份一次,一天前保留0...
  • 以前公司用的一个网上找的MySQL自动备份到FTP的Shell脚本,一直用着不错。但是问题就是随着备份文件的越来越多,不得不定期清理FTP上的老备份文件,十分的不便。 实际上MySQL备份无需保留太长时间的,如果能有自动...
  • Springboot Java启动调用Shell脚本实现MySQL数据库备份编写Java启动脚本方法编写导出MySQL数据的Shell脚本问题总结 编写Java启动脚本方法 import org.springframework.web.bind.annotation.RequestMapping; import ...
  • 可以通过修改配置直接备份mysql中的所有数据库数据
  • 前言 这是一个基于shell编写能定期对数据库进行备份的bash脚本,在系统实际运行中,...新建数据库备份文件保存的目录,然后再新建一个目录用来存放shell脚本文件,这里我选择在home目录下新建一个shcode作为我存放s...
  • 基于xtrabackup的MySQL数据库备份及还原Shell脚本
  • – 定时备份PG数据库 [root@localhost ~]# vim dump.sh #!/bin/bash #这里可以定义你的库名 database1=database1 database2=database2 #这里可以定义你的备份文件的路径以及格式 DirPath1=/opt/bak1/ DirPath2=/opt...
  • 编写Shell脚本定时备份数据库

    千次阅读 2019-05-02 18:13:47
    1.每天凌晨2点10分备份数据库atguiguDB到/data/backup/db 2.备份开始和备份结束能够给出相应的提示信息 3.备份后的文件以时间命名,并打包成.tar.gz形式,如2019-05-01_110101.tar.gz 4.在备份的同事,检查是否有10...
  • shell定时备份数据库

    千次阅读 2022-04-10 21:55:03
    shell定时备份
  • 巡检发现备份数据库没有数据 我以为是脚本的问题,我手动执行后是有数据的。 以上分析就不是脚本的问题,问题出在crontab 。经过一番研究测试后,在你的脚本前面加一行source /etc/profile 因为cront进程不会...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,635
精华内容 18,254
关键字:

shell脚本备份数据库