国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

linux unix mysql 數據庫自動備份

2024-07-24 12:38:06
字體:
來源:轉載
供稿:網友

文章給大家介紹在linux unix中利用shell命令實現mysql 數據庫自動備份腳本代碼,有需要了解的朋友只需簡單修改一下即可使用了.

文件名 mysql_data_backup.sh (需要執行權限)

mysql 數據庫表自動備份shell 腳本 (第二版)

調用示例,代碼如下:mysql_data_backup.sh

包含功能:

1.生成備份日志

2.自動檢測指定數據庫中的庫列表,單獨備份每個庫,最后打包為tar文件

3.可指定備份存檔文件(.tar) 保留的數目, 按時間正序清理以前的存檔

4.恢復時可以登錄 mysql 以后直接用 source xxx.sql 自動刪除和創建數據庫,并還原數據.

需要修改的變量,代碼如下:

  1. db_host  //數據庫主機 
  2. db_user //數據庫帳號 
  3. db_passwd //數據庫密碼 
  4. backupFileNum //保留的備份存檔文件數目,超出該數目自動清理 
  5. backupDir //備份文件存放的目錄 
  6. logfile //日志文件路徑 

如何恢復數據:

參見 mysql 數據庫表自動備份shell 腳本,第一版,代碼如下:

  1. #!/bin/bash 
  2. # mysq link user config 
  3. db_host=192.168.0.222 
  4. db_user=admin 
  5. db_passwd=123456 
  6. # backup File number 
  7. backupFileNum=4 
  8.  
  9. # log file 
  10. logfile='/sqlbackup/backup.log' 
  11. # backup of directory Do not bring / 
  12. backupDir="/sqlbackup" 
  13.  
  14.  
  15. check database name 
  16. echo 'Backup begin' 
  17. begin_time=`date '+%s'
  18.  
  19. # get databases list  
  20. databases_content=`mysqlshow -u $db_user -p$db_passwd -h $db_host | sed 's/|//g' | sed 's/ //g' | sed '1,4d' | sed '$d'
  21. check databases if emptyed then exit 
  22. databases_content_check=`echo -n $databases_content > /tmp/mysql_backup_check.tmp` 
  23. if [ ! -s /tmp/mysql_backup_check.tmp ];then 
  24.     echo 'Database Emptyed Backup stop.' 
  25.     exit 
  26. fi 
  27.  
  28. # plan backup of sql databases 
  29. databases=(${databases_content}) 
  30. # get databases length 
  31. databases_len=${#databases[*]} 
  32.  
  33. # backup of directory for date 
  34. datestamp=$(date "+%Y%m%d"
  35.  
  36. # final backup directroy 
  37. fileDir="$backupDir/$datestamp" 
  38.  
  39. # auto create target directory 
  40. if [ ! -d $backupDir ];then 
  41.  mkdir $backupDir 
  42. fi 
  43. if [ ! -d $fileDir ];then 
  44.  mkdir $fileDir 
  45. fi 
  46. if [ ! -d $logfile ];then 
  47.  touch $logfile 
  48. fi 
  49.  
  50. echo "total $databases_len databases." 
  51.  
  52. for ((i=0;i<$databases_len;i++)) 
  53. do 
  54.   dbName="${databases[$i]}" 
  55.   fileName="${databases[$i]}.sql" 
  56.   filePath="$fileDir/$fileName" 
  57.   echo "Database [$dbName] Backup ..." 
  58.   echo "DROP DATABASE IF EXISTS `$dbName`;"  > $filePath 
  59.   echo "CREATE DATABASE `$dbName` CHARACTER SET `utf8`;" >> $filePath 
  60.   echo "use $dbName;" >> $filePath 
  61.   mysqldump -h $db_host  -u $db_user -p$db_passwd $dbName >> $filePath 
  62. done 
  63.  
  64.  
  65.  
  66. # tar files 
  67. cd $backupDir 
  68. tar cvf ${datestamp}.tar ./${datestamp} 
  69. delete source archive 
  70. rm -rf ./${datestamp} 
  71. end_time=`date '+%s'
  72. total_time=$[end_time-begin_time] 
  73. echo 'Backup Done' 
  74. echo "Total time: ${total_time} second" 
  75.  
  76. now_date=`date '+%Y-%m-%d %k:%M:%S'
  77. # save log 
  78. echo "${now_date} : Backup Databases : Total time [${total_time}s]" >> $logfile 
  79.  
  80.  
  81. begin clean excess of backup file 
  82.  
  83. count backup dir name of length; 
  84. backupDir_length=`expr length "$backupDir"
  85. # get tar file list 
  86. backupFile_list=` find $backupDir -name "*.tar" | sort -n -r -k 1.$backupDir_length` 
  87. set array 
  88. backupFiles=(${backupFile_list}) 
  89. backupFile_length=${#backupFiles[*]} 
  90. if [ $backupFile_length -gt $backupFileNum ];then 
  91.         for((i=$backupFile_length;i>$backupFileNum;i--)) 
  92.         do 
  93.                 fileName="${backupFiles[$i-1]}" 
  94.                 rm -rf $fileName 
  95.                 #save log 
  96.                 echo "file: $fileName deleted" 
  97.                 echo "file: $fileName deleted" >> $logfile 
  98.         done  --Vevb.com 
  99. else 
  100.         echo "backup file number normal." 
  101. fi

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新密市| 城固县| 金堂县| 红河县| 蓝田县| 庆安县| 公主岭市| 利津县| 横峰县| 鸡西市| 富宁县| 广河县| 安达市| 万荣县| 杭锦后旗| 元谋县| 应城市| 牡丹江市| 保山市| 汕头市| 兴隆县| 邻水| 南宫市| 大悟县| 蓬溪县| 沾益县| 垦利县| 云安县| 墨江| 河西区| 涿州市| 灌南县| 梅河口市| 榆社县| 吴堡县| 仁布县| 姜堰市| 蒲城县| 招远市| 武义县| 闽侯县|