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

81 篇文章 0 订阅

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 服务定时下载到本地 (Linuxshell 脚本+ crontab)

或从服务器上备份数据库到ftp 服务器 (Linuxshell 脚本+ 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表示星期日)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值