Salve,
Sono veramente fatica a finire di uno script mi è stato assegnato.
Lo script viene utilizzato per accedere a ogni server definiti in un array, determinare la versione del server Web, e l'elenco della directory
sotto la directory di installazione. Nel mio caso, questa directory di installazione è quasi sempre "/ opt / IBMHTTPServer" (a volte "/ opt / IBMHttpServer")
Ecco un frammento di codice.
Codice:
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 comando di cui sopra provengono da un forum di frequente UNIX, ho dimenticato il nome! Grazie anche se - ha commentato le due variabili sono solo DirectoryListing sperimentazione)
Quindi, dopo questo script ha fatto della cosa, si invoca un
perl script (html_mail) per inviare la sua relazione. (Non mi fare questo, e so che funziona bene). La mail passa attraverso, come previsto, tuttavia, l'elenco delle directory è molto brutto, che appare così:
Codice:
_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
Vorrei che il sopra file / directory 's per essere elencate come sarebbero dopo il rilascio `ls -1` dalla shell.
Grazie per la lettura dei miei post, spero che qualcuno mi può aiutare. Se avete osservazioni della qualità del codice di cui sopra si prega di aria, come è il mio primo (un po ') utile script, e mi sono ansiosi di tutti i commenti che posso ottenere. (Testo integrale della sceneggiatura è
Bash pastebin - collaborative debugging tool)
Grazie.