Copia de seguridad de una línea, compresión, archivo de base de datos scp

Copia de seguridad de una línea, compresión, archivo de base de datos scp

Apoyo a una empresa con un sitio web alojado de forma remota. Utilizan bases de datos PostgreSQL.

No puedo escribir scripts en el servidor remoto y no quiero almacenar ningún archivo de respaldo en el servidor remoto, pero puedo ejecutar trabajos cron y tengo acceso a la clave pública SSH del servidor remoto. Configuré un host Linux local para aceptar la clave privada del host remoto para la autenticación.

Necesito crear un script de una línea para realizar una copia de seguridad, comprimir y enviar el archivo de copia de seguridad a mi sistema Linux local de forma sincrónica.

Si se pudiera acceder a mi máquina Linux local a través de SSH en mylinuxbox.foo.comel puerto 122 y el nombre de mi base de datos fuera mydatabase, ¿cómo se vería este comando de trabajo cron de una sola línea?

Respuesta1

Suponiendo que esté utilizando autenticación de identidad (o .pgpass) para la base de datos, probablemente haría algo como lo siguiente:

pg_dump -Udbuser -h127.0.0.1 mydatabase |gzip -c > mydatabase.backup.gz; scp -P 122 mydatabase.backup.gz [email protected]:; rm -f mydatabase.backup.gz

Editando para agregar otra opción...

Si es realmente importante no tener almacenamiento intermedio del archivo de respaldo, puede modificar lo anterior para que se parezca más a esto:

pg_dump -Udbuser -h127.0.0.1 mydatabase |gzip -c | ssh -p 122 [email protected] "cat >mydatabase.backup.gz"

información relacionada