Por lo general, después de volcar una base de datos MySQL con el mysqldump
comando, inmediatamente tar / gzip el archivo resultante. Estoy buscando una manera de hacer esto en un comando:
Entonces de esto:
mysqldump dbname -u root -p > dbname.sql
tar czvf dbname.sql.tgz dbname.sql
rm dbname.sql
A algo como esto:
mysqldump dbname -u root -p > some wizardry > dbname.sql.tgz
O incluso mejor (ya que generalmente estoy scp'ing el archivo de volcado a otro servidor):
mysqldump dbname -u root -p > send dbname.sql.tgz to user@host
Estoy ejecutando bash en Debian.
mysqldump | tar cf - | gzip -c | ssh ... 'cat > file.tgz'
mysqldump --opt <database> | gzip -c | cat > $(date +%Y-%m-%d-%H.%M.%S).sql.gz
gzip -c > $(date +%Y-%m-%d-%H.%M.%S).sql.gz
netcat
lugar de tuberías para ssh. Debería ahorrar un poco en la sobrecarga de cifrado de ssh, si se transfiere a través de una red segura (o si no le importa la seguridad). Hoy en día también podría considerar usar enxz
lugar degzip
.Si está ejecutando esto localmente, simplemente use el siguiente comando para hacer una copia de seguridad de su base de datos y comprimirla usando gzip:
(Editar: clave fija -c)
fuente
gzip -c
, ¿verdad?Use una tubería con nombre.
Lo uso todo el tiempo, es increíble.
http://en.wikipedia.org/wiki/Named_pipe
fuente
mkfifo mysql_pipe; gzip -9 -c < mysql_pipe > name_of_dump.gz &; mysqldump database > mysql_pipe; rm mysql_pipe
Ahí, una línea. Por supuesto, mantendría el tubo alrededor y lo usaría siempre.Escribí un script rápido para aspirar una base de datos remota de mysql. Utiliza compresión mysql, compresión gzip y ssh. Aspiró una base de datos multi GB a una velocidad increíble.
Un beneficio adicional es que no requiere espacio libre en el servidor de la base de datos de origen, por lo que puede usarlo para hacer una copia de seguridad de una base de datos en un servidor con cero espacio libre en el disco antes de realizar una poda de sus datos.
Espero que ayude a alguien.
fuente
Uso
pv
y tasa de monitor!O, si conoce el tamaño (3GB), obtenga una estimación precisa:
fuente
Prueba esto:
Por favor, no es que no sea bueno en estas cosas, solo combiné 2 opciones en la web en una sola.
Es muy posible que sea mejor de alguna otra manera, pero esta es una frase que funciona para mí.
Sin embargo, requiere
ssh.keys
ser instalado y aceptado si desea utilizarlo en scriptscrontab
o similares.fuente
Puedes hacer como:
mysqldump --add-drop-table -h dbhost -u dbuser -p dbname (tablename tablename ... ) | gzip -c > wp.sql.gz
p.ej
mysqldump --add-drop-table -h localhost -u root -p wordpress | gzip -c > wp.sql.gz
fuente
He estado trabajando en este script bash a continuación que intenta reunir todos los buenos consejos que he visto cuando se trata de volcar / restaurar con mysql. Está dirigido a operaciones remotas.
Solo reconfigura los vars y pruébalo. :)
Las características son:
Lo que necesita mejorar:
Comparto este script aquí esperando que la comunidad pueda mejorarlo. (Se ve mejor con nano u otro editor que colorea el código)
--------------------------------- corta aquí --------------- -------------------
fuente
También puede almacenar su contraseña en un archivo de configuración y usar esta opción --defaults-extra-file:
El archivo de configuración puede verse así:
fuente