2016-12-30 18 views
0

오라클/실행 일부 명령 :ssh를하는 방법/sudo를 쓰에 - 나는 이미 다음 링크에서 보았다하지만 작동하도록 관리하지 않은

SSH to server, Sudo su - then run commands in bash

Can I ssh somewhere, run some commands, and then leave myself a prompt?

Run ssh and immediately execute command

다음 시퀀스를 자동화하여 데이터베이스에 로그인하려고합니다.

$ ssh <myserver> 
[email protected]$ sudo su - oracle 
<enter password> 
[email protected]$ bash 
[email protected]$ export ORAENV_ASK=NO 
[email protected]$ export ORACLE_SID=ORACLEDB 
[email protected]$ . oraenv 
[email protected]$ echo $ORACLE_HOME 

나는 (위의 링크 기준) 명령을 시도하지만 작동하지 않습니다,

ssh -t myserver "echo password | sudo -S su - oracle ; bash ; export ORAENV_ASK=NO" 

가 어떻게 쉘 스크립트에서 양태에서는 명령을 결합 할 수 있습니다 (또는 하나를 펄)을 실행 한 후 자신을 떠나 프롬프트에서 sqlplus를 실행할 수 있습니까? 그게 가능한가?

참고

: 하지만 암호 적게는 sudo는 옵션도 직접 SU를 사용하여 (I 루트 아니에요 그 변경할 수 없습니다) 명령 요구에 우리의 authorized_keys를 사용하기 때문에 SSH 암호를 필요로하지 않는다 아니다 정확히 "sudo su - oracle"이되어야합니다.

감사

답변

1

당신은 쉘에서 그렇게 할 수는 없지만, 당신이 그것을 기대로 할 수있는 (apt-get을 데비안 변종에 경우 예상 설치).

이것은 매우 간단한 예상 파일입니다. 당신은 당신의 환경에서 작동하도록 약간의 조사를해야하지만 이것은 일반적인 아이디어를 제공합니다.

spawn ssh [email protected] 
expect "~$" 
send "sudo bash\r" 
expect { 
     password {send "foobar\r";exp_continue} 
     "#" 
} 

send "id\r" 
expect "root" 

expect/path/to/your/expectfile로 실행합니다.

이렇게하면 로그인하고 sudo를 "foobar"암호로 실행하고 ID를 실행 한 다음 종료하십시오. 이게 도움이 될까요?

한누