The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
At trække i første og sidste tegn / tal fra en streng. LinuxRacr Shell Programmering og Scripting 3 06-16-2008 09:08 PM
trække scripts fra Unix til Linux pjconfig UNIX for dummyer Spørgsmål & svar 3 12-21-2005 06:10 PM
trække en kolonne fra en fil i ksh dangral Shell Programmering og Scripting 8 01-13-2003 04:10 PM
trække den følgende linje fra en fil peter.herlihy UNIX for dummyer Spørgsmål & svar 4 08-29-2002 09:09 PM
Trækker sig ud felter fra en fil SAZ UNIX for Advanced & Ekspertsøgning Brugere 2 09-30-2001 03:31 PM

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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 07-03-2009
MrKen MrKen is offline
Registreret Bruger
  
 

Join Date: Jul 2009
Stillinger: 5
Trække korrekte værdi fra Mapfile

Hej alle,

Jeg forsøger at trække en værdi fra en Mapfile, men resultatet er, at jeg får alle de værdier. Den Mapfile kort værtsnavnet fra Backup Server til værtsnavnet i vores Network Monitoring Server, som vist her:

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

Den del af script, der er mangel er her:
Code:
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
Når jeg løber, at script outputtet er som følger:

Code:
./bacula2zabbix.sh 
Client is "BaculaServer-fd"

Hostname is Server_Helpdesk Server_Knowledge Server_Bacula Server_Zabbix_1.4.2

Alle råd ville være meget værdsat.
Tak.

Sidst redigeret af MrKen; 07-03-2009 på 02:16 AM.. Årsag: Bad cut n indsæt
  #2 (permalink)  
Old 07-03-2009
prasperl prasperl is offline
Registreret Bruger
  
 

Join Date: Jun 2009
Stillinger: 22
Har du initialisere vært filnavnet?

Jeg prøvede det samme kode snippet.The resultat er

Klient er "BaculaServer-fd"

Værtsnavnet Server_Bacula

ZABBIX_HOSTSFILE \u003d "vej kort file"
Jeg lavede to ændringer:

1.Initialized ZABBIX_HOSTSFILE til kort filnavn


2.Removed []
grep "[$ client]"$ ZABBIX_HOSTSFILE
grep "$ klienten" $ ZABBIX_HOSTSFILE
  #3 (permalink)  
Old 07-03-2009
MrKen MrKen is offline
Registreret Bruger
  
 

Join Date: Jul 2009
Stillinger: 5
Tak for det hurtige svar.

Når du siger "initialisere" værten filnavnet, jeg gætte du har jeg dette:

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

Ja, jeg har, som allerede. Det er derfor, der er et resultat af den produktion i den første post.

Når jeg fjerner [] som foreslået, produktionen er nu:

Code:
Client is "BaculaServer-fd"

Hostname is
Flere ideer?
  #4 (permalink)  
Old 07-03-2009
reddybs reddybs is offline
Registreret Bruger
  
 

Join Date: Jan 2009
Beliggenhed: Sriharikota-AP-Indien
Stillinger: 53
Code:
hostname=`grep $client zabbixhosts | cut -f2 -d:`
Jeg forsøgte at simulere dit scenario i min Linux maskine. Hvis man antager, at Deres klient variabel indeholder <BaculaServer-fd>.
Fra ovennævnte kode, variable værtsnavn indeholder Server_Bacula hvis grep er vellykket og vil indeholde nogen værdi, hvis det mislykkes. Sådan noget ....

Code:
$ 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
Registreret Bruger
  
 

Join Date: Jul 2009
Stillinger: 5
reddybs, tak for dit svar.

Hvis jeg ændre "[$ client]" til $ klient, så jeg får ingen hostname output.
Hvis jeg bruger-w med grep, så jeg får ingen hostname output.

Så nu har jeg det, men stadig output er forkert.
Code:
echo Client is $client
echo

# get hostname from the Hostsfile
hostname=`grep "[$client]" $ZABBIX_HOSTSFILE | cut -f2 -d:` ; echo $hostname
og output:
Code:
Client is "BaculaServer-fd"

Server_Helpdesk Server_Knowledge Server_Bacula Server_Zabbix_1.4.2
Flere ideer?
Reply

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 06:27 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0