最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:小采 时间:2020-11-09 18:40:49
文档

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

MySQL数据库定时备份Shell脚本并备份至其它机器方法_MySQL:bitsCN.com MySQL数据库定时备份Shell脚本并备份至其它机器方法 这是一个简单的MySQL数据库备份shell脚本,适用于单台Linux服务器或者VPS的mysql数据库备份工作,工作原理是使用mysql的mysqldump工具来导出数据库为.sql文件,然后将所有导出的文件打包归
推荐度:
导读MySQL数据库定时备份Shell脚本并备份至其它机器方法_MySQL:bitsCN.com MySQL数据库定时备份Shell脚本并备份至其它机器方法 这是一个简单的MySQL数据库备份shell脚本,适用于单台Linux服务器或者VPS的mysql数据库备份工作,工作原理是使用mysql的mysqldump工具来导出数据库为.sql文件,然后将所有导出的文件打包归

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

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

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

MySQL数据库定时备份Shell脚本并备份至其它机器方法_MySQL:bitsCN.com MySQL数据库定时备份Shell脚本并备份至其它机器方法 这是一个简单的MySQL数据库备份shell脚本,适用于单台Linux服务器或者VPS的mysql数据库备份工作,工作原理是使用mysql的mysqldump工具来导出数据库为.sql文件,然后将所有导出的文件打包归
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top