使用mysqldump进行备份并将其放到另一台服务器上(Bash)

我正在使用cron作业每小时进行一次备份,现在我想在默认情况下将这些备份放到另一台服务器上。

我的脚本如下:

mysqldump -u db_user -p db_password db_name| gzip > /current/path/for/backups/backup_$(date).sql.gz 

我能做些什么来改变另一台服务器上新path的当前path?

您可以在目的地上创build一个共享文件夹,并将其挂载到mysql服务器上,然后将脚本中的目标path指定给该挂载的文件夹。 这应该工作。 或者,您可以启动一个scp连接以将conent复制到目标服务器。

我大部分时间都这样做:bakup,复制到另一台服务器,然后从源代码中删除它

 mysqldump -u db_user -p db_password db_name| gzip > /current/path/for/backups/backup_$(date).sql.gz; #Searching, moving to other server and deleting backup files from source. cd /current/path/for/backups/backup_$(date).sql.gz; for f in *.gz do scp -pr $f hostnameofotherserver:/destination/path/mysql/backup wait echo "Removing $f..." rm -f $f done 

有关SSH密钥设置的参考(每次都没有密码)

http://blog.secaserver.com/2011/07/mysql-daily-backup-and-transfer-to-other-server/

https://www.digitalocean.com/community/tutorials/how-to-create-an-off-site-backup-of-your-site-with-rsync-on-centos-6

如果你不想在本地机器上存储文件,你可以尝试这样的:

 mysqldump -u db_user -p db_password db_name| ssh [email protected] "cat > /path/to/dump.sql" 

在传输之前压缩文件( ssh也会尝试压缩它的stream量):

 mysqldump -u db_user -p db_password db_name| gzip | ssh [email protected] "cat > /path/to/dump.sql.gz" 

在远程系统上, cat可能会自动解压缩stream,如果你将它传入一个名为.gz的文件中。 在这种情况下,只需使用另一个后缀。