GVKun编程网logo

Linux mysql数据库自动备份脚本策略

7

这篇文章主要围绕Linuxmysql数据库自动备份脚本策略展开,旨在为您提供一份详细的参考资料。我们将全面介绍Linuxmysql数据库自动备份脚本策略,同时也会为您带来centosmysql数据库自

这篇文章主要围绕Linux mysql数据库自动备份脚本策略展开,旨在为您提供一份详细的参考资料。我们将全面介绍Linux mysql数据库自动备份脚本策略,同时也会为您带来centos mysql数据库自动备份、Linux vps自动备份网站和MYSQL数据库脚本、Linux 下 MySQL 自动备份脚本、linux 服务器自动备份脚本的方法(mysql、附件备份)的实用方法。

本文目录一览:

Linux mysql数据库自动备份脚本策略

Linux mysql数据库自动备份脚本策略

1.创建保存备份文件的文件夹

mkdir /data/MysqLbak

 2.编写脚本

cd /data/MysqLbak
vi sqlAutoBak.sh

 SH脚本内容:

DB_USER="root" DB_PASS="root" #你的数据库密码
DB_HOST="localhost" DB_NAME="test" #你要备份的数据库
BIN_DIR="/usr/bin" BCK_DIR="/data/MysqLbak" #备份文件存放的位置
DATE=`date +%F` $BIN_DIR/MysqLdump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME > $BCK_DIR/db_$DATE.sql

 3.给脚本赋权限

chown +x /data/MysqLbak/sqlAutoBak.sh

4.制定定时任务

vi /etc/cronta

插入这一行,完成定时任务,这里可以设置定时时间: 

00 01 * * * root /data/MysqLbak/sqlAutoBak.sh

 这样就可以每天定时的备份数据库了,缺乏机器测试的小伙伴可以去3A网络看看!

centos mysql数据库自动备份

centos mysql数据库自动备份

方案一:

1.创建并编辑文件 /usr/sbin/bakMysqL,命令:

vi /usr/sbin/bakMysqL

内容如下:

1 db_user="root"
2 db_passwd="root"
3 db_name="db_test"
4 # the directory for story your backup file.you shall change this dir
5 backup_dir="/usr/software/backup/MysqLbackup"
6 # date format for backup file (dd-mm-yyyy)
7 time="$(date +"%Y%m%d%H%M%s")"     
8 
9 MysqLdump -u$db_user  -p$db_passwd $db_name  > "$backup_dir/$db_name"_"$time.sql"

注意 -p 和$db_passwd之间没有空格,不然$db_passwd会被当做参数[数据库名]来解析

2.修改文件bakMysqL属性,使其可执行;

chmod +x /usr/sbin/bakMysqL

3.创建定时任务

crontab –e

#进入编辑界面,内容如下

00 23 * * * ./usr/sbin/bakMysqL

#上一行命令的 " . " 不要也可

# 00 23是每天23:00执行 bakMysqL文件,备份数据库在路径/usr/software/backup/MysqLbackup下

service crond restart

这种方案我试过,可以成功!

方案二:

步骤如下

建备份文件夹:

?

1

mkdir MysqL_data_bak

建脚本文件:

?

1

touch autobackupMysqL.sh

打开文件

?

1

vi autobackupMysqL.sh

在脚本中加入如下内容:

?

1

2

filename=`date +%Y%m%d`

/usr/bin/MysqLdump -uroot -proot boss >>/home/MysqL_data_bak/$filename.sql

检查有没安装crond,如果没有,先安装

?

1

2

yum -y install vixie-cron

yum -y install crontabs

启动服务 :service crond start

在CentOS系统中加入开机自动启动: chkconfig --level 345 crond on

?

1

crontab -e

加入内容:00 03 * * * source /root/autobackupMysqL.sh

每天凌晨3点运行此文件,对数据库进行备份

?

1

service crond restart

好了,以上就完成了。

Linux vps自动备份网站和MYSQL数据库脚本

Linux vps自动备份网站和MYSQL数据库脚本

准备将有一台搭建LNMP一键环境使用定期备份数据库和网站文件打包,直接上传到备用FTP空间中。比如可以找一些虚拟主机空间,硬盘存储也是比较大的,直接可以作为备用数据使用。

