Backup mysqldump usando Shell Script
Publicado por CalRaiden© 11/03/2009
[ Hits: 16.614 ]
Homepage: www.calraiden.com.br
Esses dias fiz um script em php para realizar um mysql_dump. Porém, procurando na internet, encontrei um em shell, que em questão de perfomance mostrou-se bastante superior. Fiz algumas alterações e consertei um pequeno bug, sendo que realizava backup de todo mysql.
No meu caso só interessava backup das tabelas de um banco. Retirei a compactação atráves GZIP, mas isso está exigindo muitos recursos do server e ainda aumentava o tempo de execução do script. Por essa razão tirei, caso alguém veja o script original, saberá o que estou falando.
Acrescentei um log simples no final, apenas para saber quando começou a executar e quando terminou.
#!/bin/bash # Shell script to backup MySql database # To backup Nysql databases file to /backup dir and later pick up by your # script. You can skip few databases from backup too. # For more info please see (Installation info): # http://www.cyberciti.biz/nixcraft/vivek/blogger/2005/01/mysql-backup-script.html # Last updated: Aug - 2005 # -------------------------------------------------------------------- # This is a free shell script under GNU GPL version 2.0 or above # Copyright (C) 2004, 2005 nixCraft project # Feedback/comment/suggestions : http://cyberciti.biz/fb/ # ------------------------------------------------------------------------- # This script is part of nixCraft shell script collection (NSSC) # Visit http://bash.cyberciti.biz/ for more information. # ------------------------------------------------------------------ #HORA INICIO DO SCRIPT --OPCIONAL, APENAS PARA SABER QUANDO COMEÇOU A EXECUTAR E TERMINOU START="$(date)" #configuration MyUSER="root" # USERNAME MyPASS="" # PASSWORD MyHOST="localhost" # Hostname # Linux bin paths, change this if it can't be autodetected via which command MYSQL="$(which mysql)" MYSQLDUMP="$(which mysqldump)" CHOWN="$(which chown)" CHMOD="$(which chmod)" # Backup Dest directory, change this if you have someother location DEST="/root" # Main directory where backup will be stored MBD="$DEST/bkp_mysql_austin" # Get data in dd-mm-yyyy format NOW="$(date +"%d-%m-%Y")" # File to store current backup file FILE="" # Store list of databases TABLES="" # BACKUP these databases DATABASE="live2go" mkdir $MBD/$NOW # Only root can access it! $CHOWN 0.0 -R $MBD $CHMOD 0600 $MBD # Get all database list first TABLES="$($MYSQL -u $MyUSER -h $MyHOST --password=$MyPASS $DATABASE -Bse 'SHOW TABLES')" for tables in $TABLES do FILE="$MBD/$NOW/$tables.gz" # do all inone job in pipe, # connect to mysql using mysqldump for select mysql database # and pipe it out to gz file in backup dir :) $MYSQLDUMP --add-drop-table --extended-insert --no-create-db -u $MyUSER -h $MyHOST --password=$MyPASS $DATABASE $tables > $FILE done #HORA FIM DO SCRIPT --OPCIONAL, APENAS PARA SABER QUANDO COMEÇOU A EXECUTAR E TERMINOU END="$(date)" #LOG SCRIPT touch $MBD/$NOW/$NOW echo $START >> $MBD/$NOW/$NOW echo $END >> $MBD/$NOW/$NOW #FIM DO LOG DO SCRIPT exit;
Script para obter informações do tempo
Baixa, instala, configura e executa o NO-IP.
Compilador SH-Compiler usando GCC 4.6 no Debian Wheezy
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Como converter imagens PNG/JPEG para SVG em linha de comando
Fez porcaria no teu repositório Git? Aprenda a restaurar uma versão anterior do seu código!
Restaurando Fontes de Download do Hydra no Linux
Atualizando "na marra" o YT-DLP quando começa a dar erro de downloads
Como instalar o WPS com interface e corretor ortográfico em PT-BR no Arch Linux
[AJUDA] Problemas ao atualizar BIOS da Gigabyte B550M K rev. 1.1 — “RO... (4)
Inicializaçao lenta (alguns processos rodando) Debian 11 Bullseye [RES... (2)
Erro na atualização dos pacotes (6)