WinFuture-Forum.de: Hilfe Bei Shellprogrammierung - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Linux
Seite 1 von 1

Hilfe Bei Shellprogrammierung


#1 Mitglied ist offline   OskarMRz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 274
  • Beigetreten: 22. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:noone knows

geschrieben 14. Juni 2010 - 10:25

Hallo zusammen, ich muss auf einem Server, über die Konsole herausfinden, ob 3 Programme auf dem AS Geronimo installiert sind. Hierzu habe ich die passende Abfrage schon erstellen können. Ich tue mich aber schwer, das Ergebnis jeweils entsprechend in eine Variable zu packen. Hier meine Abfrage:

modules=`java -jar deployer.jar --user syste --password manager list_modules | egrep "JSPWiki|default/program" | cut -d " " -f 4`

Nun als Ergebnis bekomme ich da sowas:
default/JSPWiki/1278913739812039012743/war
defualt/program/1.0/car
default/program_job/1.0/car

alles ist in einer Zeile mit Leerzeichen getrennt.

Ich müsste nun die entsprechenden Enträge aber, in eine Variable packe, sprich so:

Splitte die Variable modules test und packe die mit JSPWiki in modulesJPSWiki, die mit program in modulesProgram und die mit program_job in modulesProgramJob.

Ich hoffe ihr versteht, wass ich meine. Am Ende möchte ich eine Ausgabe machen in der Art:

modulesJSPWiki= default/JSPWiki/1278913739812039012743/war
modulesProgram= defualt/program/1.0/car
modulesProgramJob = default/program_job/1.0/car

Vielen Dank für eure Hilfe.

Ahja, das alles wird auf einem Solaris Server gemacht.
0

Anzeige



#2 _lustiger_affe_

  • Gruppe: Gäste

geschrieben 14. Juni 2010 - 12:37

Ich versteh das richtig,
echo $modules
würde
default/JSPWiki/1278913739812039012743/war defualt/program/1.0/car default/program_job/1.0/car
ausgeben?

Wenn ja
modulesJSPWiki=`awk '{print $1}' <<< $modules`
modulesProgram=`awk '{print $2}' <<< $modules`
modulesProgramJob=`awk '{print $3}' <<< $modules`

0

#3 Mitglied ist offline   OskarMRz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 274
  • Beigetreten: 22. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:noone knows

geschrieben 14. Juni 2010 - 13:20

Ja super. Vielen lieben Dank. : ) Das klappt ja einwandfrei. Bin noch nicht ganz bewandert in awk, aber das muss ich mir demnächst mal anschauen.
0

#4 Mitglied ist offline   OskarMRz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 274
  • Beigetreten: 22. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:noone knows

geschrieben 14. Juni 2010 - 13:40

Jetzt, aber doch eine Frage. Es kann ja mal vorkommen, dass ich lediglich nur ein default/program_job/1.0/car als Antwort meiner Nachfrage bekäme. Ich müsste dann anhand dessen alles richtig zuordnen. Könntet ihr mir auch hier bisschen weiterhelfen? Sprich, ich bräuchte so eine Art Abfrage, was sich in den Teilen der Antwort verstekct um richtig zuordnen zu können. Ich packe das ganze in eine Funktion in einem Shellscript als weitere Info. Es soll alles automatisiert ablaufen können, ohne das der User was davon merkt, sondern am Ende nur Ergebnis sieht: Anwendung installiert.
0

#5 _lustiger_affe_

  • Gruppe: Gäste

geschrieben 14. Juni 2010 - 14:21

Beschreib das mal bitte etwas ausführlicher und mit Beispielen, rein vom Lesen versteh ich das grad nicht.
0

#6 Mitglied ist offline   OskarMRz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 274
  • Beigetreten: 22. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:noone knows

geschrieben 15. Juni 2010 - 06:04

