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

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

Jun 01, 2016 pm 01:31 PM
工作原理 数据库备份 服务器

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
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist eine SOL-Münze? Wie funktioniert die SOL-Münze? Was ist eine SOL-Münze? Wie funktioniert die SOL-Münze? Mar 16, 2024 am 10:37 AM

Was ist eine SOL-Münze? Wie funktioniert die SOL-Münze?

So konfigurieren Sie Dnsmasq als DHCP-Relay-Server So konfigurieren Sie Dnsmasq als DHCP-Relay-Server Mar 21, 2024 am 08:50 AM

So konfigurieren Sie Dnsmasq als DHCP-Relay-Server

Was ist die Architektur und das Arbeitsprinzip von Spring Data JPA? Was ist die Architektur und das Arbeitsprinzip von Spring Data JPA? Apr 17, 2024 pm 02:48 PM

Was ist die Architektur und das Arbeitsprinzip von Spring Data JPA?

Was ist eine Polygonmünze? Wie funktioniert die Polygon-Münze? Was ist eine Polygonmünze? Wie funktioniert die Polygon-Münze? Mar 16, 2024 am 09:22 AM

Was ist eine Polygonmünze? Wie funktioniert die Polygon-Münze?

Was ist eine VET-Münze? Wie funktioniert die VET-Münze? Was ist eine VET-Münze? Wie funktioniert die VET-Münze? Mar 16, 2024 am 11:40 AM

Was ist eine VET-Münze? Wie funktioniert die VET-Münze?

Wie installiere ich die PHP-FFmpeg-Erweiterung auf dem Server? Wie installiere ich die PHP-FFmpeg-Erweiterung auf dem Server? Mar 28, 2024 pm 02:39 PM

Wie installiere ich die PHP-FFmpeg-Erweiterung auf dem Server?

Was ist eine SHIB-Münze? Wie funktioniert die SHIB-Münze? Was ist eine SHIB-Münze? Wie funktioniert die SHIB-Münze? Mar 17, 2024 am 08:49 AM

Was ist eine SHIB-Münze? Wie funktioniert die SHIB-Münze?

Was ist eine Algorand-Münze? Wie funktioniert die Algorand-Münze? Was ist eine Algorand-Münze? Wie funktioniert die Algorand-Münze? Mar 17, 2024 am 08:30 AM

Was ist eine Algorand-Münze? Wie funktioniert die Algorand-Münze?

See all articles