Hei,
Jeg er virkelig sliter med å fullføre et skript jeg har fått tildelt.
Skriptet formål er å logge seg på hver server som er definert i en matrise, fastslår Web Server-versjonen, og liste katalogen
under installasjonen katalogen. I mitt tilfelle er denne installasjonen katalogen nesten alltid "/ opt / IBMHTTPServer" (noen ganger "/ opt / IBMHttpServer")
Her er et tekstutdrag fra koden.
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"
(That
sed kommandoen ovenfor kommer fra en UNIX forum hyppig, jeg glemmer navnet! Takk selv - de to kommentert DirectoryListing vars er bare eksperimentering)
Så etter dette skriptet har gjort det ting, påkaller det en
perl script (html_mail) for å sende rapporten. (Jeg ikke gjør dette, og jeg vet det fungerer godt). E-posten kommer gjennom som planlagt, er imidlertid katalogoppføring meget stygg, det ser slik ut:
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
Jeg ønsker det over filer / katalogen er å bli oppført som de skulle etter utstedelse `ls -1` fra skallet.
Takk for at du leser mitt innlegg, håper jeg noen kan hjelpe meg. Hvis du har noen kommentarer til kvaliteten på koden ovenfor kan du lufte dem, som det er mitt første (litt) nyttig script, og jeg er ivrig for alle tilbakemeldingene jeg kan få. (Full versjon av skriptet er
Bash pastebin - collaborative debugging verktøy)
Takk.