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

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

linxu中每天自動備份mysql兩段腳本

2024-07-24 12:37:46
字體:
來源:轉載
供稿:網(wǎng)友

mysql自動備份要借助于linux中的crontab任務計劃,我們把.sh文件寫好之后需要加入到linux中crontab中,然后設置備份數(shù)據(jù)庫的執(zhí)行時間,下面我來介紹介紹.

定時執(zhí)行腳本,執(zhí)行如下代碼:

crontab -e 00 00 * * * /bin/bash yourpath/mysqlbak.sh

打開自動執(zhí)行文件,代碼如下:

vi /etc/crontab

在etc中加入如下內容,讓其自動執(zhí)行任務,代碼如下:

00 00 * * * root /mysqlbak.sh

以上兩個 00    00    *    *    *  為每天的凌晨自動執(zhí)行腳本.

  1. 分 時 日 月 周 命令 
  2. M: 分鐘(0-59)。每分鐘用*或者 */1表示 
  3. H:小時(0-23)。(0表示0點) 
  4. D:天(1-31)。 
  5. m: 月(1-12)。 
  6. d: 一星期內的天(0~6,0為星期天)。 
  7. 每五分鐘執(zhí)行    */5 * * * *  
  8. 每小時執(zhí)行      0 * * * *  
  9. 每天執(zhí)行        0 0 * * *  
  10. 每周執(zhí)行        0 0 * * 0  
  11. 每月執(zhí)行        0 0 1 * *  
  12. 每年執(zhí)行        0 0 1 1 * 

重啟cron,代碼如下:

  1. /etc/rc.d/init.d/crond restart 
  2. or 
  3. service crond restart 

實例一,mysqlback.sh,代碼如下:

  1. #!/bin/bash  
  2. #功能說明:本功能用于備份數(shù)據(jù)庫  
  3. #編寫日期:2010/12/06  
  4.    
  5. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin 
  6. export PATH  
  7. #數(shù)據(jù)庫用戶名  
  8. dbuser='root' 
  9. #數(shù)據(jù)庫密碼  
  10. dbpasswd='123456' 
  11. #數(shù)據(jù)庫名,可以定義多個數(shù)據(jù)庫,中間以空格隔開,如:test test1 test2  
  12. dbname='test1 test2' 
  13. #備份時間  
  14. backtime=`date +%Y%m%d%H%M%S`  
  15. #日志備份路徑  
  16. logpath='/second/backup' 
  17. #數(shù)據(jù)備份路徑  
  18. datapath='/second/backup' 
  19. #日志記錄頭部  
  20. echo ‘"備份時間為${backtime},備份數(shù)據(jù)庫表 ${dbname} 開始" >> ${logpath}/mysqllog.log  
  21. #正式備份數(shù)據(jù)庫  
  22. for table in $dbnamedo 
  23. source=`mysqldump -u ${dbuser} -p${dbpasswd} ${table}> ${logpath}/${backtime}.sql` 2>> ${logpath}/mysqllog.log;  
  24. #備份成功以下操作  
  25. if [ "$?" == 0 ];then 
  26. cd $datapath  
  27. #為節(jié)約硬盤空間,將數(shù)據(jù)庫壓縮  
  28. tar jcf ${table}${backtime}.tar.bz2 ${backtime}.sql > /dev/null 
  29. #刪除原始文件,只留壓縮后文件  
  30. rm -f ${datapath}/${backtime}.sql  
  31. echo "數(shù)據(jù)庫表 ${dbname} 備份成功!!" >> ${logpath}/mysqllog.log  
  32. else 
  33. #備份失敗則進行以下操作  
  34. echo "數(shù)據(jù)庫表 ${dbname} 備份失敗!!" >> ${logpath}/mysqllog.log  
  35. fi 
  36. done 

