Quickly Backup / dump MySql / Postgres database to another remote server securely

in Categories Backup, FreeBSD, Howto, Linux, MySQL, Postgresql, RedHat/Fedora Linux, Sys admin, Tips, UNIX last updated October 1, 2007

Using UNIX pipe concept one can dump database to another server securely using ssh protocol. All you need remote execution rights for the ‘dd’ command, over SSH. This allows you to run database dumps across an encrypted channel.

Dump Postgres Database using ssh

Use pg_dump command command:
pg_dump -U USERNAME YOUR-DATABASE-NAME | ssh user@remote.server.com "dd of=/pgsql/$(date +'%d-%m-%y')"

Dump MySQL Database using ssh

Type the following command:
mysqldump -u USERnAME -p'PASSWORD' YOUR-DATABASE-NAME | ssh user@remote.server.com "dd of=/mysql/$(date +'%d-%m-%y')"

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Share this on (or read 5 comments/add one below):

5 comment

  1. How do you include the Postgre password in the command line and stop the system from responding that file not found on the remote server?

  2. The MySQL backup command is not secure — anyone can view the password using `ps` on the local machine. It is preferred to use the .my.cnf file, with a [mysqldump] header.

  3. mysqldump -u USERnAME -p’PASSWORD’ YOUR-DATABASE-NAME | ssh ….

    this will lock your db-server for a very long time …

    better do a mysqlcopy … –noindexes first, then rebuild the indexes, and then go on as described.

  4. Same problem as Ron. Should I touch the file first ? Seems odd… Anyway, thanks for the tips! 🙂

    Have a question? Post it on our forum!