我写了一个小脚本,它将从服务器日志中egrep
两种模式
pattern - 'Unable to resolve location classpath:db/migration|Processing PersistenceUnitInfo'
代码片段
#/bin/sh
ssh tomcat@x.x.x.x egrep -e 'Unable to resolve location classpath:db/migration|Processing PersistenceUnitInfo' /usr/local/dd/logs/ddservice.log
执行结果
bash: Processing: command not found
grep: to: No such file or directory
grep: resolve: No such file or directory
grep: location: No such file or directory
grep: classpath:db/migration: No such file or directory
事实上,属于上述模式的关键字很少。如何修改脚本以获取模式。
您必须使用搜索字符串中的转义空格。
尝试
ssh tomcat@x.x.x.x egrep -e 'Unable to resolve locationclasspath:db/migration|Processing PersistenceUnitInfo' /usr/local/dd/logs/ddservice.log
我在这里有几个假设:
- 我在 egrep 之前没有看到管道,并且
- 可能应该转义"/"符号。这只是我手下没有笔记本电脑的第一眼。
这是可行的代码:
$ ssh username@somehost "egrep -e "Unable to resolve location classpath:db/migration|Processing PersistenceUnitInfo" /somepath/test.log"
Unable to resolve location classpath:db/migration
Processing PersistenceUnitInfo
然后:
$ cat 1.log
Unable to resolve location classpath:db/migration
Processing PersistenceUnitInfo