精华内容
下载资源
问答
  • linux备份数据库脚本
    2021-03-03 16:37:00

    在liunux中我们先定义好一个备份mysql的Shell脚本,然后再通过linux中的Cron可以定时执行该脚本,备份会自动完成,下面我来分享一下我的mysql备份过程,

    Shell脚本是我们写不同类型命令的一种脚本,这些命令在这一个文件中就可以执行。我们也可以逐

    一敲入命令手动执行。如果我们要使用shell脚本就必须在一开始把这些命令写到一个文本文件中,以后

    就可以随意反复运行这些命令了。

    假定你已经知道shell scripting、 mysqldump和crontab。首先给出完整的脚本,后面会对该脚

    本做说明。

    适用操作系统:任何Linux或UNIX。

    1.创建脚本

    该Shell脚本可以自动备份数据库。只要复制粘贴本脚本到文本编辑器中,输入数据库用户名、密

    码以及数据库名即可。这里我们备份数据库使用的是mysqldump 命令。后面会对每行脚本命令进行说明

    (1)在你想要放置备份文件的目录下创建两个目录"backup"和"oldbackup",这里使用的是根目录代码如下复制代码

    1 #mkdir /backup

    2 #mkdir /oldbackup

    (2)创建并编辑文件"backup.sh"代码如下复制代码

    1 #!bin/bash

    2 cd /backup

    3 echo "You are In Backup Directory"

    4 mv backup* /oldbackup

    5 echo "Old Databases are Moved to oldbackup folder"

    6 Now=$(date +"%d-%m-%Y--%H:%M:%S")

    7 File=backup-$Now.sql

    8 mysqldump –u user-name –p 'password' database-name > $File

    9 echo "Your Database Backup Successfully Completed"

    (3)设置 backup.sh 脚本文件的可执行许可代码如下复制代码1 # chmod +x /backup/backup.sh

    (4)脚本执行

    1 #./backup.sh

    脚本运行结束后会得到以下输出:代码如下复制代码

    1 root@Server1:/download#./backup.sh

    2 You areinDownload Directory

    3 Old Backup DatabaseisMoved to oldbackup folder

    4 database backup successful completed

    5 root@Server1:/download#

    注:首次执行该脚本会有一个"no such file"的提示信息,这是由于旧备份文件还不存在,linux定期备份MySQL数据库的Shell脚本linux操作系统》(https://www.unjs.com)。只要

    再次执行该脚本就没有问题了,这个问题已经不存在了。

    2.脚本说明

    在第8行命令中,在mysqldump命令后要输入自己的数据库用户名、密码及数据库名。

    执行该脚本,首先会进入 /backup 目录(要与自己创建的目录保持一致),然后该脚本会把原有

    的旧数据库备份移动到 /oldbackup 文件夹中,接着根据系统的日期及时间生成一个文件名,在最后

    mysqldump 命令会生成一个".sql"格式的数据库备份文件。

    3.使用cron制定备份计划

    使用Cron可以定时执行该脚本,备份会自动完成。使用 crontab 命令编辑cron 执行的计划任务

    。代码如下复制代码

    1 #crontab –e

    在编辑器中输入一下代码,保存退出即可:代码如下复制代码

    1 013* * * * /backup/backup.sh

    本任务表示的是在每天下午1点钟把数据库备份到指定的文件夹(具体备份周期可根据自己的实际

    情况设定)。有关cron任务设置的详细内容可以查阅crontab手册。

    到这里一个定时自动备份mysql的功能就得以实现,为保证数据库的安全性,李坏建议大家都养成

    备份数据库的习惯。

    更多相关内容
  • linux定时备份数据库脚本

    创建脚本

    • 创建脚本 (意思在文件中有备注)
    vim dbName.sh 
    
    • vim 使用
      i 插入
      : 输入命令
    #!/bin/bash
     
    #备份目录
    BACKUP=/home/mysqlBackup/db_name
    #获取当前时间
    DATATIME=$(date +'%Y-%m-%d_%H%M%S')
    #打印时间
    echo $DATATIME
    #数据库地址
    HOST=localhost
    #数据库用户名
    DB_USER=root
    #数据库密码
    DB_PW=123456
    #备份数据库名
    DATABASE=db_name
    
    #创建备份目录,如果不存在就创建
    [ ! -d "${BACKUP}/${DATATIME}/${DATATIME}" ] && mkdir -p "${BACKUP}/${DATATIME}"
    
    #备份数据库
    mysqldump -u${DB_USER} -p${DB_PW}  --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATABASE.sql.gz
    # 备份表结构
    mysqldump -u${DB_USER} -p${DB_PW}  --host=${HOST} -q -d -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATABASE.sql.gz
    #将文件处理成tar.gz
    cd ${BACKUP}
    tar -zcvf $DATABASE.tar.gz ${DATATIME}
    #删除对应的备份目录
    rm -rf ${BACKUP}/${DATATIME}
    
    #删除10天前的备份文件
    find ${BACKUP} -atime +30 -name "+.tar.gz" -exec rm -rf {} \;
    echo "备份数据库${DATABASE} 成功~"
    

    导出内容(表结构等)

    内容含义
    - - databases在备份的时候先是会创建表的,也就是说备份了整个db_name的 如果不加–databses的话,表明只是备份db_name中的数据表,而在还原的时候不会在创建db_name这个数据库,只是还原hellodb中的数据表而已
    -q不缓冲查询,直接导出至标准输出
    -d只导出表结构,不含数据
    –add-locks导出过程中锁定表,完成后回解锁。-q:不缓冲查询,直接导出至标准输出

    设置定时

    • 输入命令 crontab -e / 路径地址
    1.用数值表示 时间信息
    00 02 *  *  *  备份文件
    
    2.利用特殊符号表示时间信息
    *     *    *   *    *   备份文件
    /分钟 /小时 ///=========================================
    PS:定时任务最短执行的周期为 每分钟 
    */5       */ 6     */3      */1    */2
    每隔5分钟  每隔6小时  每隔3日  每隔1月  每隔2=========================================
    其它 写法:
    01-05  02  * * *2日的0102030405 执行一遍
    
    
    指定不连续的时间范围:
    00  14,20  *  *  *  *    每天14点,20点执行一次
    
    展开全文
  • 下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行
  • CentOs7下 mysql5.7自动备份数据库脚本
  • #完成数据库备份 #备份的路径 BACKUP=(数据库压缩包备份的路径) #当前的时间作为文件名 DATETIME=$(date +%Y_%m_%d_%H%M%S) #实际开发中可以输出变量来进行调试 echo "----------开始备份-------

    前言:连接工具 windows 创建的文件需要转格式

    第一步:创建 xxx.sh shell脚本文件

    touch xxx.sh
    

    第二步:添加配置文件

    #linux定时任务需要指向环境
    source /etc/profile
    #!/bin/bash
    #完成数据库的备份
    #备份的路径
    BACKUP=(数据库压缩包备份的路径)
    #当前的时间作为文件名
    DATETIME=$(date +%Y_%m_%d_%H%M%S)
    #实际开发中可以输出变量来进行调试 
    echo "----------开始备份----------------"
    echo "备份的路径是$BACKUP/$DATETIME.tar.gz"
    #主机名
    DB_HOST=(主机IP)
    #db用户名
    DB_USR=(数据库账号)
    #db密码
    DB_PWD=(数据库密码)
    #数据库名
    DATABASE=(数据库名称)
    #判断是否有该路径如果有则直接执行,如果没有则先创建
    #[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
      if [ ! -d "$BACKUP/$DATETIME" ];then
      mkdir -p "$BACKUP/$DATETIME"
      fi
    #备份数据库的名字
    #执行mysql备份的指令
    echo "开始备份数据库"
    mysqldump -u${DB_USR} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
    #打包本份文件
    cd $BACKUP
    tar -zcvf $DATETIME.tar.gz $DATETIME
    #删除临时文件
    rm -rf $BACKUP/$DATETIME
    #删除十天前的备份文件
    find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
    echo "备份完成"
    

    第三步:执行文件(记得放开执行权限)

    bash xxx.sh   #执行文件
    ./xxx.sh #也可以执行文件
    

    第四步:格式转换

    错误提示:syntax error: unexpected end of file
    vim xxx.sh #进入文件
    shift+esc+: #进入操作命令
    set fileformat=unix (也可:set ff=unix)#设置格式
    wq #保存退出
    

    第五步:放入linux 定时执行

    crontab -l #查看当前已配置的定时任务
    crontab -e #编辑定时任务
    50 23 * * * /路径/xxx.sh #时间格式:分 时 日 月 年
    wq #退出就行了
    tail -f /var/log/cron #查看定时任务日志
    
    展开全文
  • 数据库备份 在计划任务里添加一条命令 执行这个脚本就OK了 例如 :00 21 * * * /www/mysqlbak/mysql.sh
  • linux数据库定时备份脚本

    千次阅读 2019-05-21 17:43:48
    linux中经常会遇到要求备份数据库,这里记录一下备份的脚本怎么写 BackDir:我们的备份的文件放的位置 LogFile:备份成功或者失败的日志 DataBase:数据库名称 DataBaseUser:数据库用户名 DataBasePWD:数据库密码 ...

    编写脚本

    linux中经常会遇到要求备份数据库,这里记录一下备份的脚本怎么写

    BackDir:我们的备份的文件放的位置
    LogFile:备份成功或者失败的日志
    DataBase:数据库名称
    DataBaseUser:数据库用户名
    DataBasePWD:数据库密码

    脚本如下

    export LANG=en_US.UTF-8
    #注意:下面这几个变量需修改为你自己的
    BackDir=/home/backup
    LogFile=/home/backup/bak.log
    DataBase=user
    DataBaseUser=root
    DataBasePWD=pwd
    
    if [ ! -d "$BackDir" ];then
    mkdir $BackDir
    fi
    
    if [ ! -f "$LogFile" ]; then
     touch "$LogFile"
    fi
    
    Date=`date +%Y%m%d_%H%M%S`
    Begin=`date +%Y%m%d_%H:%M:%S`
    #到备份目录下
    cd $BackDir
    #设置导出脚本名称
    DumpFile=dataBaseNme_$Date.sql
    #设置压缩包名称
    DumpFileZip=dataBase_$Date.sql.tgz
    #导出数据库数据
    mysqldump -u$DataBaseUser -p$DataBasePWD $DataBase > $DumpFile
    #压缩sql脚本
    tar -czvf $DumpFileZip $DumpFile
    #删除sql脚本
    rm $DumpFile
    
    #下面这一段是保留最近7天的数据
    count=$(ls -l  *.tgz |wc -l)
    if [ $count -ge 8 ]
    then
    file=$(ls -l *.tgz |awk '{print $9}'|awk 'NR==1')
    rm -f  $file
    fi
    
    Last=`date +"%Y%m%d_%H:%M:%S"`
    echo start:$Begin end:$Last $DumpFileZip succ >> $LogFile
    

    加入到定时任务

    • crontab -l 查看当前有没有定时任务
    • crontab -e 编辑定时任务
      例子:
    0    0   *   *   *   /root/test.sh
    #分  时   日   月  周  |《==============命令行=======================》|
    

    注意:有可能会遇到这个错误:

    1.mysqldump: command not found
    这是因为在安装mysql的时候,并没有将mysql的bin配置到系统的环境变量中

    • 解决办法:
       vim /etc/profile
    

    在这里插入图片描述

    设置环境变量:
    写一个MYSQL_HOME,值为“mysql的安装路径”
    在PATH后面加上$MYSQL_HOME/bin
    export后面加上MYSQL_HOME

    MYSQL_HOME=/usr/local/mysql
    PATH=$PATH:$MYSQL_HOME/bin
    export PATH MYSQL_HOME
    

    在这里插入图片描述
    将mysql加入到系统的环境变量后这个问题就搞定了,以后在任何目录也都可以连接mysql

    1. windows下上传shell脚本至linux,其格式将为dos。dos模式的shell脚本将不能再linux下正确运行,需要修改文件
    • linux服务器上,用vi编辑器打开shell脚本,随后进入命令行模式,输入"set ff",即可查看文件模式,
    • 在命令行模式下,输入"set ff=unix",即可将dos模式修改为unix模式。
      再次查看:
      在这里插入图片描述
    展开全文
  • 0 1 * * * /home/mysql-backup.sh //每天凌晨1点执行此文件 mysql-backup.sh数据库脚本文件 database=yd_cdxcds username=root backupDir=/usr/local/data/mysqlbak backupTime=`date +%Y%m%d%H%M%S` mysqldump -u$...
  • 代码如下:#!/bin/bash#backup mysql data DBDIR=/data/mysqlBACKDIR=/data/bak/mysqlTIME=`date -d “today” +%F`DB=$(ls -p $DBDIR | grep / |tr -d / | grep -Ev ‘information_schema|performance_schema|mysql|...
  • 本文主要向大家介绍了SQLServer数据库之sqlserver for linux自动备份数据库脚本,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。不多说直接上脚本#/bin/bashuser=multiversepasswd=Multiverse...
  • 1.数据库备份 ,支持多数据库,清理过期备份数据执行以下脚本文件进行数据库备份,会当前目录下创建mysql文件夹进行备份操作(PS:不要使用xftp等工具创建sh脚本,会有字符无法识别的异常,正确做法是使用vim命令创建...
  • 1、Mysql数据库备份脚本 创建脚本 /bakcup/sqlbak.sh ,内容如下: FName=bmvps.com中的bmvps.com改为自己的域名,FP=/backup/中的/backup/目录,改为自己 #!/bin/sh d=`date "+%Y-%m-%d-%H-%M-%S"` v_user=...
  • 1.在没有安装oracle数据库linux环境下,远程定时备份oracle数据库。 2.并且提供安装包,以及操做文档。
  • Linux数据库备份脚本 前提:保存备份文件的服务器需要安装mysql,可以执行mysqldump命令 脚本编写(mysql_dump.sh) 脚本内容:注意一定要在unix环境下编写,如果在windows环境下重定向后文件名会出现问题。 注意...
  • 但由于这个操作具有间隔性和重复性,我们不可能每次手动去执行mysqldump命令来进行数据库备份,这时候Linux的shell脚本和crontab定时任务就能突出作用了。 shell脚本: #!/bin/bash #最大备份文件数 MAXIMUM_BACKUP...
  • Linux PostgreSQL 数据库定时备份脚本 1.配置脚本 postgreSQL_user="postgres" #postgreSQL备份用户 postgreSQL_host="localhost"#数据库地址 postgreSQL_port="5432"#端口号 postgreSQL_charset="utf8" #postgreSQL...
  • 1.每天凌晨2:10备份数据库demo到/data/backup/db 2.备份开始和备份结束能给出相应的提示信息 3.备份后的文件要求以时间为文件名,并打包成.tar.gz的形式。比如2021-03-12——230201.tar.gz 4.在备份的同时,检查...
  • <h3>引用文章</h3><a href="https://blog.csdn.net/cn_yaojin/article/details/85338080">.../a> postgresql Linux 下定时脚本自动备份数据库 ...
  • Linux下ORCLE数据库增量备份脚本 (基础篇) ,需要的朋友可以参考下。
  • 主要介绍了Linux oracle数据库备份完成后可以自动压缩脚本代码,大家参考使用
  • Linux定时备份数据库 脚本

    千次阅读 2019-01-14 11:57:32
    生产数据库的数据是经常需要备份的,可以写个数据库的备份脚本,然后通过Linux的crontab定时执行就可以完成数据库定时备份的工作;...开始备份数据库"; echo `mysqldump -h127.0.0.1 -u用户明 -p密码 --default...
  • Mysqldump 备份数据库脚本: @echo off set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%" "F:\Program Files\mysql-8.0.27-winx64\bin\mysqldump" -h 127.0.0.1 -P3306 --opt -u root --password=root rbp> E:\db_%...
  • 先来介绍一些不使用脚本我们直接使用命令备份与还原oracle数据库Oracle数据备份:步骤 1 备份用户数据。1.使用linux系统下的数据库管理员账号连接linux终端。2. 执行以下语句,创建“bak_dir”文件夹。 代码如下: ...
  • 一.mysql修改数据库配置,实现数据库备份脚本 ##################step1:####################### 1.查看mysql的安装目录 [root@localhost t14-jurf]# which mysql /usr/local/mysql-5.7.32/bin/mysql 2.备份...
  • 不多说直接上脚本#/bin/bashuser=multiversepasswd=Multiverse1113back_path=/var/opt/backup/db_name=multiverseback_time=`date +%Y%m%d_%H%M%S`back_filename=$back_path$db_name$back_timedel_time=`date -d "2 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,664
精华内容 29,465
关键字:

linux备份数据库脚本