Vielen Dank schon mal für die sehr nette Hilfe. Ich versuche das noch einmal ausführlicher zu beschreiben. Die Abfrage von oben, also die Zeile mit Java kann unter Umständen nur 2 Module ausgeben, weil das dritte nicht installiert ist. Ich kann mir leider nie sicher sein, dass er mir wirklich die vollständige Antwort ausliefert:
default/JSPWiki/1278913739812039012743/war defualt/program/1.0/car default/program_job/1.0/car


Es kann sein, dass ich als Antwort von meiner Abfrage nur sowas zurückbekomme:
default/JSPWiki/1278913739812039012743/war default/program_job/1.0/car


Würde ich dieses, wie vorhin erwähnt mit awk zuweisen, hätte ich den Pfad zum program_job in der Variable modulesProgram gespeichert. Wie kann ich sicherstellen, dass ich den richtigen Pfad zur richtien Variable zuweise?

D.h. nochmal, dass ich default/JSPWiki/1278913739812039012743/war in die Variable modulesJSPWiki packen muss, den Pfad default/program_job/1.0/car in die Variable modulesProgramJob. Ich muss sicherstellen, dass ich den richtigen Pfad in der richtigen Variable habe.

Ziel dieses Skriptes ist festzustellen, ob alles richtig installiert wurde und ggf. bei einer Reinstallation die vorhandenen Versionen zu deinstallieren. Habe ich diese Abfragen richtig, kann ich auch die richtigen Programme deinstallieren.

Also, meine Angst liegt darin, dass ich nie sicherstellen kann, dass ich 3 Pfade zurückbekomme, sondern es können 2 oder einfach 1 Pfad sein. Ich muss also im Pfad nach den Worten JSPWiki, program_job oder program nachschauen und dann erst kann ich gezielt diese Pfade den Variablen zuordnen.


Vielen Dank für eure Hilfe.
0

#7 _lustiger_affe_

  • Gruppe: Gäste

geschrieben 15. Juni 2010 - 14:46

Poste doch bitte mal eine exemplarische Ausgabe von
java -jar deployer.jar --user syste --password manager list_modules
, ohne das grepn&cutn - ich werd das Gefühl nicht los, du machst es dir vom Start weg komplizierter als es eigentlich ist.
0

#8 Mitglied ist offline   OskarMRz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 274
  • Beigetreten: 22. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:noone knows

geschrieben 15. Juni 2010 - 16:32

Hi. Die Ausgabe kann ich gerne morgen posten. Habe von zu Hause keinen Zugriff auf den Server. ;) Melde mich dann morgen früh.
0

#9 Mitglied ist offline   OskarMRz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 274
  • Beigetreten: 22. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:noone knows

geschrieben 16. Juni 2010 - 07:49

Hi. Nun habe ich die vollständige Antwort von der Abfrage:

