> 数据库 > MySQL >

mysql定时备份和删除

 

 


 
  1. <span style="font-size:18px;">#!/bin/bash  
  2. #每天备份一次,并删除7天前备份的旧数据  
  3.   
  4. #数据库配置信息  
  5. db_user=******  
  6. db_passwd=******  
  7. db_host=localhost  
  8.   
  9.   
  10. #备份目录  
  11. backup_dir=/home/database/  
  12.   
  13. #获取当前时间  
  14. time=`date +%Y%m%d`  
  15.   
  16. #mysql命令  
  17. MYSQL=/opt/mysql/bin/mysql  
  18. MYSQLDUMP=/opt/mysql/bin/mysqldump  
  19.   
  20. #测试备份目录是否可写,如果不可写就报错退出  
  21. test ! -w $backup_dir && echo "Error: $backup_dir is un-writeable." && exit 0  
  22.   
  23. #测试备份目录中最新备份文件夹是否存在,如果不在就创建  
  24. test ! -d "$backup_dir/backup.0/" && mkdir "$backup_dir/backup.0"  
  25.   
  26.   
  27. #制定要备份的数据库  
  28. for db in bbs home  
  29. do  
  30.     $MYSQLDUMP -u $db_user -h $db_host -p$db_passwd $db | gzip -6 > "$backup_dir/backup.0/$db.$time.sql.gz"   
  31. done  
  32.   
  33. #检测最旧的备份数据库是否存在,如果在就删掉  
  34. test -d "$backup_dir/backup.7/" && rm -rf "$backup_dir/backup.7"  
  35.   
  36. #循环修改备份数据库目录的编号,记录新旧程度  
  37. for int in 6 5 4 3 2 1 0  
  38. do  
  39.     if(test -d "$backup_dir"/backup."$int")  
  40.     then  
  41.         next_int=`expr $int + 1`  
  42.         mv "$backup_dir"/backup."$int" "$backup_dir"/backup."$next_int"  
  43.     fi  
  44. done  
  45. exit 0;</span>  
  46.  


(责任编辑:IT)