第一、备份前的准备

1、准备一台FTP主机空间

2、初次使用这个脚本的时候,我们要先备份好数据,以防止万一

3、当前我是在LNMP一键包环境下测试的。

4、安装sendmail组件(yum install sendmail mutt)

第二、下载脚本

http://www.cnbanwagong.com/tools/backup-ftp.sh

第三、修改配置文件

#!/bin/bash
#你要修改的地方从这里开始
MYSQL_USER=root                            #mysql用户名
MYSQL_PASS=123456                          #mysql密码
MAIL_TO=cat@cnbanwagong.com                #数据库发送到的邮箱
FTP_USER=cat                               #ftp用户名
FTP_PASS=123456                            #ftp密码
FTP_IP=123.123.123.123                     #ftp地址
FTP_backup=backup                          #ftp上存放备份文件的目录,这个要自己得ftp上面建的
WEB_DATA=/home/www/cnbanwagong.com         #要备份的网站数据
#你要修改的地方从这里结束

根据我们实际的信息进行修改。然后替换到服务器。

第四、设置权限、设定定期执行

1、设置权限

chmod +x /root/backup-ftp.sh

2、设置定时

crontab -e

然后添加执行脚本

00 01 * * * /root/backup-ftp.sh

设定每天凌晨1点执行。

3、测试是否有效

sh /root/backup-ftp.sh

这里我们可以执行了看看,如果能正常的备份到FTP空间中,说明是没问题的,如果有问题,我们可以重新检查。

Linux 下 MySQL 自动备份脚本

Linux 下 MySQL 自动备份脚本

源码 mysqlDump.sh

#!/bin/bash
################################################
# TODO: 备份当前服务器上指定的数据库(多个库,以 , 分隔)
# 示例:
#       ./mysqlDump.sh 备份默认设置的数据库
#       ./mysqlDump.sh db_name1,db_name2,... 备份指定名称的数据库
#
# Author: whoru.S.Q <whoru@sqiang.net>
# Version: 1.0
################################################

# 数据库连接参数
DB_HOST="127.0.0.1"
DB_USER="root"
DB_PWD=""
DB_PORT="3306"

# 待备份的数据库名称,多个库时以 , 分隔
DB_NAME=

# 备份文件路径
DUMP_FILE_PATH=/opt/backup

function main {
    # 参数检查
    # 如果当前脚本在执行时传递了参数,则优先级高于当前脚本文件中变量的默认设置
    if [ -n "$1" ]; then
        DB_NAME=$1
    else
        if [ ! "$DB_NAME" ]; then
            read -p "请输入要备份的数据库名称:" dbname
            DB_NAME=$dbname
        fi
    fi
	
    # 检查备份目录是否存在
    if [ ! -d "$DUMP_FILE_PATH" ]; then
        mkdir -p $DUMP_FILE_PATH
        if [ "$?" -ne "0" ]; then
            echo -en "无法创建备份文件目录:$DUMP_FILE_PATH"
            exit 1
        fi
    fi
	
    # 操作开始
    OLD_IFS="$IFS"
    IFS=","
    arr=($DB_NAME)
    IFS="$OLD_IFS"
    for db in ${arr[@]}
    do
        # echo "$db"
        doDump $db
    done
}

function doDump {

    echo -en "\n\033[32m==>\033[0m 开始备份数据库:$1\n"

    dump_date=`date +%Y%m%d%H%M%S`
    dump_file=$1"_"$dump_date".sql"
    final_dump_file=$dump_file".tar.gz"

    # 备份
    # 考虑还原数据库时的通用性,备份的同时不执行压缩操作
    $(which mysqldump) -u$DB_USER -p$DB_PWD -P $DB_PORT $DB_NAME > $dump_file
    if [ "$?" -ne "0" ]; then
        echo -en "操作失败"
        exit 1
    fi

    # 压缩、转移备份的文件
    tar -zcvf $final_dump_file $dump_file
    mv $final_dump_file $DUMP_FILE_PATH
    rm -rf $dump_file

    echo -en "\n\033[32m==>\033[0m 备份完成,生成备份文件:$DUMP_FILE_PATH/$final_dump_file\n"
}

