Guest User

Untitled

a guest
Nov 3rd, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. ## Script para backup da databases Mysql com reternção GFS para 6 meses
  2.  
  3. script faz backup das functions,triggers e dados...
  4. Script faz cópia dos dados ao final para servidor remoto via pasta CIFS de compartilhamento...
  5.  
  6. ```bash
  7. #!/bin/bash
  8. IP_SERVER_MYSQL="1.2.3.4"
  9. USER="USERBANCO"
  10. PASSWORD="SENHAUSERBANCO"
  11.  
  12. DATABACKUP=$(date +%Y.%m.%d)
  13. MYSQLDUMP="/usr/bin/mysqldump"
  14. MYSQL="/usr/bin/mysql"
  15.  
  16.  
  17. PASTA_REMOTA_STORAGE_OI='\\1.2.3.4\demo'
  18. USER_PASTA_REMOTA_STORAGE_OI='OI000000'
  19. PASS_PASTA_REMOTA_STORAGE_OI='XXXXXXXXXX'
  20.  
  21. efetuaColetasBases(){
  22.  
  23. mkdir /home/backups/mysqldump/${NOME_MODO_BACKUP}/${DATABACKUP}
  24. PASTA_BACKUP="/home/backups/mysqldump/${NOME_MODO_BACKUP}/${DATABACKUP}/"
  25.  
  26. if [ -z "$1" ]; then
  27. databases=$($MYSQL -h ${IP_SERVER_MYSQL} --user=$USER --password=$PASSWORD --batch --skip-column-names -e "SHOW DATABASES;" | grep -v '^mysql$\|^information_schema$')
  28. for database in $databases; do
  29. echo "Bakuping > ${PASTA_BACKUP}${database}"
  30. mysqldump -h ${IP_SERVER_MYSQL} -u ${USER} -p${PASSWORD} --lock-tables=false --force $database | gzip > ${PASTA_BACKUP}${database}.data.sql.gz
  31. mysqldump -h ${IP_SERVER_MYSQL} -u ${USER} -p${PASSWORD} --lock-tables=false --force --routines --no-data --no-create-db --skip-triggers --skip-opt $database > ${PASTA_BACKUP}${database}.functions.sql
  32. mysqldump -h ${IP_SERVER_MYSQL} -u ${USER} -p${PASSWORD} --lock-tables=false --force --no-data --no-create-db --triggers --skip-opt $database > ${PASTA_BACKUP}${database}.trig_schema.sql
  33. done
  34. else
  35. for database in ${@}; do
  36. echo "Bakuping > ${PASTA_BACKUP}${database}"
  37. mysqldump -h ${IP_SERVER_MYSQL} -u ${USER} -p${PASSWORD} --lock-tables=false --force $database | gzip > ${PASTA_BACKUP}${database}.data.sql.gz
  38. mysqldump -h ${IP_SERVER_MYSQL} -u ${USER} -p${PASSWORD} --lock-tables=false --force --routines --no-data --no-create-db --skip-triggers --skip-opt $database > ${PASTA_BACKUP}${database}.functions.sql
  39. mysqldump -h ${IP_SERVER_MYSQL} -u ${USER} -p${PASSWORD} --lock-tables=false --force --no-data --no-create-db --triggers --skip-opt $database > ${PASTA_BACKUP}${database}.trig_schema.sql
  40. done
  41. fi
  42.  
  43. #Vamos Agrupar arquivos e excluir origem...
  44. tar --remove-files -cvf /home/backups/mysqldump/${NOME_MODO_BACKUP}/${DATABACKUP}.tar $PASTA_BACKUP/
  45. }
  46.  
  47.  
  48. defineModoBackup(){
  49. # %w day of week (0..6); 0 is Sunday
  50. DIA_SEMANA=$(date +%w)
  51. # %d day of month (e.g., 01)
  52. DIA_MES=$(date +%d)
  53.  
  54. #Vamos Ver se é dia do bkp MENSAL
  55. if (( $DIA_MES == 1 )); then
  56. NOME_MODO_BACKUP=MES
  57. echo "MES"
  58. else
  59. #Vamos ver se é dia do backup DIÁRIO
  60. if (( $DIA_SEMANA < 6 )); then
  61. NOME_MODO_BACKUP=DIA
  62. echo "DIA"
  63. #Se não é diário, então é o SEMANAL
  64. else
  65. NOME_MODO_BACKUP=SEMANA
  66. echo "SEMANA"
  67. fi
  68. fi
  69. }
  70.  
  71.  
  72. limpa_bkps_antigos(){
  73. CAMINHO="/home/backups/mysqldump/$1"
  74. DIAS_BKP=$2
  75. CONTADIR=`ls $CAMINHO | wc -l`;
  76. DIRETORIO=`ls $CAMINHO | sort `;
  77. let CONTADIR=$(($CONTADIR-$DIAS_BKP))
  78. CONTA=0;
  79. for j in $DIRETORIO ; do
  80. if [ $CONTA -lt $CONTADIR ] ; then
  81. rm $CAMINHO/$j;
  82. let CONTA=CONTA+1;
  83. fi;
  84. done;
  85. }
  86.  
  87. montaDiretorioRemotoBackup(){
  88. PAsTA_MONTAGEM_REMOTA="/mnt"
  89. if grep -qs "$PAsTA_MONTAGEM_REMOTA" /proc/mounts; then
  90. echo "Tah Montado!"
  91. else
  92. echo "Nao Tah montado... vamos tentar montar..."
  93. mount -t cifs ${PASTA_REMOTA_STORAGE_OI} -o username=${USER_PASTA_REMOTA_STORAGE_OI},password=${PASS_PASTA_REMOTA_STORAGE_OI} /mnt
  94. if [ $? -eq 0 ]; then
  95. echo "Montamos uhu!"
  96. else
  97. echo "Ferou... nao rolou montar..."
  98. exit
  99. fi
  100. fi
  101. }
  102.  
  103. sincronizaBkpLocalRemoto(){
  104. sudo rsync -Cravzp --delete /home/backups/mysqldump/ /mnt/
  105. }
  106.  
  107.  
  108. defineModoBackup
  109.  
  110. efetuaColetasBases
  111.  
  112. limpa_bkps_antigos DIA 6
  113.  
  114. limpa_bkps_antigos SEMANA 4
  115.  
  116. limpa_bkps_antigos MES 6
  117.  
  118. montaDiretorioRemotoBackup
  119.  
  120. sincronizaBkpLocalRemoto
  121. ```
Add Comment
Please, Sign In to add comment