search
HomeDatabaseMysql TutorialMySQL数据库定时备份Shell脚本并备份至其它机器方法_MySQL

bitsCN.com

MySQL数据库定时备份Shell脚本并备份至其它机器方法

 

这是一个简单的MySQL数据库备份shell脚本,适用于单台Linux服务器或者VPS的mysql数据库备份工作,

工作原理是使用mysql的mysqldump工具来导出数据库为.sql文件,然后将所有导出的文件打包归档。

 

然后我们在shell脚本中使用 scp命令把备份文件复制到另外一台备份机器,由于scp每次传送文件要密码

因此我们需要使用 expect插件或者利用密钥。在这里介绍采用生成密钥对的方法。

1,生成密匙对,我用的是rsa的密钥。使用命令 "ssh-keygen -t rsa"

 生成的过程中提示输入密钥对保存位置及密码,直接回车,接受默认值就行了。  

其中公共密钥保存在 ~/.ssh/id_rsa.pub,私有密钥保存在 ~/.ssh/id_rsa 。
 

2,然后修改 .ssh 目录权限,chmod 755 ~/.ssh 。最后把 公共密钥复制到你要访问

的机器上去,并保存为:~/.ssh/authorized_keys 。

scp -P 1110 ~/.ssh/id_rsa.pub daniel@*.*.*.*:/home/daniel/.ssh/authorized_keys

(注意这里- P 为大写, 表示目标机器daniel 的ssh端口为1110,小写的p为源ssh端口

修改ssh端口在文件/etc/ssh/sshd_config下 。)这里完成scp 脚本免密钥的方法介绍。

最后使用crontab定时执行脚本即可!

脚本如下:

[plain] 

#!/bin/bash  

# description:  MySQL buckup shell script  

# author:       Daniel  

st=$(date +%s)  

USER="root"   

PASSWORD="*****"#用户名   

DATABASE="myblogdb" #数据库用户密码   

MAIL="abcd@gmail.com"#mail     

BACKUP_DIR=/home/daniel/data_backup/ #备份文件存储路径   

LOGFILE=/home/daniel/data_backup/data_backup.log #日志文件路径  

   

DATE=`date +%Y%m%d-%H%M`#用日期格式作为文件名  

DUMPFILE=$DATE.sql   

ARCHIVE=$DATE.sql.tar.gz   

OPTIONS="-u$USER -p$PASSWORD $DATABASE"  

  

#判断备份文件存储目录是否存在,否则创建该目录   

if [ ! -d $BACKUP_DIR ]   

then  

    mkdir -p "$BACKUP_DIR"  

fi    

  

#开始备份之前,将备份信息头写入日记文件   

echo "    ">> $LOGFILE   

echo "--------------------" >> $LOGFILE   

echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE   

echo "-------------------" >> $LOGFILE    

  

#切换至备份目录   

cd $BACKUP_DIR   

mysqldump $OPTIONS > $DUMPFILE   

#判断数据库备份是否成功   

if [[ $? == 0 ]]  

then   

    tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1   

    echo "[$ARCHIVE] Backup Successful!" >> $LOGFILE   

    rm -f $DUMPFILE #删除原始备份文件,只需保留备份压缩包  

    # 把压缩包文件备份到其他机器上。  

    scp -P $ARCHIVE daniel@*.*.*.*:/home/daniel/data_backup/  

 else   

    echo "Database Backup Fail!" >> $LOGFILE   

#备份失败后向管理者发送邮件提醒   

mail -s "database:$DATABASE Daily Backup Fail!" $MAIL   

fi   

echo "Backup Process Done"   

#删除3天以上的备份文件  

#Cleaning  

find $BACKUP_DIR  -type f -mtime +2 -name "*.tar.gz" -exec rm -f {} /;  

修改/etc/crontab

#vi /etc/crontab

在下面添加:

00 03 * * * root /data/backup/dump.sh

注意/data/backup/dump.sh为脚本的存放位置.

表示每天3点钟执行备份。

重新启动crond

# /etc/rc.d/init.d/crond restart

 

bitsCN.com
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
什么是 Microsoft Teams 中的对讲机及其工作原理?什么是 Microsoft Teams 中的对讲机及其工作原理?Apr 14, 2023 pm 12:31 PM

