`

服务器数据备份(shell 定时脚本备份mysql)

 
阅读更多

Mysql备份策略大概可分为4种:

1) 直接拷贝数据库文件(不推荐)

2) 使用mysqlhotcopy备份数据库

3) 使用mysqldump备份数据库

4) 使用主从复制机制(replication)(实现数据库实时备份)

一般mysqldump使用比较广泛,操作也方便,下面就具体描述mysqldump备份策略。

数据备份分为三步:

1) 定时导出备份数据库并打包成gz压缩包 (Linux shell 脚本 + crontab)

mysqlFullBackup.sh

复制代码
#!/bin/sh

# Use mysqldump --help get more detail.

#
# 定义变量,请根据具体情况修改
# 定义脚本目录
scriptsDir=`pwd`

# 定义用于备份数据库的用户名和密码
user=root
userPWD=123456

# 定义备份数据库名称
dbNames=(database1 database2 database3)

# 定义备份目录
dataBackupDir=/home/zhanghuihua/backup

# 定义邮件正文文件
eMailFile=$dataBackupDir/log/email.txt

# 定义邮件地址
eMail=Huihua.Zhang@quidos.co.uk

# 定义备份日志文件
logFile=$dataBackupDir/log/mysqlbackup.log

# DATE=`date -I`
DATE=`date -d "now" +%Y%m%d`

echo `date -d "now" "+%Y-%m-%d %H:%M:%S"` > $eMailFile

for dbName in ${dbNames[*]}
do
    # 定义备份文件名
    dumpFile=$dataBackupDir/db/$dbName-$DATE.sql.gz

    # 使用mysqldump备份数据库,请根据具体情况设置参数
    mysqldump -u$user -p$userPWD $dbName | gzip > $dumpFile
done

if [[ $? == 0 ]]; then
    echo "DataBase Backup Success!" >> $eMailFile
else
    echo "DataBase Backup Fail!" >> $emailFile
fi

# 写日志文件
echo "================================" >> $logFile
cat $eMailFile >> $logFile
echo $dumpFile >> $logFile

# 发送邮件通知
#cat $eMailFile | mail -s "MySQL Backup" $eMail
复制代码

2) 通过ftp 服务定时下载到本地 (Linux shell 脚本 + crontab)

或从服务器上备份数据库到ftp 服务器 (Linux shell 脚本 + crontab)

ftpDownload.sh

复制代码
#!/bin/bash
# 定义变量
DATE=`date -d "now" +%m%d%y`

ftpServer=192.168.1.103
ftpUser=zhanghuihua
ftpPasswd=123456

remoteDir=/backup/db
localDir=/home/zhanghuihua/backup

#开始ftp操作
/usr/bin/ftp -niv <<!
open $ftpServer
user $ftpUser $ftpPasswd
binary
cd $remoteDir
lcd $localDir

mget database1-$DATE.sql.gz
mget database2-$DATE.sql.gz
mget database3-$DATE.sql.gz
bye
!
复制代码

dbPutToFtp.sh

复制代码
#!/bin/bash
# 定义变量
DATE=`date -d "now" +%Y%m%d`

ftpServer=192.168.1.103
ftpUser=zhanghuihua
ftpPasswd=123456

remoteDir=/backup/db
localDir=/home/zhanghuihua/backup/db

#开始ftp操作
/usr/bin/ftp -niv <<!
open $ftpServer
user $ftpUser $ftpPasswd
binary
cd $remoteDir
lcd $localDir

mput database1-$DATE.sql.gz
mput database2-$DATE.sql.gz
mput database3-$DATE.sql.gz

bye
!
复制代码

3) 定期刻录光盘 (人工操作)

3) 定期刻录光盘 (人工操作)

Crontab 定时任务管理

crontab -e

01 03 * * * /var/proftpd_data/backup/bin/mysqlFullBackup.sh

10 04 * * * /var/proftpd_data/backup/bin/ftpDownload.sh

前五个字段的整数取值范围及意义是:

0~59 表示分

1~23 表示小时

1~31 表示日

1~12 表示月份

0~6 表示星期(其中0表示星期日)

分享到:
评论

相关推荐

    Linux下定时备份MySQL数据库的Shell脚本.pdf

    ### Linux下定时备份MySQL数据库的Shell脚本知识点详解 #### 一、背景介绍与重要性 对于每一个在线网站或服务而言,数据备份是一项至关重要的任务。无论是为了应对未来的版本升级,还是服务器迁移的需求,定期备份...

    xtrabackup备份恢复shell脚本

    《Xtrabackup备份与恢复:Shell脚本详解》 ...总结,Xtrabackup结合Shell脚本提供了一套强大的MySQL备份恢复解决方案,能够应对各种复杂的业务场景。理解并熟练掌握这一工具,对于保障数据库的安全运行具有重要意义。

    linux mysql定时备份脚本

    本文将详细介绍如何利用shell脚本来创建MySQL的定时备份,并结合提供的"mysqlbackup.sh"脚本和"添加定时任务.txt"文件,帮助你实现这一功能。 首先,我们来看"mysqlbackup.sh"这个shell脚本。这个脚本通常包含以下...

    linux服务器如何每天定时的备份mysql

    本文将详细介绍如何通过编写Shell脚本并结合Cron定时任务,在Linux服务器上自动完成MySQL数据库的每日定时备份,并且只保留最近五天的备份文件。 #### 一、创建备份存储文件夹 首先,在Linux服务器上创建用于存储...

    mysql定时备份(linux脚本).zip

    标题中的"mysql定时备份(linux脚本)"指的是一个使用Linux shell编写的脚本,用于自动执行MySQL数据库的备份任务。这个脚本通常会包含以下几个关键部分: 1. **连接信息**:包括MySQL服务器的IP地址、端口、用户名和...

    mysql数据迁移,本资源用shell脚本自动完成,人机交互

    MySQL数据迁移是一个重要的...总结来说,通过编写Shell脚本自动化MySQL数据迁移,我们可以提高效率,减少错误,并实现定制化的迁移策略。理解这些基本原理和操作后,你可以根据自己的需求创建适应各种情况的迁移脚本。

    shell脚本实现mysql定时备份、删除、恢复功能

    为了备份MySQL数据库,我们通常使用`mysqldump`工具,它是一个非常有效的命令行工具,专门用于导出MySQL服务器的数据。Shell脚本中,可以使用这个命令来进行数据库的全量备份。 脚本内容展示了如何利用`mysqldump`...

    shell 脚本对数据库定时备份

    本文将详细讲解如何使用Shell脚本实现对数据库的定时备份,以及涉及到的相关技术。 首先,Shell脚本是Unix/Linux操作系统中的一种强大的命令行解释器,它允许用户编写自动化任务,例如执行一系列命令、处理文件或...

    数据库定时shell脚本 对表定时做前一天数据导出备份 同时删除当前表前一天导出数据

    综上所述,`cron_update.sh`脚本是数据库管理自动化的一个实例,通过shell脚本语言实现了对前一天数据的备份和删除,借助Linux的cron服务实现了定时执行,提高了数据管理的效率和安全性。正确配置和使用这样的脚本...

    shell脚本可配置备份mysql5.7.8以前数据库.rar

    在这个场景下,shell脚本用于自动化备份MySQL数据库,节省手动操作的时间和精力。 MySQL是世界上最流行的开源关系型数据库管理系统,5.7.8版本是在其发展历史中一个重要的里程碑。在该版本之前,数据库的备份主要...

    自动定时备份远程服务器的mysql数据库并存储在本地

    通过以上步骤,你可以建立一个自动定时备份远程服务器MySQL数据库并存储在本地的系统,确保数据的安全性和可恢复性。在实际操作中,还需要根据具体的服务器环境和业务需求进行适当的调整和优化。

    mysql备份shell脚本与备份文件的还原 ,每日和每月备份shell脚本,重要参数说明,还原时的主要问题分析与解决

    二、每日备份shell脚本 每日备份脚本主要利用cron定时任务执行,以下是一个基本示例: ```bash #!/bin/bash # 设置MySQL服务器的相关信息 USER="root" PASSWORD="your_password" DATABASE="your_database" BACKUP_...

    mysql自动实现备份脚本

    "mysql自动实现备份脚本" 提供了一种高效的方法,通过编写Bash shell脚本来自动化这一过程。下面将详细介绍这个脚本的工作原理、重要性以及如何配置和使用。 1. **Bash脚本简介** Bash是Unix和Linux系统中的默认...

    shell执行mysql脚本

    通过这种方式,shell脚本和MySQL可以协同工作,实现自动化的数据库管理任务,比如数据导入导出、批量更新、定时备份等。记住,为了安全起见,避免在脚本中明文写入密码,通常会使用环境变量或者密钥管理工具来存储...

    mysql备份脚本.rar

    MySQL数据库是广泛应用于网站和应用程序的数据存储解决方案,定期进行数据备份是确保数据安全的重要环节。本文将详细解析“mysql备份脚本.rar”压缩包中的内容,包括在Windows和Linux操作系统中如何利用脚本来进行...

    shell脚本可配置多线程备份mysql5.7.8以后数据库.rar

    总之,利用shell脚本进行多线程备份MySQL 5.7.8以后的数据库是一个高效且灵活的方法,它能够根据系统资源和业务需求进行定制,确保数据的安全性和可靠性。通过深入理解和实践,可以进一步优化备份流程,提升整体系统...

    Linux自动备份MySQL数据库并上传到FTP服务器上shell脚本

    ### Linux自动备份MySQL数据库并上传到FTP服务器上Shell脚本详解 #### 一、脚本概述 本脚本主要用于在Linux环境下实现MySQL数据库的自动备份,并将备份文件上传至指定的FTP服务器。对于需要定期备份MySQL数据库的...

    CentOS下mysql定时备份Shell脚本分享

    本文将详细介绍如何在CentOS环境下使用Shell脚本来实现MySQL的定时备份。这个方法简单易行,适合初学者参考。 首先,我们需要了解备份MySQL数据库的核心命令——`mysqldump`。这个命令用于导出MySQL数据库的结构和...

    Linux(Centos)全自动异地备份数据(WEB+Mysql).pdf

    备份MySQL数据涉及到使用mysqldump工具导出数据库内容到.sql文件中。 9. tar归档工具:tar是一个用于在Unix和类Unix系统上打包文件的工具。在备份过程中,可以使用tar来将文件和目录压缩成一个.tar.gz格式的归档...

    mysql数据库每天凌晨3点备份数据库的脚本

    本文将详细介绍如何编写一个在Linux环境下,每天凌晨3点自动执行的MySQL数据库备份脚本,以及如何配置Linux的定时任务来执行这个脚本。 首先,我们来看`DB_backup.sh`这个脚本文件。它通常包含以下核心部分: 1. *...

Global site tag (gtag.js) - Google Analytics