![从 RT_SiteConfig.pm 解析 $DatabasePassword 的值](https://linux22.com/image/564935/%E4%BB%8E%20RT_SiteConfig.pm%20%E8%A7%A3%E6%9E%90%20%24DatabasePassword%20%E7%9A%84%E5%80%BC.png)
我正在编写一个 Bash shell 脚本,用于每天备份我们的请求跟踪器 (RT) MySQL 数据库。我不想在 shell 脚本中硬编码 MySQL 数据库用户的密码,而是想从 RT 的 RT_SiteConfig.pm 文件中解析它。RT_SiteConfig.pm 中的相关行如下所示:
Set($DatabasePassword , 'db_pw_here');
鉴于上面的行,提取字符串“db_pw_here”的“最干净”的方法是什么?
答案1
“最干净”的方法是编写一些 Perl 代码来使用 RT API 提取 的值DatabasePassword
。我现在无法访问 RT 实例来尝试这一点,但这应该不会太难。
您可能可以将单行 Perl 程序集成到 bash 脚本中来获取该值,例如:
perl -MRT::Config -e 'print $RT::Config::DatabasePassword'
请注意,此命令行完全是虚构的。请阅读文档以找到实际调用。
现在,不太干净但可能非常有效的方法是使用以下方法sed
来提取信息:
sed -n "/Set(\$DatabasePassword/ s/.*'\([^']*\)'.*/\1/p"