Hi,
Ich bin wirklich kämpfen, um von einem Skript I zugeordnet wurden.
Das Skript dient, sich auf jedem Server in einem Array, welche Web-Server-Version, und in der Liste das Verzeichnis
unter Installations-Verzeichnis. In meinem Fall, das Installations-Verzeichnis ist fast immer "/ opt / IBMHTTPServer" (manchmal auch "/ opt / IBMHttpServer")
Hier ist ein Auszug aus dem 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"
(Das
sed Befehl oben stammen aus einem UNIX-Foren häufig, ich den Namen vergessen! Dank wenn - die beiden kommentiert DirectoryListing Variablen sind nur Versuche)
So, nachdem dieses Skript hat es geschafft die Sache, es auf einen
perl Skript (html_mail), um den Bericht. (Habe ich nicht machen, und ich weiß, es funktioniert gut). Die E-Mail wird durch wie geplant, aber die Verzeichnisliste ist sehr hässlich, es sieht wie folgt aus:
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
Ich möchte, dass die oben genannten Dateien / Ordner 's zu werden, wie sie wäre nach Ausstellung `ls -1" von der Shell aus.
Vielen Dank für das Lesen meiner Post, ich hoffe jemand kann mir helfen. Wenn Sie einen Kommentar über die Qualität des Codes wenden Sie sich bitte über Luft, wie es ist meine erste (etwas) nützliche Skript, und ich bin gespannt auf das Feedback, das ich alles bekommen können. (Full-Version des Skripts ist
Bash pastebin - Zusammenarbeit Debugging-Tool)
Danke.