当前位置:Gxlcms > 数据库问题 > [转]Mysql自动备份并保存近15天记录脚本

[转]Mysql自动备份并保存近15天记录脚本

时间:2021-07-01 10:21:17 帮助过:2人阅读

!/bin/bash id="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   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  #删除文件。

只要在 /etc/crontab中添加一行,就可以在指定时间,自动备份了

[转]Mysql自动备份并保存近15天记录脚本

标签:

人气教程排行