在CentOS实现mysql数据库的自动备份
2015-07-08 11:06
609 查看
数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦。本脚本主要现实在CentOS中实现对数据库的备份和保留最近十五天的备份文件。避免太多无用陈旧的备份占用空间。
只要用cron 指定时间,自动备份即可。
#!/bin/bashid="root" #用户名 pwd="123123" #密码 dbs="conedu commlib" #数据库名字的列表,多个数据库用空格分开。 backuppath="/root/mysqlbackup" #保存备份的位置 day=15 #保留最近几天的备份 [ ! -d $backpath ] &&mkdir -p $backuppath #判断备份目录是否存在,不存时新建目录。 cd $backuppath #转到备份目录,这句话可以省略。可以直接将路径到命令的也行。 backupname=mysql_$(date +%Y-%m-%d) #生成备份文件的名字的前缀,不带后缀。 for db in $dbs; #dbs是一个数据名字的集合。遍历所有的数据。 do mysqldump -u$id -p$pwd -S /var/lib/mysql/mysql.sock $db >$backupname_$db.sql #备份单个数据为.sql文件。放到当前位置 if [ "$?" == "0" ] #$? 得到上一个shell命令的执行的返回值。0表示执行成功。其他表示错误。并将将结果写入到日志中。 then echo $(date +%Y-%m-%d)" $db mysqldump sucess">>mysql.log else echo $(date +%Y-%m-%d)" $db mysql dump failed">>mysql.log exit 0 fidonetar -czf $backupname.tar.gz *.sql #压缩所有sql文件if [ "$?" == "0" ]then echo $(date +%Y-%m-%d)" tar sucess">>mysql.logelse echo $(date +%Y-%m-%d)" tar failed">>mysql.log exit 0firm -f *.sql #删除所有的sql文件delname=mysql_$(date -d "$day day ago" +%Y-%m-%d).tar.gz #得到要删除的太旧的备份的名字。rm -f $delname #删除文件。
只要用cron 指定时间,自动备份即可。
相关文章推荐
- Linux命令英文全称
- ospf multipath和linux kernel的关系
- CentOS 安装 dokuwiki
- 悟空学Linux专栏----第12篇
- 悟空学Linux专栏----第11篇
- Linux常用命令
- 悟空学Linux专栏----第10篇
- 怎样在linux环境安装和使用花生壳
- Linux开发参考书籍
- 悟空学Linux专栏----第8篇
- 悟空学Linux专栏----第7篇
- 悟空学Linux专栏----第6篇
- linux 学习步骤
- 悟空学Linux专栏----第4篇
- linux下mysql二进制方式安装
- linux 配置DNS
- CentOS 命令行下连接加密模式为 WPAWPA2-PSK 的无线网络
- Linux设备驱动——I2C总线
- centos 7 防火墙设置
- LoadRunner远程监测Centos服务性能配置过程