/home/unix Личенен блог на Радослав Панев

26май/090

mysql backup скрипт

Преди време търсих скрипт с помоща на,  който да мога да си правя backup на базите данни. Има много но аз си харесах този и го споделям с Вас. Не помня  от каде го намрих но искрено благодаря на човека, който го е написал.

А ето и него :

  1. #!/bin/bash
  2.  
  3. MyUSER="SET-MYSQL-USER-NAME"     # USERNAME
  4. MyPASS="SET-PASSWORD"       # PASSWORD
  5. MyHOST="localhost"          # Hostname
  6.  
  7. # Linux bin paths, change this if it can not be autodetected via which command
  8. MYSQL="$(which mysql)"
  9. MYSQLDUMP="$(which mysqldump)"
  10. CHOWN="$(which chown)"
  11. CHMOD="$(which chmod)"
  12. GZIP="$(which gzip)"
  13.  
  14. # Backup Dest directory, change this if you have someother location
  15. DEST="/backup"
  16.  
  17. # Main directory where backup will be stored
  18. MBD="$DEST/mysql"
  19.  
  20. # Get hostname
  21. HOST="$(hostname)"
  22.  
  23. # Get data in dd-mm-yyyy format
  24. NOW="$(date +"%d-%m-%Y")"
  25.  
  26. # File to store current backup file
  27. FILE=""
  28. # Store list of databases
  29. DBS=""
  30.  
  31. # DO NOT BACKUP these databases
  32. IGGY="test"
  33.  
  34. [ ! -d $MBD ] && mkdir -p $MBD || :
  35.  
  36. # Only root can access it!
  37. $CHOWN 0.0 -R $DEST
  38. $CHMOD 0600 $DEST
  39.  
  40. # Get all database list first
  41. DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
  42.  
  43. for db in $DBS
  44. do
  45.     skipdb=-1
  46.     if [ "$IGGY" != "" ];
  47.     then
  48.         for i in $IGGY
  49.         do
  50.             [ "$db" == "$i" ] && skipdb=1 || :
  51.         done
  52.     fi
  53.  
  54.     if [ "$skipdb" == "-1" ] ; then
  55.         FILE="$MBD/$db.$HOST.$NOW.gz"
  56.         # do all inone job in pipe,
  57.         # connect to mysql using mysqldump for select mysql database
  58.         # and pipe it out to gz file in backup dir :)
  59.         $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
  60.     fi
  61. done
Сподели с приятели:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • blogmarks
  • MySpace
  • PDF
  • RSS
  • Socialogs
  • Webnews.de
  • Add to favorites
  • Live
  • MyShare
Коментари (0) Връзки за обратно следене (0)

Няма все още коментари.


Leave a comment

(required)

Все още няма връзки за обратно следене.