Hi
I'm trying to write a tool to grep syslog messages and filter out all the lines I know.
But I'm running into some problems with extra single qoutes and it dosen't seem to be working.
When i run the script with -x I get the following output:
It seems like it's adding single qoutes to the grep command but I don't get why, any advice would be great.
/lbl
I'm trying to write a tool to grep syslog messages and filter out all the lines I know.
But I'm running into some problems with extra single qoutes and it dosen't seem to be working.
Code:
[root@mon ~]# cat sna.conf
jsavald: ===> dfwdlib_send_msg
jsavald: <=== dfwdlib_send_msg(0)
jsavald: ===> dfwd_ev_client_dispatch
jsavald: <=== dfwd_ev_client_dispatch(0)
[root@mon ~]# cat syslog-alert.bash
#!/usr/local/bin/bash
# Syslog notification pickup.
conf="/root/sna.conf"
grepline()
{
cat $conf | while read line ; do
printf " -e \"$line\""
done
}
grepattri=`grepline`
echo "$grepattri"
echo "test line" | grep -v$grepattri
[root@mon ~]# ./syslog-alert.bash
-e "jsavald: ===> dfwdlib_send_msg" -e "jsavald: <=== dfwdlib_send_msg(0)" -e "jsavald: ===> dfwd_ev_client_dispatch" -e "jsavald: <===
dfwd_ev_client_dispatch(0)"
grep: ===>: No such file or directory
grep: dfwdlib_send_msg": No such file or directory
grep: <===: No such file or directory
grep: dfwdlib_send_msg(0)": No such file or directory
grep: ===>: No such file or directory
grep: dfwd_ev_client_dispatch": No such file or directory
grep: <===: No such file or directory
grep: dfwd_ev_client_dispatch(0)": No such file or directory
[root@mon ~]#
When i run the script with -x I get the following output:
Code:
[root@mon ~]# ./syslog-alert.bash
+ conf=/root/sna.conf
++ grepline
++ cat /root/sna.conf
++ read line
++ printf ' -e "jsavald: ===> dfwdlib_send_msg"'
++ read line
++ printf ' -e "jsavald: <=== dfwdlib_send_msg(0)"'
++ read line
++ printf ' -e "jsavald: ===> dfwd_ev_client_dispatch"'
++ read line
++ printf ' -e "jsavald: <=== dfwd_ev_client_dispatch(0)"'
++ read line
+ grepattri=' -e "jsavald: ===> dfwdlib_send_msg" -e "jsavald: <=== dfwdlib_send_msg(0)" -e "jsavald: ===> dfwd_ev_client_dispatch" -e
"jsavald: <=== dfwd_ev_client_dispatch(0)"'
+ echo ' -e "jsavald: ===> dfwdlib_send_msg" -e "jsavald: <=== dfwdlib_send_msg(0)" -e "jsavald: ===> dfwd_ev_client_dispatch" -e "jsavald:
<=== dfwd_ev_client_dispatch(0)"'
-e "jsavald: ===> dfwdlib_send_msg" -e "jsavald: <=== dfwdlib_send_msg(0)" -e "jsavald: ===> dfwd_ev_client_dispatch" -e "jsavald: <===
dfwd_ev_client_dispatch(0)"
+ echo 'test line'
+ grep -v -e '"jsavald:' '===>' 'dfwdlib_send_msg"' -e '"jsavald:' '<===' 'dfwdlib_send_msg(0)"' -e '"jsavald:' '===>'
'dfwd_ev_client_dispatch"' -e '"jsavald:' '<===' 'dfwd_ev_client_dispatch(0)"'
grep: ===>: No such file or directory
grep: dfwdlib_send_msg": No such file or directory
grep: <===: No such file or directory
grep: dfwdlib_send_msg(0)": No such file or directory
grep: ===>: No such file or directory
grep: dfwd_ev_client_dispatch": No such file or directory
grep: <===: No such file or directory
grep: dfwd_ev_client_dispatch(0)": No such file or directory
[root@mon ~]#
It seems like it's adding single qoutes to the grep command but I don't get why, any advice would be great.
/lbl