Salut,
Je suis vraiment mal à la fin d'un script, j'ai été affecté.
Le script est destiné à se connecter à chaque serveur défini dans un tableau, de déterminer la version du serveur Web, et la liste du répertoire
sous le répertoire d'installation. Dans mon cas, ce répertoire d'installation est presque toujours "/ opt / IBMHTTPServer" (parfois "/ opt / IBMHttpServer")
Voici un extrait du 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"
(That
sed commande ci-dessus proviennent d'un UNIX forums fréquents, j'ai oublié le nom! Merci bien - les deux variables sont DirectoryListing commenté juste d'expérimentation)
Donc, après ce script, il a fait part, il invoque une
perl script (html_mail) pour envoyer le rapport. (Je n'ai pas fait cela, et je sais que ça marche bien). Le courrier arrive comme prévu, mais l'inscription dans un annuaire est très laid, il ressemble à ceci:
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
Je voudrais les fichiers ci-dessus / directory 's pour être énumérés comme ils seraient après l'émission `ls -1» de la coquille.
Merci d'avoir lu mon message, j'espère que quelqu'un pourra m'aider. Si vous avez des commentaires de la qualité de l'air le code ci-dessus s'il vous plaît, comme il est de mon premier (un peu) utile script, et je suis avide de toutes les observations que je peux obtenir. (Full version du script est
Bash pastebin - collaborative outil de débogage)
Merci.