Advertisement
Guest User

Untitled

a guest
Mar 15th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. MYSQL_USER="root"
  4. MYSQL_PASSWORD="xxxxxx"
  5.  
  6. MYSQL_DB="mysql tlog3 acccount"
  7.  
  8.  
  9. BACKUP_ROOT="/backup/mysql"
  10. BACKUP_LOG="/var/log/backup-mysql.log"
  11.  
  12. BACKUP_SERVICE="MySQL-Daily"
  13. BACKUP_START=$(date +"%F %T")
  14.  
  15.  
  16. HOSTNAME=$(hostname -s)
  17.  
  18. ###################################
  19. DELETE_DATE=$(date --date='1 months ago' +%Y%m%d)
  20. DELETE_PATH=$BACKUP_ROOT/
  21.  
  22. BACKUP_DATE=$(date +"%Y%m%d")
  23. BACKUP_PATH=$BACKUP_ROOT/$BACKUP_DATE
  24. MYSQL_CMD="/usr/bin/mysql -u $MYSQL_USER -p$MYSQL_PASSWORD"
  25. MYSQL_DUMP="/usr/bin/mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD"
  26.  
  27.  
  28. if [ ! -z $1 ];
  29. then
  30. BACKUP_ROOT="$BACKUP_ROOT-$1"
  31. fi
  32.  
  33. echo "-----------------------------------------------------------------" >> $BACKUP_LOG
  34. echo "Starting backup $BACKUP_DATE" >> $BACKUP_LOG
  35. echo "" >> $BACKUP_LOG
  36.  
  37. echo -n " * Delete expire date..." >> $BACKUP_LOG
  38. if [ -d $DELETE_PATH ]; then
  39. rm -rf $DELETE_PATH
  40. fi
  41. echo "done" >> $BACKUP_LOG
  42.  
  43. for DB_NAME in $MYSQL_DB
  44. do
  45. BACKUP_PATH_NEW=$BACKUP_PATH/$DB_NAME
  46. echo -n " * Checking backup directory..." >> $BACKUP_LOG
  47. if [ ! -d $BACKUP_PATH_NEW ]; then
  48. mkdir -p $BACKUP_PATH_NEW
  49. fi
  50. echo "done" >> $BACKUP_LOG
  51.  
  52.  
  53. echo -n " * Fetch $DB_NAME tables..." >> $BACKUP_LOG
  54. tables=$(echo "SHOW TABLES" | $MYSQL_CMD $DB_NAME | grep -v "^Table")
  55. echo "done" >> $BACKUP_LOG
  56.  
  57.  
  58. echo " * Optimize tables..." >> $BACKUP_LOG
  59. for table in $tables
  60. do
  61. echo -n " - $DB_NAME.$table." >> $BACKUP_LOG
  62. echo "REPAIR TABLE \`$table\`" | $MYSQL_CMD $DB_NAME >/dev/null
  63. echo -n "." >> $BACKUP_LOG
  64. echo "OPTIMIZE TABLE \`$table\`" | $MYSQL_CMD $DB_NAME >/dev/null
  65. echo "done" >> $BACKUP_LOG
  66. done
  67.  
  68. echo " * Starting dump database..." >> $BACKUP_LOG
  69. # Backup
  70. for table in $tables
  71. do
  72. echo -n " - $DB_NAME.$table." >> $BACKUP_LOG
  73. $MYSQL_DUMP $DB_NAME $table > $BACKUP_PATH_NEW/$table.sql
  74. #ส่วนนี้ไว้ Zip ครับ จะกิน CPU ตอนแบล๊คอัพ แต่จะลดพื้นที่ในการสำรองได้มากอยู่
  75. #echo -n "." >> $BACKUP_LOG
  76. #gzip $BACKUP_PATH_NEW/$table.sql
  77. echo "done" >> $BACKUP_LOG
  78. done
  79. done
  80.  
  81. echo "Backup end" >> $BACKUP_LOG
  82.  
  83. #command restore all table to db
  84. # ex ls -lha *.sql |awk {‘print “mysql -u root -pxxx dbname < “ $9’}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement