This is working ok from command line:
sed -n -e '/^2014-06-17/,/^2014-06-18/p' /var/log/tomcat7/catalina.out | grep -i '===============================\|ACTION URL=\|user-agent=\|RemoteAddr=\|exception\|at \|caused by' | mail mymail@mydomain.com -s "[mydomain.com.crons] logsWatch - tomcat7/catalina.out - 06-17"
but when I execute it inside a .sh sends me an empty body message.
Full code:
#!/bin/bash
year=`date --date='1 days ago' +%Y`
monthName=`date --date='1 days ago' +%b`
month=`date --date='1 days ago' +%m`
day=`date --date='1 days ago' +%_d`
today=`date +%_d`
hour=`date --date='1 hour ago' +%H`
echo "logsWatch - catalina.out - ${month}-${day}"
echo "logsWatch - catalina.out - ${month}-${day}" > logsWatch.txt
echo "========================" >> logsWatch.txt
echo "===============================\|ACTION URL=\|user-agent=\|RemoteAddr=\|exception\|at \|caused by" >> logsWatch.txt
echo "" >> logsWatch.txt
echo "sed -n -e '/^${year}-${month}-${day}/,/^${year}-${month}-${today}/p' /var/log/tomcat7/catalina.out | \
grep -i '===============================\|ACTION URL=\|user-agent=\|RemoteAddr=\|exception\|at \|caused by' | \
mail mymail@mydomain.com -s \"[mydomain.com.crons] logsWatch - tomcat7/catalina.out - ${month}-${day}\""
sed -n -e '/^${year}-${month}-${day}/,/^${year}-${month}-${today}/p' /var/log/tomcat7/catalina.out | \
grep -i '===============================\|ACTION URL=\|user-agent=\|RemoteAddr=\|exception\|at \|caused by' | \
mail mymail@mydomain.com -s "[mydomain.com.crons] logsWatch - tomcat7/catalina.out - ${month}-${day}"