Скрипт для извлечения запущенного sid - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть требование извлечь текущий SID запущенного экземпляра Oracle, я знаю ключевое слово, которое будет частью SID, как я могу получить и присвоить его переменной.

Я что-то пытаюсь

ps -ef | grep pmon | grep TESTDB    
oracle    5527 23570  0 05:03 pts/5    00:00:00 /bin/ksh -c ps -ef | grep pmon | grep TESTDB    
oracle   26617     1  0 Sep24 ?        01:10:57 ora_pmon_TESTDB02

Сверху как мне извлечь просто TESTDB02

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 05 ноября 2018

Используйте awk для получения n-го поля:

[here goes your chain of commands] | awk -r '{print $8;}' | awk -F '_' -r '{print $(NF);}'

Пояснение:

  • Ваша цепочка команд находит информацию, но она плохо отформатирована
  • awk -r '{print $8;}' печатает только 8-е поле, которое ora_pmon_TESTDB02
  • awk -F '_' -r '{print $(NF);}' использует _ в качестве разделителя полей (опция -F) и печатает последнее поле, которое TESTDB02
0 голосов
/ 05 ноября 2018

Полагаю, вы хотите:

ps -e -o cmd | grep '^ora_pmon_TESTDB' | sed 's/^ora_pmon_//'
  • ps -e -o cmd печатает команды всех процессов
  • тогда я grep только процессы, которые начинаются с 'ora_pmon_TESTDB'
  • затем я удаляю строку ora_pmon_ из начала строки, используя sed
  • Я останусь с TESTDB02
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...