Found 93 modules
  + console.realm/testProps/1.0/car
  + default/JSPWiki/1276073031901/war
  + default/program/1.0/car
	  `-> ipam4wsmq.war
	  `-> web.war
	  `-> ejb.jar
  + default/program_job/1.0/car
	  `-> program_jobs.war
	  `-> program_jobs_ejb_provider.jar
	  `-> program_jpa.jar
	  `-> program_mail_api.jar
  + org.apache.geronimo.configs/activemq-broker/2.1.4/car
  + org.apache.geronimo.configs/activemq-ra/2.1.4/car
  + org.apache.geronimo.configs/axis/2.1.4/car
  + org.apache.geronimo.configs/axis-deployer/2.1.4/car
  + org.apache.geronimo.configs/axis2/2.1.4/car
  + org.apache.geronimo.configs/axis2-deployer/2.1.4/car
  + org.apache.geronimo.configs/axis2-ejb/2.1.4/car
  + org.apache.geronimo.configs/axis2-ejb-deployer/2.1.4/car
  + org.apache.geronimo.configs/ca-helper-tomcat/2.1.4/car
  + org.apache.geronimo.configs/client-deployer/2.1.4/car
  + org.apache.geronimo.configs/clustering/2.1.4/car
  + org.apache.geronimo.configs/connector-deployer/2.1.4/car
  + org.apache.geronimo.configs/cxf/2.1.4/car
  + org.apache.geronimo.configs/cxf-ejb/2.1.4/car
  + org.apache.geronimo.configs/derby/2.1.4/car
  + org.apache.geronimo.configs/dojo-legacy-tomcat/2.1.4/car
  + org.apache.geronimo.configs/dojo-tomcat/2.1.4/car
  + org.apache.geronimo.configs/hot-deployer/2.1.4/car
  + org.apache.geronimo.configs/j2ee-corba-yoko/2.1.4/car
  + org.apache.geronimo.configs/j2ee-deployer/2.1.4/car
  + org.apache.geronimo.configs/j2ee-server/2.1.4/car
  + org.apache.geronimo.configs/jasper/2.1.4/car
  + org.apache.geronimo.configs/jasper-deployer/2.1.4/car
  + org.apache.geronimo.configs/javamail/2.1.4/car
  + org.apache.geronimo.configs/jaxws-deployer/2.1.4/car
  + org.apache.geronimo.configs/jaxws-ejb-deployer/2.1.4/car
  + org.apache.geronimo.configs/jsr88-rar-configurer/2.1.4/car
  + org.apache.geronimo.configs/mejb/2.1.4/car
  + org.apache.geronimo.configs/myfaces/2.1.4/car
  + org.apache.geronimo.configs/myfaces-deployer/2.1.4/car
  + org.apache.geronimo.configs/openejb/2.1.4/car
  + org.apache.geronimo.configs/openejb-corba-deployer/2.1.4/car
  + org.apache.geronimo.configs/openejb-deployer/2.1.4/car
  + org.apache.geronimo.configs/openjpa/2.1.4/car
  + org.apache.geronimo.configs/persistence-jpa10-deployer/2.1.4/car
  + org.apache.geronimo.configs/remote-deploy-tomcat/2.1.4/car
  + org.apache.geronimo.configs/sharedlib/2.1.4/car
  + org.apache.geronimo.configs/spring/2.1.4/car
  + org.apache.geronimo.configs/system-database/2.1.4/car
  + org.apache.geronimo.configs/tomcat6/2.1.4/car
  + org.apache.geronimo.configs/tomcat6-clustering-builder-wadi/2.1.4/car
  + org.apache.geronimo.configs/tomcat6-deployer/2.1.4/car
  + org.apache.geronimo.configs/tomcat6-no-ha/2.1.4/car
  + org.apache.geronimo.configs/transaction/2.1.4/car
  + org.apache.geronimo.configs/uddi-tomcat/2.1.4/car
	  `-> uddi-tomcat
	  `-> uddi-db
  + org.apache.geronimo.configs/webservices-common/2.1.4/car
  + org.apache.geronimo.configs/welcome-tomcat/2.1.4/car
  + org.apache.geronimo.framework/geronimo-gbean-deployer/2.1.4/car
  + org.apache.geronimo.framework/gshell-framework/2.1.4/car
  + org.apache.geronimo.framework/gshell-geronimo/2.1.4/car
  + org.apache.geronimo.framework/j2ee-security/2.1.4/car
  + org.apache.geronimo.framework/j2ee-system/2.1.4/car
  + org.apache.geronimo.framework/jee-specs/2.1.4/car
  + org.apache.geronimo.framework/plugin/2.1.4/car
  + org.apache.geronimo.framework/rmi-naming/2.1.4/car
  + org.apache.geronimo.framework/server-security-config/2.1.4/car
  + org.apache.geronimo.framework/transformer-agent/2.1.4/car
  + org.apache.geronimo.framework/xmlbeans/2.1.4/car
  + org.apache.geronimo.plugins/activemq-console-tomcat/2.1.4/car
  + org.apache.geronimo.plugins/agent/2.1.4/car
  + org.apache.geronimo.plugins/agent-ds/2.1.4/car
  + org.apache.geronimo.plugins/console-tomcat/2.1.4/car
	  `-> base-portlets.war
	  `-> portal-driver.war
  + org.apache.geronimo.plugins/debugviews-console-tomcat/2.1.4/car
  + org.apache.geronimo.plugins/mconsole-ds/2.1.4/car
  + org.apache.geronimo.plugins/mconsole-tomcat/2.1.4/car
  + org.apache.geronimo.plugins/plancreator-console-tomcat/2.1.4/car
  + org.apache.geronimo.plugins/plugin-console-tomcat/2.1.4/car
  + org.apache.geronimo.plugins/pluto-support/2.1.4/car
  + org.apache.geronimo.plugins/sysdb-console-tomcat/2.1.4/car
	org.apache.geronimo.configs/client/2.1.4/car
	org.apache.geronimo.configs/client-corba-yoko/2.1.4/car
	org.apache.geronimo.configs/client-security/2.1.4/car
	org.apache.geronimo.configs/client-transaction/2.1.4/car
	org.apache.geronimo.configs/cxf-deployer/2.1.4/car
	org.apache.geronimo.configs/cxf-ejb-deployer/2.1.4/car
	org.apache.geronimo.configs/farming/2.1.4/car
	org.apache.geronimo.configs/jsr88-ear-configurer/2.1.4/car
	org.apache.geronimo.configs/jsr88-jar-configurer/2.1.4/car
	org.apache.geronimo.configs/jsr88-war-configurer/2.1.4/car
	org.apache.geronimo.configs/tomcat6-clustering-wadi/2.1.4/car
	org.apache.geronimo.configs/wadi-clustering/2.1.4/car
	org.apache.geronimo.framework/client-system/2.1.4/car
	org.apache.geronimo.framework/jmx-security/2.1.4/car
	org.apache.geronimo.framework/jsr88-cli/2.1.4/car
	org.apache.geronimo.framework/jsr88-deploymentfactory/2.1.4/car
	org.apache.geronimo.framework/offline-deployer/2.1.4/car
	org.apache.geronimo.framework/online-deployer/2.1.4/car
	org.apache.geronimo.framework/shutdown/2.1.4/car
	org.apache.geronimo.framework/upgrade-cli/2.1.4/car


Ich muss, wie schon vorhin erwähnt die Pfade für JSPWiki, program und program_jobs richtig zuordenen, wenn in der Antwort auf dei Abfrage vorhanden.
0

#10 _lustiger_affe_

  • Gruppe: Gäste

geschrieben 16. Juni 2010 - 12:35

Hab heute leider nicht viel Freizeit, deswegen mal nur schnell schnell und nicht hyper-performant, sorry :/

#!/bin/bash

modules=`java -jar deployer.jar --user syste --password manager list_modules`

for module in "JSPWiki" "default\/program\/" "default\/program_job\/"
do
  temp=`sed -n "/${module}/p" <<< "${modules}" | cut -c5-`
  case ${module} in
	"JSPWiki") [[ ${temp} != "" ]] && PATH_WIKI=${temp};;
	"default\/program\/") [[ ${temp} != "" ]] && PATH_PROG=${temp};;
	"default\/program_job\/") [[ ${temp} != "" ]] && PATH_JOB=${temp};;
  esac
done

echo "$PATH_WIKI --- $PATH_PROG --- $PATH_JOB"
Ich hab deine Ausgabe zum Testen hier in eine Datei geschrieben und damit gearbeitet, solange die modules=`java ...`-Zeile also keine komischen Line-Endings oder sonstigen Müll produziert, sollte das als Ausgangspunkt so funktionieren.

Ich hoffe das hilft dir, mein BASH-Foo ist leider limitiert, in Perl oder Ruby wär's für mich einfacher. ;)
0

#11 Mitglied ist offline   OskarMRz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 274
  • Beigetreten: 22. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:noone knows

geschrieben 16. Juni 2010 - 13:02

Vielen lieben Dank. Damit kann ich schon weiter arbeiten. Vielen Dank, dass du dran geblieben bist. : )
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0