postgreSQL pg_通过局域网转储
我正在寻找一种方法,通过安装在工作站驱动器上的LAN备份数据库。基本上是工作站或服务器上的postgreSQL pg_通过局域网转储,postgresql,cron,pg-dump,Postgresql,Cron,Pg Dump,我正在寻找一种方法,通过安装在工作站驱动器上的LAN备份数据库。基本上是工作站或服务器上的Bash脚本,用于将单个数据库转储到该卷上的路径中。该卷没有正常装入,因此我不清楚在给定用户名/密码和装入的卷权限/可用性的情况下,将脚本放在哪个框中 我当前的问题是工作站上的权限: myfile='/volumes/Dragonfly/PG_backups/serverbox_PG_mydomain5myusername_'`date +%Y_%m_%d_%H_%M`'.sql' pg_dump -h s
Bash
脚本,用于将单个数据库转储到该卷上的路径中。该卷没有正常装入,因此我不清楚在给定用户名/密码和装入的卷权限/可用性的情况下,将脚本放在哪个框中
我当前的问题是工作站上的权限:
myfile='/volumes/Dragonfly/PG_backups/serverbox_PG_mydomain5myusername_'`date +%Y_%m_%d_%H_%M`'.sql'
pg_dump -h serverbox.local -U adminuser -w dbname > $myfile
我能提供一种语法吗?阅读文档时,没有提供密码,这是意料之中的。我也不想回显密码并将其保存在shell脚本中。或者,在本地完成备份后,是否有其他方法可以使用
rsync
执行此操作?干杯首先,请注意您使用的pg_dump
命令包含-w
选项,这意味着pg_dump
不会发出密码提示。这确实是无人参与备份(即通过脚本执行)所需要的。但您只需要确保正确设置了身份验证。这里的选项基本上是:
serverbox.local:5432:database:adminuser:password
请记住指定要备份的数据库名称!您的示例pg_dump
命令中未指定此项pg_hba.conf
文件,这样,作为备份用户的备份计算机的连接就不需要密码,而需要使用类似密码或身份验证的东西。当然,这里要小心,如果您不完全信任正在运行备份的主机(例如,它是一台共享计算机),这不是一个好主意~/.pgpass
文件不确定您在这里要问什么——您当然必须在备份开始之前(而不是之后)为
pg_dump
指定凭据。而pg_dump
只是众多备份选项中的一种,如果您有对Postgres服务器的SSH/rsync访问权,还有其他方法可以使用,例如。这些类型的备份(也称为“物理”级别)是对pg_dump
(“逻辑”级别)的补充,您可以根据您的偏执和复杂程度使用其中一种或两种方法。让它与服务器上的~/.pgpass
,pg_hba.conf
一起工作,以及一个脚本,其中包括术语
环境变量(xterm
),以及指向pg_dump
的路径
即使作为当前管理员用户,
crontab
也没有登录。所以它有点盲目 看来我都有了。上面修改的语法实际上表示db名称。我会换的。在bash中手动运行,工作正常。在crontab中,它驻留一个空的结果文件。crontab是否作为当前用户运行?我可以拿出-w
?@josh kuperschmidtcrontab-l
显示我的管理员用户名的特定脚本,即我。@josh kuperschmidt只是出于好奇(脚本因某种原因中断,您建议从服务器推送到存档,还是从服务器拉到存档机器?所以您的问题是cron,而不是pg_dump。我建议您在问题中添加cron
标记。嗯,cron看不到pg_dump。我将添加它。