![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| UNIX for Dummies Questions & Answers If you're not sure where to post a UNIX or Linux question, post it here. All UNIX and Linux newbies welcome !! |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Sorting Directory Listing | Sepia | UNIX for Dummies Questions & Answers | 1 | 07-11-2007 07:44 AM |
| How can i get directory listing? | haisubbu | UNIX for Dummies Questions & Answers | 2 | 08-25-2006 09:03 AM |
| Full Directory Listing... | B14speedfreak | UNIX for Dummies Questions & Answers | 5 | 05-11-2006 08:06 AM |
| Timestamp in directory listing | vijashok | UNIX for Dummies Questions & Answers | 2 | 10-06-2005 10:03 AM |
| Recursive directory listing without listing files | psingh | UNIX for Dummies Questions & Answers | 4 | 05-10-2002 10:52 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
nicely formatted directory listing from batch ssh session
Hi,
I am really struggling to finish of a script I have been assigned. The script's purpose is to log on to each server defined in an array, determine the Web Server version, and list the directory beneath the installation directory. In my case, this installation directory is almost always "/opt/IBMHTTPServer" (sometimes "/opt/IBMHttpServer") Here's a snippet from the code. Code:
for host in ${Hosts}
do
AssumedDir=$(batch_ssh ${host} "ls -1 /opt")
if [[ ${AssumedDir} = *IBMHTTPServer* ]]; then
ServerInstallDir='/opt/IBMHTTPServer'
else
ServerInstallDir='/opt/IBMHttpServer'
fi
#DirectoryListing=$(batch_ssh ${host} "find ${ServerInstallDir} -type d -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'")
#DirectoryListing=$(batch_ssh ${host} "ls -1 $ServerInstallDir")
DirectoryListing=$(batch_ssh ${host} "ls -1 $ServerInstallDir | while read d; do echo $d ; done")
ServerVersion=$(batch_ssh ${host} "${ServerInstallDir}/bin/httpd -V | awk 'NR < 2'")
echo '<br /><h3>'${host}'</h3>' >> $HTMLFILE
echo '<b>Server Version</b>: ' ${ServerVersion} >> $HTMLFILE
echo '<br /><b>Directory Structure</b><br /> ' $DirectoryListing >> $HTMLFILE
done
#- Email results
html_mail -t "some.body@company.co.uk" -r "noreply@servername" -s "Apache Security Audit" -a "$HTMLFILE"
So after this script has done it's thing, it invokes a perl script (html_mail) to send the report. (I didn't make this, and I know it works well). The mail comes through as planned, however the directory listing is very ugly, it looks like this: Code:
_uninst admindocs bin cgi-bin conf example_module htdocs icons include keys.q.hpicheck.com keys.q.hpicheck.com.20061002_141729 keys.q.racexaminations.co.uk keys.q.racvehiclehealthcheck.co.uk keys.q.vehiclestatusreport.co.uk libexec license logs man readme ssl tivready version.signature Thank you for reading my post, I hope someone can help me. If you have any comments of the quality of the code above please air them, as it is my first (somewhat) useful script, and I'm eager for all the feedback I can get. (Full version of the script is Bash pastebin - collaborative debugging tool) Thank you. |
|
||||
|
Thanks for the reply, Perderabo.
When I do as you suggest, no output returns for the directory structure listing. I tried my other two experimental "DirectoryListing" variables with the variable "double quoted" in the echo statement, that gives output, but the same, ugly, output I was having before. Thanks, grebbux. |
|
||||
|
I think I'm getting somewhere, when I try this:
Code:
echo $DirectoryListing | sed 's/ /<br>/' >> $HTMLFILE The listing looks like this: Code:
_uninst admindocs bin cgi-bin conf example_module htdocs icons include keys.q.hpicheck.com keys.q.hpicheck.com.20061002_141729 keys.q.racexaminations.co.uk keys.q.racvehiclehealthcheck.co.uk keys.q.vehiclestatusreport.co.uk libexec license logs man readme ssl tivready version.signature Thanks again for reading. grebbux. |
|
||||
|
I did it.
I went for the array approach. Code:
declare -a DirectoryListing
$DirectoryListing=$(batch_ssh ${host} "ls -1 ${ServerInstallDir}")
for dir in ${DirectoryListing[@]}
do
echo $dir '<br>' >> $HTMLFILE
done
![]() ***SOLVED*** grebbux. |
|
||||
|
Ah thanks for answer there, I think the sed substitution is a better solution.
![]() |
| Sponsored Links | ||
|
|
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|