The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
Tirando o primeiro eo último caractere / número a partir de uma seqüência. LinuxRacr Programação Shell Script e 3 06-16-2008 10:08
puxando scripts de Unix para Linux pjconfig UNIX para Dummies Perguntas & Respostas 3 12-21-2005 06:10
puxando uma coluna de um arquivo em ksh dangral Programação Shell Script e 8 01-13-2003 04:10
puxando a seguinte linha a partir de um arquivo peter.herlihy UNIX para Dummies Perguntas & Respostas 4 08-29-2002 10:09
Tirando fora campos de um arquivo SAZ UNIX & avançada para usuários experientes 2 09-30-2001 04:31

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 07-03-2009
MrKen MrKen is offline
Usuário
  
 

Join Date: Jul 2009
Posts: 5
Tirando valor correto de Mapfile

Oi tudo,

Estou tentando puxar um valor a partir de um Mapfile, mas o resultado é que estou recebendo todos os valores. O Mapfile mapeia o nome do host da cópia de segurança do servidor para o nome de anfitrião na nossa Rede de Monitoramento de Servidor, como mostrado aqui:

Mapfile
Código:
cat zabbixhosts 
Helpdesk-fd:Server_Helpdesk
Knowledge-fd:Server_Knowledge
BaculaServer-fd:Server_Bacula
Zabbix-fd:Server_Zabbix_1.4.2

A seção de script que está falhando é aqui:
Código:
client=$(tail -n 38 /var/lib/bacula/log | grep -m 1 -F "Client" | awk -F" " '{ print $2; }')
echo Client is $client
echo

# get hostname from the Hostsfile
ZABBIX_HOST=`grep "[$client]" $ZABBIX_HOSTSFILE`

if [ $? -eq 0 ]; then
        hostname=`echo "$ZABBIX_HOST" | cut -f2 -d:`
else
        hostname=""
fi
echo Hostname is $hostname
Quando eu executar o script que a saída é como segue:

Código:
./bacula2zabbix.sh 
Client is "BaculaServer-fd"

Hostname is Server_Helpdesk Server_Knowledge Server_Bacula Server_Zabbix_1.4.2

Algum conselho seria muito apreciado.
Obrigado.

Última edição por MrKen; em 07/03/2009 03:16.. Motivo: Bad corte n colar
  #2 (permalink)  
Old 07-03-2009
prasperl prasperl is offline
Usuário
  
 

Join Date: Jun 2009
Lugares: 22
Você initialize acolhimento nome do arquivo?

Tentei o mesmo código snippet.The resultado é

Cliente é "BaculaServer-fd"

Hostname é Server_Bacula

ZABBIX_HOSTSFILE \u003d "caminho do arquivo mapa"
Eu fiz duas alterações:

1.Initialized ZABBIX_HOSTSFILE para mapear o nome do ficheiro


2.Removed []
grep "[$ cliente]"$ ZABBIX_HOSTSFILE
grep "$ cliente" $ ZABBIX_HOSTSFILE
  #3 (permalink)  
Old 07-03-2009
MrKen MrKen is offline
Usuário
  
 

Join Date: Jul 2009
Posts: 5
Obrigado pela rápida resposta.

Quando você diz "initialize" o nome do arquivo host, eu acho que você quer dizer é que tenho esta:

ZABBIX_HOSTSFILE \u003d "/ etc / bacula / zabbixhosts";

Sim, eu tenho que já. É por isso que há um resultado para a saída no primeiro post.

Quando eu remover o [], tal como sugerido, a saída é agora:

Código:
Client is "BaculaServer-fd"

Hostname is
Qualquer mais idéias?
  #4 (permalink)  
Old 07-03-2009
reddybs reddybs is offline
Usuário
  
 

Join Date: Jan 2009
Localização: Sriharikota-AP-Índia
Lugares: 53
Código:
hostname=`grep $client zabbixhosts | cut -f2 -d:`
Eu tentei simular o cenário na minha máquina linux. Assumindo que o seu cliente variável contém <BaculaServer-fd>.
A partir do código acima, a variável hostname contém Server_Bacula grep se for bem sucedido e que não contêm qualquer valor, se ele falhar. Algo assim ....

Código:
$ cat zabbixhosts
Helpdesk-fd:Server_Helpdesk
Knowledge-fd:Server_Knowledge
BaculaServer-fd:Server_Bacula
Zabbix-fd:Server_Zabbix_1.4.2
 
$ echo $client
sai
 
$  hostname=`grep $client zabbixhosts | cut -f2 -d:` ; echo $hostname
 
$ client="BaculaServer-fd"
 
$ hostname=`grep $client zabbixhosts | cut -f2 -d:` ; echo $hostname
Server_Bacula
 
$ hostname=`grep -w $client zabbixhosts | cut -f2 -d:`; echo $hostname
Server_Bacula
  #5 (permalink)  
Old 07-03-2009
MrKen MrKen is offline
Usuário
  
 

Join Date: Jul 2009
Posts: 5
reddybs, obrigado pela sua resposta.

Se eu mudar "[$ cliente]" a $ cliente, então eu recebo nenhum hostname saída.
Se eu usar com o grep-w, então eu recebo nenhum hostname saída.

Então agora eu tenho isso, mas ainda assim o resultado é incorreto.
Código:
echo Client is $client
echo

# get hostname from the Hostsfile
hostname=`grep "[$client]" $ZABBIX_HOSTSFILE | cut -f2 -d:` ; echo $hostname
ea saída:
Código:
Client is "BaculaServer-fd"

Server_Helpdesk Server_Knowledge Server_Bacula Server_Zabbix_1.4.2
Qualquer mais idéias?
Reply

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 04:15.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0