我有一个运行起搏器,corosync和postgresql 9.4的2节点系统。我正在使用虚拟IP执行pgsql复制,并且能够使用手动命令成功恢复故障机器。现在要自动化东西,我想在脚本中运行以下命令,以便将恢复的主服务器恢复到集群上。
`#su -postgres
$rm -rf /var/lib/pgsql/9.4/data/* //To delete old data files
$pg_basebackup -h 192.XX.XX.XX -U postgres -D /var/lib/pgsql/9.4/data -X stream -P // To recover the latest data from standby PC running latest entries
$rm /var/lib/pgsql/tmp/PGSQL.lock
$exit //exit from postgresql shell
#pcs resource cleanup msPostgresql`
现在,当我将这些命令作为脚本运行时,它会在第一个命令本身后挂起,即su -postgres,并且光标在bash $语法处闪烁,而不在下面插入命令。 我想使用cron自动执行此过程,但脚本本身不适合我。有人可以帮助我。
此致
答案 0 :(得分:0)
据我所知" su -postgres"是错的。您可以使用" su postgres"或" sudo -i -u postgres"
关于脚本here,您可以找到经过测试的工作脚本。您感兴趣的人称为" initiate_replication.sh"那里。