我们在我们的环境中使用 oswatcher,它在 Redhat linux 5.6 /6.4 版本上运行并收集诊断信息。这是在 root 下安排的,每 30 秒运行一次并收集有关 iostat、网络统计、cpu 等的信息,并将所有信息保存在存档目录中的 .dat 文件(平面文件)中。
现在我们根据oswatcher黑盒分析器提供的交互命令进行分析。我们希望使用每 24 小时运行一次的 shell 脚本进行自动化分析,以挖掘 24 小时数据并生成仪表板。
以下是生成仪表板的命令,其中需要三个输入参数。一个是
java -jar oswbba.jar -i /opt/oracle/tfa/repository/suptools/<HOSTNAME>/oswbb/oracle/archive
--现在以交互方式,它期望提供选项之一作为输入。
Enter X to Export Parsed Data to Flat File
Enter S to Analyze Subset of Data(Changes analysis dataset including graph time scale)
Enter A to Analyze Data
Enter D to Generate DashBoard
Enter Q to Quit Program
Please Select an Option: << 1 or 2 or D (dashboard) >>
(这里我想提供输入为 D 。我需要将这个输入作为 shell 脚本中的值传递)。我们怎样才能实现。同样,第二个输入是要创建用于分析的目录名称和目录路径。
所有这三个参数都需要在shell脚本中传递以进行自动化分析。
问候库马尔
答案1
当您说它以交互方式获取输入时,这意味着它正在从stdin
.我们可以通过将输入回显到进程的来复制这一点stdin
:
echo "D" | java -jar oswbba.jar -i /opt/oracle/tfa/repository/suptools/<HOSTNAME>/oswbb/oracle/archive
请注意,echo
自动以换行符结尾。
如果您需要额外的输入,您可以执行以下操作:
echo -e "D\n<next_input>\n<next_input>" | ...
该-e
标志可以解释转义序列,例如\n
.