我正在尝试从防火墙后面进行远程备份。将其分解为在 crontab 中调用的自己的脚本确实没有问题,但这一点都不有趣!我正在尝试做什么:
pg_dump -U my_user my_database | ssh me@myserver "> backup.sql"
Run Code Online (Sandbox Code Playgroud)
是备份 postgresql 数据库(将所有内容转储到 stdout)并将其重定向到远程 ssh 命令,该命令只需将其放置在 backup.sql 中。
不幸的是,我得到的只是远程设备上的一个空的“backup.sql”。重定向不是我的强项,所以任何提示将不胜感激。谢谢。
Ern*_*nie 12
更好的是:在 SSH 之前压缩它:
pg_dump -U my_user my_database | gzip -c | ssh me@myserver "cat > backup.sql.gz"
Run Code Online (Sandbox Code Playgroud)
这通过 SQL 转储节省了大量带宽。
我实际上是反过来做的。我有备份服务器登录到要备份的服务器。这意味着如果任何一台服务器(除了备份服务器,它有一些严重的法西斯安全)在根级别受到损害,备份服务器 - 以及所有其他服务器!- 默认情况下不会受到损害。
因此,我用于远程执行 SQL 转储的命令略有不同:
ssh <server> "pg_dump -U <user> <database> | gzip -c" > /backups/sqlbackup.sql.gz
Run Code Online (Sandbox Code Playgroud)
特别注意引号的位置 - 它们定义了在远程端执行的内容以及在本地执行的内容。
尝试
pg_dump -U my_user my_database | ssh me@myserver "cat > backup.sql"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8368 次 |
最近记录: |