Heim > Datenbank > MySQL-Tutorial > 在CentOS实现mysql数据库的自动备份_MySQL

在CentOS实现mysql数据库的自动备份_MySQL

WBOY
Freigeben: 2016-06-01 13:32:15
Original
1038 Leute haben es durchsucht

CentOS

bitsCN.com

在CentOS实现mysql数据库的自动备份

 

       数据是一个比较重要的数据,经常需要备份,每次都手动比较麻烦。本脚本主要现实在CentOS中实现对数据库的备份和保留最近十五天的备份文件。避免太多无用陈旧的备份占用空间。

#!/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  #删除文件。  
Nach dem Login kopieren

 

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

bitsCN.com
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage