服务器数据备份(shell 定时脚本备份mysql)
2011-04-25 16:38
931 查看
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 -e01 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表示星期日)
相关文章推荐
- 服务器数据备份(shell 定时脚本备份mysql)
- 服务器数据备份(shell 定时脚本备份mysql)
- 服务器数据备份(shell 定时脚本备份mysql)
- 用shell写一个mysql数据备份脚本
- Shell 脚本 调用Mysql 客户端定时导出数据
- 在线备份MySQL及远程copy到远程备份服务器shell脚本
- Linux平台和Windows平台下两种自动备份MySQL数据的脚本(Shell&Bat)和步骤
- shell实现自动备份mysql、整站数据的两个脚本分享
- mysql定时备份所需权限、shell脚本、OSS备份
- 自动备份MySQL数据并上传到FTP上shell脚本
- shell脚本备份mysql里面所有数据库到远程服务器
- 程序员(媛)Shell脚本必备技能之中的一个: 在Linux下怎样自己主动备份mysql数据
- 通过mysqldump和SCP实现mysql定时自动备份到另外一台服务器脚本
- 程序猿(媛)Shell脚本必备技能之一: 在Linux下如何自动备份mysql数据
- mysql定期备份数据并压缩上传到ftp服务器的bat文件脚本,恢复建议使用SQLyog enterprise
- CentOS下mysql定时备份Shell脚本分享
- CentOS下mysql定时备份Shell脚本分享
- shell脚本备份mysql和项目数据