![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| 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 |
| Hvordan at kontrollere, hvilken software der er installeret på UNIX | sunil.1908 | UNIX for Advanced & Ekspertsøgning Brugere | 6 | 07-30-2008 12:31 PM |
| notering installeret software | ravi raj kumar | UNIX for Advanced & Ekspertsøgning Brugere | 2 | 07-10-2007 07:55 PM |
| En liste over alle Software and Tools installeret | hasnain | UNIX for Advanced & Ekspertsøgning Brugere | 7 | 07-03-2007 10:53 AM |
| Installeret software | tt1ect | UNIX for dummyer Spørgsmål & svar | 1 | 04-03-2007 04:27 AM |
| Installeret software | wakeley | UNIX for dummyer Spørgsmål & svar | 3 | 02-08-2005 06:59 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Sammenlign installeret software.
Jeg har omkring 30 AIX-servere og jeg ønsker, at deres software-pakker til at være konsekvente. AIX giver en kommando til at liste alle relevante oplysninger om en softwarepakke i et kolon særskilt liste - jeg håndteringshåndtag dette via ssh og indsamle i en temp-mappe server_name.log.
Nu, jeg er stukket. Jeg kan oprette en liste over alle unikke pakker, men hvordan ved jeg traverse gennem hver server listen for at se, om softwaren er installeret? Eksemplet nedenfor kan hjælpe med at forklare min dilema. Fil 1 awk: 1.1 sed: 3.2 ssh: 4.1.2 Fil 2 noget: 1.0.1 awk: 1.1 sed: 3.2 File 3 noget: 1.0.1 awk: 1.1 bgp: 1.0 sed: 3.2 |
|
||||
|
Har du en samlet liste over, hvad softwaren skal installeres?
Du kan bruge Perl eller Awk at læse udgaver i et array (Perh hash) og derefter i slutningen udskrive forsvundne pakker (array keys) og forkerte versioner (centrale værdier). |
|
||||
|
Grim, men det virker.
# Jeg brugte ssh SERVER1 lslpp-Lc> / tmp/lslpp_files/server1.log at skabe
# Log-filerne. Jeg har en kat af alle logfiler ordne det unikke # Cat / tmp / lslpp_files / * log | cut-d ":"-F1 | sortere-u #! / usr / bin /perl @ host \u003d (SERVER1, server2, server3); for $ host (@ host) ( åben (MYINPUTFILE, "</ tmp / lslpp_files / $ host.log"); min (@ linjer) \u003d <MYINPUTFILE>; foretrukne $ line (@ linjer) ( chomp; næste hvis /^#/; ($ PACKAGENAME, $ Fileset, $ niveau, $ stat, $ PTFId, $ FixState, $ Type, $ beskrivelse, $ DestinationDir, $ Uninstaller, $ MessageCatalog, $ MessageSet, $ MessageNumber, $ moder-/datterselskabsdirektivet, $ Automatisk, $ EFIXLocked, $ InstallPath, $ BuildDate) \u003d split (/ /, $ line); # print "$ host - $ Fileset - $ Niveau \ n"; $ HoH ($ host) ($ Fileset) \u003d $ niveau; ) tæt (MYINPUTFILE); ) # # Sammenligne fil # åben (COMPFILE, "</ tmp / lslpp_files.final"); min (@ complines) \u003d <COMPFILE>; # # Print header # print "fileset: SERVER1: server2: server3 \ n"; foretrukne $ compline (@ complines) ( ($ Filset, $ lvl) \u003d split (/ /, $ compline); print "$ Filset"; for $ host (@ host) ( print ": $ HoH ($ host) ($ Filset)"; ) print "\ n"; ) tæt (COMPFILE); |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|