我通过ssh做这样的备份:
mysqldump -u dbuser -pXXXXXXXX dbname | ssh -i ~/.ssh/id_rsa_backup [email protected] 'cat > /var/backups/services/my_service/db/$(date +"%Y-%m-%d").sql'
如何发送gziped数据来保存带宽和磁盘空间?
添加到〜/ .ssh / config ssh将在飞行中gzip 🙂
http://linux.die.net/man/5/ssh_config获取更详细的选项
Host * Compression yes # from 1 (fast) to 9 (slow, best). The default level is 6 # CompressionLevel 9 # ServerAliveInterval 15 # ServerAliveCountMax 3 # KeepAlive yes Host bak-serv Hostname my.server.com IdentityFile ~/.ssh/id_rsa_backup User backup # Port 22
用你的命令,你得到一个sql.gz在最后不是一个普通的sql文本文件。
mysqldump -u dbuser -pXXXXXXXX dbname \ | gzip | cat | ssh -i ~/.ssh/id_rsa_backup [email protected] \ 'cat > /var/backups/services/my_service/db/$(date +"%Y-%m-%d").sql.gz'
变
mysqldump -u dbuser -pXXXXXXXX dbname \ | ssh bak-serv \ | gzip -c > /var/backups/services/my_service/db/$(date +"%Y-%m-%d").sql.gz