Hi Guys,
I was searching and landed up something here only.
This is the code and I want the formatted html in email but that is not working, anybody knows the reason why?
#!/bin/sh
set -x
DATE=`date -u`
# Print beginning of webpage
function html_header
{
cat <<END
<html>
<head><title>${1}</title></head>
<body>
<h3>${1}</h3>
<!-- Table of Contents links -->
<p>
<a href='#rpmversion'>RPM Versions</a>
<a href='#processes'>Processes</a>
</p>
END
}
function html_footer
{
cat <<abc
</body>
</html>
abc
}
function html_title
{
echo "<h3><a name='#${2}'>$1</a></h3>"
}
function rpm_versions
{
html_title "RPM Versions" "rpmversion"
echo "<pre>"
rpm -qa|sort
echo "</pre>"
}
function get_allprocs
{
html_title "All Running Processes" "processes"
ps -fu ${USER}
}
html_header "Report Summary for ${DATE}" >> temp.html
rpm_versions >> teml.html
get_allprocs >> temp.html
html_footer >> temp.html
cat temp.html|mailx -s "Test email" test@testme.com
When I run the code I get an error.
++ date -u
+ DATE='Mon May 6 04:58:38 UTC 2013'
./formatted_Script.sh: line 58: syntax error: unexpected end of file
What is the issue here?
---------- Post updated at 03:19 PM ---------- Previous update was at 02:59 PM ----------
Issue identified.
the END should be aligned to the left hand side, god knows why !
Anyhow I am not getting a well formatted output.
I am getting this output.
Report Summary for Thu May 9 11:28:19 UTC 2013
RPM Versions Processes
RPM Versions
This is a test
All Running Processes
testing processess
What are you missing?
<html>
<head><title>Report Summary for Mon May 6 06:26:08 UTC 2013</title></head>
<body>
<h3>Report Summary for Mon May 6 06:26:08 UTC 2013</h3>
<!-- Table of Contents links -->
<p>
<a href='#rpmversion'>RPM Versions</a>
<a href='#processes'>Processes</a>
</p>
<h3><a name='#rpmversion'>RPM Versions</a></h3> <pre>
acl-2.2.23-5.4.el4
acpid-1.0.3-2
alchemist-1.0.34-1
at-3.1.8-82.el4
atk-1.8.0-2
atk-1.8.0-2
at-spi-1.6.0-3
Why such garbage output?
---------- Post updated at 04:50 PM ---------- Previous update was at 04:36 PM ----------
I added these three magical lines but still no pretty output.
echo "MIME-Version: 1.0"
echo "Content-Type: text/html"
echo "Content-Disposition: inline"
they are the output of rpm -qa|sort
& ps -fu ${USER}
you may have to format it there! complaining the shell script or the mail types won't do any good. Try reading line by line and print them in a fixed length output!
Sir,
I don't know that is why I am requesting help here !
Everything in life is a learning experience
Hi bluemind2005,
This does the job:
#!/bin/bash
set -x
DATE=`date -u`
# Print beginning of webpage
html_header ()
{
cat <<END
<html>
<head><title>${1}</title>
</head>
<body>
<h3>${1}</h3>
<!-- Table of Contents links -->
<p>
<a href='#rpmversion'>RPM Versions</a>
<a href='#processes'>Processes</a>
</p>
END
}
html_footer () {
cat <<abc
</body>
</html>
abc
}
html_title () {
echo "<h3><a name='#${2}'>$1</a></h3>"
}
get_allprocs () {
html_title "All Running Processes" "processes"
cat <<procs
<pre>$(ps -fu $USER)</pre>
procs
}
html_header "Report Summary for ${DATE}" > temp.html
get_allprocs >> temp.html
html_footer >> temp.html
mail -a 'MIME-Version: 1.0' -a 'Content-Type: text/html; charset=utf-8' -a 'X-AUTOR: Your name here' -s "Email subject here" your_email@here.com < temp.html
Please note that I did not include the rpm versions functions as I am working on a Debian machine. But taking a look at what I did with the get_allprocs function you should be able to add it without issues.
Let me know if you need anything else. If this solves your issue, kindly mark this thread as solved.