Microsoft Teams 上的对讲机是什么?顾名思义,新的 Walkie Talkie 功能让 Microsoft Teams 上的用户可以通过使用他们的声音与他们的团队成员进行实时交流,从而与他们联系。在频道中连接到 Walkie Talkie 的用户可以一次听一个即按即说格式的对方讲话。这样一来,只有一个人在说话的时候才能引起注意,而不会被其他人打断。微软将这一功能定

听诊器的工作原理是什么听诊器的工作原理是什么Aug 31, 2023 pm 02:37 PM

听诊器的工作原理是通过声学传感器将人体内部的声音转化成电信号,然后通过耳机或扩音器放大和传输这些信号给医生,它的工作原理基于声学原理,能够帮助医生听到内部声音并进行疾病诊断。听诊器的核心部件是声学传感器,通常由一个共振膜和一个接收器组成,共振膜是一个薄膜,通常由金属或塑料制成,它能够感受到人体内部的声音振动,当共振膜受到声波的作用时,它会产生微小的振动。

vue中keep-alive的工作原理及使用方法详解vue中keep-alive的工作原理及使用方法详解Jul 21, 2023 am 11:58 AM

Vue.js是一个流行的前端框架,提供了一些方便的功能来优化性能和提升开发效率。其中一个功能是keep-alive,它可以帮助我们在组件之间保留状态,从而减少不必要的渲染和请求。本文将详细介绍keep-alive的工作原理以及使用方法,并提供一些代码示例。一、keep-alive的工作原理在Vue.js中,每当我们切换组件时,组件都会被重新创建

PHP和PDO: 如何执行数据库备份和还原操作PHP和PDO: 如何执行数据库备份和还原操作Jul 29, 2023 pm 06:54 PM

PHP和PDO:如何执行数据库备份和还原操作在开发Web应用程序时,数据库的备份和还原是非常重要的任务。PHP作为一门流行的服务器端脚本语言,提供了丰富的库和扩展,其中PDO(PHP数据对象)是一款强大的数据库访问抽象层。本文将介绍如何使用PHP和PDO来执行数据库备份和还原操作。第一步:连接数据库在实际操作之前,我们需要建立与数据库的连接。使用PDO对

MySQL数据库备份与恢复性能优化的项目经验解析MySQL数据库备份与恢复性能优化的项目经验解析Nov 02, 2023 am 08:53 AM

在当前互联网时代,数据的重要性不言而喻。作为互联网应用的核心组成部分之一,数据库的备份与恢复工作显得尤为重要。然而,随着数据量的不断增大和业务需求的日益复杂,传统的数据库备份与恢复方案已无法满足现代应用的高可用和高性能要求。因此,对MySQL数据库备份与恢复性能进行优化成为一个亟需解决的问题。在实践过程中,我们采取了一系列的项目经验,有效提升了MySQL数据

计算机按工作原理可分为什么计算机按工作原理可分为什么Dec 07, 2020 am 10:24 AM

计算机按工作原理可分为数字计算机和模拟计算机。数字式电子计算机是当今世界电子计算机行业中的主流,其内部处理的是一种称为符号信号或数字信号的电信号,它有着运算速度快、运算精度高、通用性强等特点。模拟计算机是根据相似原理,用一种连续变化的模拟量作为被运算的对象的计算机;模拟计算机以电子线路构成基本运算部件。

如何使用ThinkPHP6实现数据库备份与恢复如何使用ThinkPHP6实现数据库备份与恢复Jun 20, 2023 pm 07:25 PM

在开发业务系统过程中,数据库是非常重要的一环。因此,对数据库进行备份和恢复是非常必要的操作。本文将结合ThinkPHP6框架实例,介绍如何使用ThinkPHP6实现数据库备份与恢复。一、数据库备份1.1环境准备在进行数据库备份之前,需要确认如下几点:1、需要设置好mysql数据库的bin目录地址,并把其路径加入系统Path变量中;2、需要安装好mysqld

宝塔面板的数据库备份、优化和恢复宝塔面板的数据库备份、优化和恢复Jun 21, 2023 am 09:45 AM

如今在网络的世界中,网站已经成为了每个企业、组织或个人展示自己品牌、服务、产品等的重要载体,为了保证网站的正常运行和安全性,需要我们不断地进行数据库的备份、优化和恢复。而宝塔面板作为一款操作简单、功能丰富、界面美观的服务器管理软件,在数据库管理方面也是相当优秀的,具有着备份、优化和恢复等重要功能。本文将会重点介绍宝塔面板的数据库备份、优化和恢复功能以及相关注

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools