
Estou usando o Ubuntu 14.04. Quando logado como root, estou tentando executar um comando como anotehr (postgres). No entanto, está falhando
root@remotebox:/home/rails/myproject# su - postgres 'pg_upgradecluster 9.3 main'
-su: pg_upgradecluster 9.3 main: No such file or directory
O que estou fazendo de errado?
Responder1
Você está tentando passar 'pg_upgradecluster 9.3 main'
para o shell padrão do usuário postgres. Dependendo da configuração do usuário do postgres, isso pode significar executar 'pg_upgradecluster 9.3 main'
o arquivo no postgres PATH, e este é o motivo pelo qual você recebe um erro "Nenhum arquivo ou diretório".
Tente passar o argumento como um comando (-c):
su - postgres -c 'pg_upgradecluster 9.3 main'
como uma concha:
su - postgres -s /path/to/pg_upgradecluster -- 9.3 main
ou para explicitar escolha o shell:
su - postgres -s /bin/bash -- -c 'pg_upgradecluster 9.3 main'