Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## Script para backup da databases Mysql com reternção GFS para 6 meses
- script faz backup das functions,triggers e dados...
- Script faz cópia dos dados ao final para servidor remoto via pasta CIFS de compartilhamento...
- ```bash
- #!/bin/bash
- IP_SERVER_MYSQL="1.2.3.4"
- USER="USERBANCO"
- PASSWORD="SENHAUSERBANCO"
- DATABACKUP=$(date +%Y.%m.%d)
- MYSQLDUMP="/usr/bin/mysqldump"
- MYSQL="/usr/bin/mysql"
- PASTA_REMOTA_STORAGE_OI='\\1.2.3.4\demo'
- USER_PASTA_REMOTA_STORAGE_OI='OI000000'
- PASS_PASTA_REMOTA_STORAGE_OI='XXXXXXXXXX'
- efetuaColetasBases(){
- mkdir /home/backups/mysqldump/${NOME_MODO_BACKUP}/${DATABACKUP}
- PASTA_BACKUP="/home/backups/mysqldump/${NOME_MODO_BACKUP}/${DATABACKUP}/"
- if [ -z "$1" ]; then
- databases=$($MYSQL -h ${IP_SERVER_MYSQL} --user=$USER --password=$PASSWORD --batch --skip-column-names -e "SHOW DATABASES;" | grep -v '^mysql$\|^information_schema$')
- for database in $databases; do
- echo "Bakuping > ${PASTA_BACKUP}${database}"
- mysqldump -h ${IP_SERVER_MYSQL} -u ${USER} -p${PASSWORD} --lock-tables=false --force $database | gzip > ${PASTA_BACKUP}${database}.data.sql.gz
- 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
- 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
- done
- else
- for database in ${@}; do
- echo "Bakuping > ${PASTA_BACKUP}${database}"
- mysqldump -h ${IP_SERVER_MYSQL} -u ${USER} -p${PASSWORD} --lock-tables=false --force $database | gzip > ${PASTA_BACKUP}${database}.data.sql.gz
- 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
- 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
- done
- fi
- #Vamos Agrupar arquivos e excluir origem...
- tar --remove-files -cvf /home/backups/mysqldump/${NOME_MODO_BACKUP}/${DATABACKUP}.tar $PASTA_BACKUP/
- }
- defineModoBackup(){
- # %w day of week (0..6); 0 is Sunday
- DIA_SEMANA=$(date +%w)
- # %d day of month (e.g., 01)
- DIA_MES=$(date +%d)
- #Vamos Ver se é dia do bkp MENSAL
- if (( $DIA_MES == 1 )); then
- NOME_MODO_BACKUP=MES
- echo "MES"
- else
- #Vamos ver se é dia do backup DIÁRIO
- if (( $DIA_SEMANA < 6 )); then
- NOME_MODO_BACKUP=DIA
- echo "DIA"
- #Se não é diário, então é o SEMANAL
- else
- NOME_MODO_BACKUP=SEMANA
- echo "SEMANA"
- fi
- fi
- }
- limpa_bkps_antigos(){
- CAMINHO="/home/backups/mysqldump/$1"
- DIAS_BKP=$2
- CONTADIR=`ls $CAMINHO | wc -l`;
- DIRETORIO=`ls $CAMINHO | sort `;
- let CONTADIR=$(($CONTADIR-$DIAS_BKP))
- CONTA=0;
- for j in $DIRETORIO ; do
- if [ $CONTA -lt $CONTADIR ] ; then
- rm $CAMINHO/$j;
- let CONTA=CONTA+1;
- fi;
- done;
- }
- montaDiretorioRemotoBackup(){
- PAsTA_MONTAGEM_REMOTA="/mnt"
- if grep -qs "$PAsTA_MONTAGEM_REMOTA" /proc/mounts; then
- echo "Tah Montado!"
- else
- echo "Nao Tah montado... vamos tentar montar..."
- mount -t cifs ${PASTA_REMOTA_STORAGE_OI} -o username=${USER_PASTA_REMOTA_STORAGE_OI},password=${PASS_PASTA_REMOTA_STORAGE_OI} /mnt
- if [ $? -eq 0 ]; then
- echo "Montamos uhu!"
- else
- echo "Ferou... nao rolou montar..."
- exit
- fi
- fi
- }
- sincronizaBkpLocalRemoto(){
- sudo rsync -Cravzp --delete /home/backups/mysqldump/ /mnt/
- }
- defineModoBackup
- efetuaColetasBases
- limpa_bkps_antigos DIA 6
- limpa_bkps_antigos SEMANA 4
- limpa_bkps_antigos MES 6
- montaDiretorioRemotoBackup
- sincronizaBkpLocalRemoto
- ```
Add Comment
Please, Sign In to add comment