實例2,每天凌晨執(zhí)行一次,自動備份這個腳本每天最多只執(zhí)行一次,而且只保留最近五天的備份在服務器上,代碼如下:

  1. #!/bin/bash  
  2. #This is a ShellScript For Auto DB Backup  
  3. #Powered by aspbiz  
  4. #2004-09 
  5. #Setting  
  6. #設置數(shù)據(jù)庫名,數(shù)據(jù)庫登錄名,密碼,備份路徑,日志路徑,數(shù)據(jù)文件位置, 
  7. #以及備份方式  
  8. #默認情況下備份方式是tar,還可以是mysqldump,mysqldotcopy  
  9. #默認情況下,用root(空)登錄mysql數(shù)據(jù)庫,備份至/root/dbxxxxx.tgz  
  10. DBName=mysql  
  11. DBUser=root  
  12. DBPasswd=  
  13. BackupPath=/root/  
  14. LogFile=/root/db.log  
  15. DBPath=/var/lib/mysql/  
  16. #BackupMethod=mysqldump  
  17. #BackupMethod=mysqlhotcopy  
  18. #BackupMethod=tar  
  19. #Setting End 
  20.  
  21. NewFile="$BackupPath"db$(date +%y%m%d).tgz  
  22. DumpFile="$BackupPath"db$(date +%y%m%d)  
  23. OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz 
  24. echo "-------------------------------------------" >> $LogFile  
  25. echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile  
  26. echo "--------------------------" >> $LogFile  
  27. #Delete Old File  
  28. if [ -f $OldFile ]  
  29. then  
  30.    rm -f $OldFile >> $LogFile 2>&1  
  31.    echo "[$OldFile]Delete Old File Success!" >> $LogFile  
  32. else  
  33.    echo "[$OldFile]No Old Backup File!" >> $LogFile  
  34. fi 
  35. if [ -f $NewFile ]  
  36. then  
  37.    echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile  
  38. else  
  39.    case $BackupMethod in  
  40.    mysqldump)  
  41.       if [ -z $DBPasswd ]  
  42.       then  
  43.          mysqldump -u $DBUser --opt $DBName > $DumpFile  
  44.       else  
  45.          mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile  
  46.       fi  
  47.       tar czvf $NewFile $DumpFile >> $LogFile 2>&1  
  48.       echo "[$NewFile]Backup Success!" >> $LogFile  
  49.       rm -rf $DumpFile  
  50.       ;;  
  51.    mysqlhotcopy)  
  52.       rm -rf $DumpFile  
  53.       mkdir $DumpFile  
  54.       if [ -z $DBPasswd ]  
  55.       then  
  56.          mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1  
  57.       else  
  58.          mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1  
  59.       fi  
  60.       tar czvf $NewFile $DumpFile >> $LogFile 2>&1  
  61.       echo "[$NewFile]Backup Success!" >> $LogFile  
  62.       rm -rf $DumpFile  
  63.       ;;  
  64.    *)  
  65.       /etc/init.d/mysqld stop >/dev/null 2>&1  
  66.       tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1  
  67.       /etc/init.d/mysqld start >/dev/null 2>&1  
  68.       echo "[$NewFile]Backup Success!" >> $LogFile  
  69.       ;;   --Vevb.com 
  70.    esac  
  71. fi 
  72. echo "-------------------------------------------" >> $LogFile

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 建昌县| 邯郸市| 台州市| 丹巴县| 绿春县| 获嘉县| 清镇市| 洛阳市| 渭源县| 扎鲁特旗| 贞丰县| 无极县| 玉山县| 南昌县| 汤原县| 德庆县| 永城市| 郓城县| 枣强县| 思南县| 无锡市| 精河县| 舒城县| 新晃| 铜山县| 嵩明县| 兴义市| 石阡县| 当雄县| 遂溪县| 论坛| 三江| 噶尔县| 韶关市| 县级市| 正宁县| 金平| 东山县| 双柏县| 峨边| 黑河市|