Назад | Перейти на главную страницу

Разобрать значение $ DatabasePassword из RT_SiteConfig.pm

Я пишу сценарий оболочки Bash для ежедневного резервного копирования нашей базы данных MySQL Request Tracker (RT). Вместо того, чтобы жестко кодировать пароль пользователя базы данных MySQL в сценарии оболочки, я хотел бы проанализировать его из файла RT_SiteConfig.pm RT. Соответствующая строка в RT_SiteConfig.pm выглядит так:

Set($DatabasePassword , 'db_pw_here');

Каким будет самый «чистый» способ извлечь только строку «db_pw_here», учитывая строку выше?

Самым «чистым» способом было бы написать код Perl для использования RT API для извлечения значения DatabasePassword. У меня сейчас нет доступа к экземпляру RT, чтобы попробовать это, но это не должно быть очень сложно.

Вероятно, вы могли бы интегрировать однострочную программу Perl в свой сценарий bash, чтобы получить значение, например:

perl -MRT::Config -e 'print $RT::Config::DatabasePassword'

Обратите внимание, что эта командная строка полностью вымышленная. Прочтите документацию, чтобы найти фактический вызов.

Теперь менее чистым, но, вероятно, совершенно эффективным было бы использование sed для извлечения информации:

sed -n "/Set(\$DatabasePassword/ s/.*'\([^']*\)'.*/\1/p"