# 运行
main $1

使用说明

  1. 使用前先设置数据库连接参数

  2. 设置待备份的数据库名称

    • 方式一:在脚本文件里修改变量 DB_NAME
    • 方式二:运行脚本时动态传参,如 ./mysqlDump.sh db_name

    注意:脚本运行参数优先级高于脚本文件中的设置;待备份的数据库名称支持多个,以 , 分隔。

示例

[root@local wwwroot]# ./mysqlDump.sh online_v3.0

==> 开始备份数据库:online_v3.0
Warning: Using a password on the command line interface can be insecure.
online_v3.0_20181012164400.sql

==> 备份完成,生成备份文件:/opt/backup/online_v3.0_20181012164400.sql.tar.gz

更新:https://github.com/whorusq/linux-learning/blob/master/shell/mysqlDump.sh

linux 服务器自动备份脚本的方法(mysql、附件备份)

linux 服务器自动备份脚本的方法(mysql、附件备份)

一、创建backup.sh脚本文件

#!/bin/sh
SOURCE_FOLDER=/data
DB_FOLDER=/data/db
BACKUP_FOLDER=/data/backup
TM=`date +%Y%m%d%H%M%S`
echo start to dump mysql database and backup files at $TM
# delete old sql backup files
cd $DB_FOLDER
rm -rf $DB_FOLDER/*.sql
#dump mysql data
/usr/bin/mysqldump -h127.0.0.1 -uroot -pcz_pims@2018 --single-transaction --master-data=2 --databases ms > ms-$TM.sql
echo dump db pims_hf as pims_hf-$TM.sql
/usr/bin/mysqldump -h127.0.0.1 -uroot -ppass --single-transaction --master-data=2 --databases ms_workflow > pims_hf_workflow-$TM.sql
echo dump db ms_workflow as pims_hf_workflow-$TM.sql
/usr/bin/mysqldump -h127.0.0.1 -uroot -ppass --single-transaction --master-data=2 --databases files > files-$TM.sql
echo dump db filesrv as files-$TM.sql
# delete backup files which 30 days before than today
find $BACKUP_FOLDER/* -type f -mtime +30 -name "*.zip" -exec rm {} \;
# compress
cd $SOURCE_FOLDER
zip -q -r $BACKUP_FOLDER/db-$TM.zip db
zip -q -r $BACKUP_FOLDER/files-new.zip files
echo zip $SOURCE_FOLDER files and backup to $BACKUP_FOLDER end
# 调用系统方式 send notice msg to 钉钉通知
curl -X POST -d "templateCode=003&content=文件备份成功,备份文件保存到此目录: $BACKUP_FOLDER" http://127.0.0.1:8080/admin/do/notify/dingding
echo -e end backup files at $TM ''\n\n\n''

二、创建定时任务

1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

crontab文件格式:

  *           *        *        *        *           command

minute   hour    day   month   week      command

分          时        天      月        星期      命令

例如:每周每月每天1点0分执行备份脚本,日志放在backup.log文件中

0 1 * * * /bin/sh /home/script/backup.sh >> /home/script/backup.log 2>&1

若测试脚本是否正常运行,可以手动执行测试

3)、查询当前用户定时任务。

总结

以上所述是小编给大家介绍的linux 服务器自动备份脚本的方法(mysql、附件备份),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

您可能感兴趣的文章:
  • MySQL备份脚本的写法
  • 浅析MySQL 备份与恢复
  • 详解mysql的备份与恢复
  • MySQL定时备份方案(利用Linux crontab)
  • 浅析mysql 定时备份任务
  • linux定时备份MySQL数据库并删除以前的备份文件(推荐)
  • CentOS7下 MySQL定时自动备份的实现方法
  • Mysql备份多个数据库代码实例
  • MySQL如何优雅的备份账号相关信息

我们今天的关于Linux mysql数据库自动备份脚本策略的分享就到这里,谢谢您的阅读,如果想了解更多关于centos mysql数据库自动备份、Linux vps自动备份网站和MYSQL数据库脚本、Linux 下 MySQL 自动备份脚本、linux 服务器自动备份脚本的方法(mysql、附件备份)的相关信息,可以在本站进行搜索。

本文标签: