php自动备份mysql数据库_使用shell定时自动备份mysql数据库_MySQL

使用shell定时自动备份mysql数据库_MySQL#!/bin/bash

id="root" #用户名

pwd="123456" #密码

dbs="blog.ewsd.cn dangjian.ewsd.cn idc.ewsd.cn shangfa.ewsd.cn" #数据库名字的列表,多个数据库用空格分开

backuppath="/home/mysqlbackup" #保存备份的位置

day=30 #保留最近几天的备份

[ ! -d $backuppath ] &&mkdir -p $backuppath #判断备份目录是否存在,不存时新建目录。

cd $backuppath #转到备份目录,这句话可以省略。可以直接将路径到命令的也行。

backupname=mysql_$(date +%Y-%m-%d) #生成备份文件的名字的前缀,不带后缀。

for db in $dbs; #dbs是一个数据名字的集合。遍历所有的数据。

do

mysqldump -u$id -p$pwd -S /tmp/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

fi

done

tar -czf $backupname.tar.gz *.sql #压缩所有sql文件

if [ "$?" == "0" ]

then

echo $(date +%Y-%m-%d)" tar sucess">>mysql.log

else

echo $(date +%Y-%m-%d)" tar failed">>mysql.log

exit 0

fi

rm -f *.sql #删除所有的sql文件

delname=mysql_$(date -d "$day day ago" +%Y-%m-%d).tar.gz #得到要删除的太旧的备份的名字。

rm -f $delname #删除文件。

将以上脚本加入定时计划crontab中即可,下载地址 注意脚本的执行权限设置。

以上就是使用shell定时自动备份mysql数据库_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!

f68f2add0b68e4f9810432fce46917b7.png

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值