Jer*_*acs 2 postgresql linux backup ssh cron
我支持一家拥有远程托管网站的公司。他们使用 PostgreSQL 数据库。
我无法在远程服务器上编写脚本,并且不想在远程服务器上存储任何备份文件,但我可以运行 cron 作业,并且可以访问远程服务器的 SSH 公钥。我设置了本地 Linux 主机来接受远程主机的私钥进行身份验证。
我需要制作一个一行脚本来同步备份、压缩和 scp 备份文件到我的本地 Linux 机器。
如果我的本地 Linux 机器可以通过 SSH 在端口 122 上访问mylinuxbox.foo.com,并且我的数据库名称是mydatabase,那么这个单行 cron 作业命令会是什么样子?
假设您对数据库使用 ident 身份验证(或 .pgpass),我可能会执行如下操作:
pg_dump -Udbuser -h127.0.0.1 mydatabase |gzip -c > mydatabase.backup.gz; scp -P 122 mydatabase.backup.gz user@mylinuxbox.foo.com:; rm -f mydatabase.backup.gz
Run Code Online (Sandbox Code Playgroud)
编辑以添加另一个选项...
如果没有备份文件的中间存储确实很重要,您可以修改上面的内容,使其看起来更像这样:
pg_dump -Udbuser -h127.0.0.1 mydatabase |gzip -c | ssh -p 122 user@mylinuxbox.foo.com "cat >mydatabase.backup.gz"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2740 次 |
| 最近记录: |