Home / بک آپ گیری خودکار از دیتابیس ها در شل لینوکس

بک آپ گیری خودکار از دیتابیس ها در شل لینوکس


  1. #!/bin/bash
  2. # Shell script to backup MySql database
  3. # To backup Nysql databases file to /backup dir and later pick up by your
  4. # script. You can skip few databases from backup too.
  5. # For more info please see (Installation info):
  6. # http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html
  7. # Last updated: Aug - 2005
  8. # --------------------------------------------------------------------
  9. # This is a free shell script under GNU GPL version 2.0 or above
  10. # Copyright (C) 2004, 2005 nixCraft project
  11. # Feedback/comment/suggestions : http://cyberciti.biz/fb/
  12. # -------------------------------------------------------------------------
  13. # This script is part of nixCraft shell script collection (NSSC)
  14. # Visit http://bash.cyberciti.biz/ for more information.
  15. # -------------------------------------------------------------------------
  16.  
  17. MyUSER="SET-MYSQL-USER-NAME" # USERNAME
  18. MyPASS="SET-PASSWORD" # PASSWORD
  19. MyHOST="localhost" # Hostname
  20.  
  21. # Linux bin paths, change this if it can not be autodetected via which command
  22. MYSQL="$(which mysql)"
  23. MYSQLDUMP="$(which mysqldump)"
  24. CHOWN="$(which chown)"
  25. CHMOD="$(which chmod)"
  26. GZIP="$(which gzip)"
  27.  
  28. # Backup Dest directory, change this if you have someother location
  29. DEST="/backup"
  30.  
  31. # Main directory where backup will be stored
  32. MBD="$DEST/mysql"
  33.  
  34. # Get hostname
  35. HOST="$(hostname)"
  36.  
  37. # Get data in dd-mm-yyyy format
  38. NOW="$(date +"%d-%m-%Y")"
  39.  
  40. # File to store current backup file
  41. FILE=""
  42. # Store list of databases
  43. DBS=""
  44.  
  45. # DO NOT BACKUP these databases
  46. IGGY="test"
  47.  
  48. [ ! -d $MBD ] && mkdir -p $MBD || :
  49.  
  50. # Only root can access it!
  51. $CHOWN 0.0 -R $DEST
  52. $CHMOD 0600 $DEST
  53.  
  54. # Get all database list first
  55. DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
  56.  
  57. for db in $DBS
  58. do
  59. skipdb=-1
  60. if [ "$IGGY" != "" ];
  61. then
  62. for i in $IGGY
  63. do
  64. [ "$db" == "$i" ] && skipdb=1 || :
  65. done
  66. fi
  67.  
  68. if [ "$skipdb" == "-1" ] ; then
  69. FILE="$MBD/$db.$HOST.$NOW.gz"
  70. # do all inone job in pipe,
  71. # connect to mysql using mysqldump for select mysql database
  72. # and pipe it out to gz file in backup dir :)
  73. $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
  74. fi
  75. done

    Save the script and run it as a cron job:
    @daily /path/to/yourmysql.sh

    بازگرداندن داده ها
    mysql -u root -p sales < /path/to/sales-backup-file.sql



     RSS of this page