通常在使用命令转储 MySQL 数据库后,mysqldump
我会立即 tar/gzip 生成的文件。我正在寻找一种在一个命令中执行此操作的方法:
所以从这里:
mysqldump dbname -u root -p > dbname.sql
tar czvf dbname.sql.tgz dbname.sql
rm dbname.sql
对于这样的事情:
mysqldump dbname -u root -p > some wizardry > dbname.sql.tgz
甚至更好(因为我通常将转储文件scp'ing到另一台服务器):
mysqldump dbname -u root -p > send dbname.sql.tgz to user@host
我在 debian 上运行 bash。
你不能在这样的管道中使用 tar ,而且你也不需要它,因为你只输出一个文件。tar 仅在您有多个文件时才有用。
如果您在本地运行它,只需使用以下命令备份您的数据库并使用 gzip 对其进行压缩:
(编辑:固定 -c 键)
使用命名管道。
我一直在用它,太棒了。
http://en.wikipedia.org/wiki/Named_pipe
我写了一个快速脚本来吸收远程 mysql 数据库。它使用 mysql 压缩、gzip 和 ssh 压缩。以令人难以置信的速度吸收了一个多 GB 的数据库。
一个附带的好处是它不需要源数据库服务器上的可用空间,因此您可以在修剪数据之前使用它在可用磁盘空间为零的服务器上备份数据库。
希望它可以帮助某人。
使用
pv
和监控率!或者,如果您知道大小 (3GB),请获得准确的估计:
尝试这个:
请不要说我不擅长这些事情,我只是将网络上的 2 个选项合二为一。
以其他方式可能会更好,但这是对我有用的单线。
但是
ssh.keys
,如果您想在脚本等中使用它,则需要安装并接受它crontab
。你可以这样做:
mysqldump --add-drop-table -h dbhost -u dbuser -p dbname (tablename tablename ... ) | gzip -c > wp.sql.gz
例如
mysqldump --add-drop-table -h localhost -u root -p wordpress | gzip -c > wp.sql.gz
我一直在研究下面的这个bash 脚本,它试图将我在使用 mysql 转储/恢复时看到的所有好的建议放在一起。它针对远程操作。
只需重新配置变量并尝试一下。:)
特点是:
需要改进的地方:
我在这里分享这个脚本,希望社区可以改进它。 (最好使用 nano 或其他为代码着色的编辑器查看)
- - - - - - - - - - - - - - - - - 剪这里 - - - - - - - - ------------------
您还可以将密码存储在配置文件中并使用此选项 --defaults-extra-file:
配置文件可能如下所示: