【发布时间】:2013-06-15 14:25:22
【问题描述】:
我想做的是:
- 以 root 身份登录
su postgrespsql jumlar < database_schema.txt
这是我的代码。如您所见,我必须一步一步地做这些,我不能在一个命令中完成这两个步骤:
Net::SSH.start(192.168.2.1, root, :password => "root") do |ssh|
ssh.exec! "su postgres"
ssh.exec! "psql jumlar < database_schema.txt"
但是,这在 su postgres 之后不起作用,因为第二个 ssh.exec 在第一个之后不会做任何事情。它似乎总是打开一个新的隧道。
不知道Ruby有没有记住每一步的命令?
【问题讨论】:
-
为什么不在一个字符串中做呢?
ssh.exec! "su postgres; psql jumlar < database_schema.txt" -
命令可以连续到一个点。更多地查看
su和sudo文档,尤其是su和command的args参数sudo。