sudo 및 맞춤 환경 변수를 사용하여 앱 호출

sudo 및 맞춤 환경 변수를 사용하여 앱 호출

한 줄 명령으로 sqlplusDB(env var)를 명확하게 지정하려면 oracle 사용자 sudo를 호출해야 합니다 . ORACLE_SID이를 수행하는 일반적인 방법은 2단계로 구성됩니다.

$ sudo -u oracle -i
$ ORACLE_SID=DBNAME sqlplus / as sysdba

하지만 (합리적으로 시간을 절약하기 위해) 한 줄로 처리해야 합니다. 나는 간단하게 다음과 같이 하려고 한다.

$ sudo -u oracle -i ORACLE_SID=DBNAME sqlplus / as sysdba

sqlplus하지만 env var 의 변경은 보이지 않고 ORACLE_SID기본 DB에 연결되는 것 같습니다 . 또한 -i다른 모든 환경 변수가 완벽하게 초기화되었는지 확인해야 하기 때문에 sudo 옵션을 제외할 수 없습니다 .

내 경우에는 sudo 및 사용자 정의 환경 변수를 사용하여 애플리케이션을 어떻게 실행할 수 있나요?

답변1

다음 명령을 시도해 보십시오:

sudo -i su - oracle -c 'ORACLE_SID=DBNAME && sqlplus'

설명:

"sudo -i" will take care of the environment variables.
"su - user" will consider the user's environment variables
"-c" -> the command you wish to issue.

답변2

질문을 해결하는 가장 좋은 방법은 다음 명령을 사용하는 것입니다.

sudo -u oracle -i sh -c "ORACLE_SID=DBNAME sqlplus / as sysdba"

그리고 SQL 스크립트를 한 줄에 직접 전달하려면 다음을 수행하십시오.

sudo -u oracle -i sh -c "ORACLE_SID=DBNAME sqlplus / as sysdba" <<-EOF
  SELECT 1 FROM DUAL;
EOF

관련 정보