![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| UNIX para Dummies Perguntas & Respostas Se não tiver certeza de onde se pode postar uma pergunta Unix ou Linux, postá-lo aqui. Todos os UNIX e Linux novatos bem vindos! |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| Classificando Directory Listing | Sépia | UNIX para Dummies Perguntas & Respostas | 1 | 07-11-2007 08:44 |
| Como posso obter diretório listagem? | haisubbu | UNIX para Dummies Perguntas & Respostas | 2 | 08-25-2006 10:03 |
| Full Directory Listing ... | B14speedfreak | UNIX para Dummies Perguntas & Respostas | 5 | 05-11-2006 09:06 |
| Timestamp no diretório lista | vijashok | UNIX para Dummies Perguntas & Respostas | 2 | 10-06-2005 11:03 |
| Recursivo diretório listagem sem cotação arquivos | psingh | UNIX para Dummies Perguntas & Respostas | 4 | 05-10-2002 11:52 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
agradavelmente formatada diretório listagem do lote sessão ssh
Oi, Estou realmente lutando para acabar de um script que lhe foram atribuídas. O script é utilizado para efetuar logon em cada servidor definido em uma matriz, determine a versão do servidor da Web, e lista do diretório abaixo o diretório de instalação. No meu caso, esta instalação é quase sempre diretório "/ opt / IBMHTTPServer" (às vezes "/ opt / IBMHttpServer") Aqui está um trecho do código. Código:
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"
(Essa sed comando acima provêm de um UNIX fóruns freqüente, eu esquecer o nome! Graças embora - os dois são apenas comentou DirectoryListing vars experimentação) Portanto, depois de este script tem feito é coisa, que invoca um perl script (html_mail) para enviar o relatório. (Eu não fiz isso, e eu sei que funciona bem). O mail chega através como previsto, porém o diretório lista é muito feio, é parecido com isto: Código:
_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 Gostaria que a acima arquivos / diretório está a ser listado como eles seriam após a emissão `ls -1` a partir da casca. Obrigado por ler o meu post, espero que alguém pode me ajudar. Se você tiver quaisquer comentários sobre a qualidade do ar, por favor o código acima deles, como é o meu primeiro (um pouco) script útil, e estou ansioso para todos os comentários que posso chegar. (Versão completa do script é Bash pastebin - depuração ferramenta colaborativa) Obrigado. |
|
||||
|
Obrigado pela resposta, Perderabo.
Quando eu faço como você sugere, não retorna para o diretório de saída estrutura listagem. Tentei meus outros dois experimental "DirectoryListing" variáveis com a variável "dupla citada" no echo declaração, que dá saída, mas é o mesmo, feio, eu estava de saída antes de ter. Obrigado, grebbux. |
|
||||
|
Acho que estou ficando em algum lugar, quando eu tente o seguinte: Código:
echo $DirectoryListing | sed 's/ /<br>/' >> $HTMLFILE FYI: Nada está listado se eu colocar a acima $ DirectoryListing em "". A lista tem o seguinte aspecto: Código:
_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 Então eu tenho um <br> após a primeira listagem. Eu não entendo porque a ruptura não é substituída por todos os outros espaços embora! Obrigado novamente para a leitura. grebbux. |
|
||||
|
Eu fiz isso. Fui para o array abordagem. Código:
declare -a DirectoryListing
$DirectoryListing=$(batch_ssh ${host} "ls -1 ${ServerInstallDir}")
for dir in ${DirectoryListing[@]}
do
echo $dir '<br>' >> $HTMLFILE
done
Obrigado pela ajuda, de qualquer forma. ![]() *** *** SOLVED grebbux. |
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|