PostgreSQL 部署脚本停滞不前



我有一个 bash shell 部署脚本(linode stackscript),它在我部署 debian 6.0 服务器时运行。脚本以 root 身份运行,脚本如下所示:

apt-get update
apt-get install postgresql postgresql-contrib pgadmin3
passwd postgres
su - postgres
psql -c "ALTER USER postgres WITH PASSWORD 'changeme'" -d template1
su - postgres
createdb mytestdb
psql mytestdb

我有两个问题:

首先,当我通过 shell 手动运行每一行时,它可以工作,但是当我将其作为堆栈脚本运行时,它会运行行 passwd postgres,但之后什么都没有。

其次,当我运行行 passwd postgres 时,它会要求我手动输入密码。有什么方法可以把它作为变量放在外壳脚本中吗?

passwd旨在

以交互方式使用。批量更改密码的正确命令是 chpasswd

例:

#!/bin/sh
echo 'postgres:newpassword' | chpasswd

另请注意,脚本su - postgres的方式看起来不像通常在非交互模式下完成的。最好做:su -c 'command1; command2...' - postgres

相关内容

  • 没有找到相关文章

最新更新