awk Script aus jedem Verzeichnis ausführen

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von TobyTobsen, 23.03.2009.

  1. #1 TobyTobsen, 23.03.2009
    Zuletzt bearbeitet: 23.03.2009
    TobyTobsen

    TobyTobsen Grünschnabel

    Dabei seit:
    23.02.2009
    Beiträge:
    9
    Zustimmungen:
    0
    Hi Leute,

    und zwar habe ich diesmal folgendes Problem.
    Ich habe ein ksh Script mit dem Namen "menu_main" geschrieben, dass wiederrum verschiedene awk-Skripte aufruft. Hier ein kurzer Auszug:

    Code:
    if [[  -d $FOLDER/dump/ && -d $FOLDER/opt/ && -d $FOLDER/var/ ]]
    	then		
    		echo "\033[1;32mCorrect folder\033[m"
    		paste $FOLDER/opt/hsc/data/version $FOLDER/root/.version  $FOLDER/tmp/pesupport/network_cfg/lshmc_v >ergebnis
    awk -f ausgabe ergebnis


    Jetzt habe ich den Pfad zu dem Skript "menu_main" so in profiles eingetragen, dass ich es aus jedem Ordner heraus ohne die Pfadangabe starten kann.
    Allerdings sind meine awk Skripte mit nicht mehr ausführbar.

    Hat da vielleicht jemand eine Idee.
    Wäre echt super, wenn ihr mit weiterhelfen könnt.
    Schon einmal vielen Dank im Voraus

    Gruß
    Tobi
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Akendo, 23.03.2009
    Zuletzt bearbeitet: 23.03.2009
    Akendo

    Akendo 4k3nd0

    Dabei seit:
    05.02.2008
    Beiträge:
    396
    Zustimmungen:
    0
    Code:
    ln -s /verzeichnis/zum/scrip /usr/bin/scriptname
    Erstellt im bin einen Link zu deinem Scrip, nun kannst du ueberall dein skript mit den gelinkten Namen aufrufen.
     
  4. #3 TobyTobsen, 23.03.2009
    TobyTobsen

    TobyTobsen Grünschnabel

    Dabei seit:
    23.02.2009
    Beiträge:
    9
    Zustimmungen:
    0
    Hi Akendo,
    vielen Dank für deine schnelle Antwort. Ich habe das jetzt ausprobiert.
    Das Skript liegt einfach im Verzeichnis Final.

    Das Kommando habe ich entsprechend deiner Syntax eingegeben:

    Code:
    ls -s /Final /usr/bin/ausgabe
    Da kommt aber folgende Fehlermeldung

    Code:
    ls: 0653-341 The file /usr/bin/ausgabe does not exist.
    /Final:
    total 292                       4 hostname
       0 Hauptmenü                 12 int_analyse
       4 analyse2                   8 interface3.txt
       4 ausgabe                    4 ksh
       4 ausgabe2                   4 logserver.log.old_gzip
       4 ausgabe3                   4 lssys2
       4 ausgabe4                   4 lssys3
    

    Was habe ich da falsch gemacht. Zur Infor ich arbeite auf dem AIX 6.1 System, vielleicht liegt es ja daran.

    Danke dir schon einmal im Voraus

    Gruß
    Tovi
     
  5. #4 Akendo, 23.03.2009
    Zuletzt bearbeitet: 23.03.2009
    Akendo

    Akendo 4k3nd0

    Dabei seit:
    05.02.2008
    Beiträge:
    396
    Zustimmungen:
    0
    Es muss ln heissen :-)
     
  6. #5 TobyTobsen, 23.03.2009
    TobyTobsen

    TobyTobsen Grünschnabel

    Dabei seit:
    23.02.2009
    Beiträge:
    9
    Zustimmungen:
    0
    :)) Muss wohl noch ziemlich früh für mich sein ..... ln und ls klar ok

    Habe das ganze jetzt korrekt eingegeben

    Code:
    ln -s /Final /usr/bin/ausgabe
    das ist auch fehlerlos angenommen worden. Allerdings bringt der Aufruf aus einem anderen Verzeichnis, in dem die Datei "ergebnis" liegt, die mittels des Skripts "ausgabe" bearbeitet werden soll folgende Ausgabe.

    Code:
    awk -f ausgabe ergebnis
    awk: 0602-546 Cannot find or open file ausgabe.
    Also nicht wirklich eine Verbesserung.

    Was mach ich denn da falsch, liegt das an dem awk -f dass er das nicht findet ?
     
  7. Akendo

    Akendo 4k3nd0

    Dabei seit:
    05.02.2008
    Beiträge:
    396
    Zustimmungen:
    0
    Das ist ja leider nur ein Auszug aus deinem Script.
    Koenntest du mir das mal ganz hochladen? Ansonsten versucht doch an der Fehlerstelle anzusetzen, wo awk einen Fehler ausgibt.
     
  8. #7 TobyTobsen, 23.03.2009
    Zuletzt bearbeitet: 23.03.2009
    TobyTobsen

    TobyTobsen Grünschnabel

    Dabei seit:
    23.02.2009
    Beiträge:
    9
    Zustimmungen:
    0
    dankr dir nochmals für deine schnellen Antworten :)).
    Ds awk Skript funktioniert ja mit der Pfadangabe vorneweg einwandfrei.
    Sprich:
    Code:
    awk -f /Final/ausgabe ergebnis
    .

    Ich schick dir jetzt mal den gesamten Code, vielleicht hilft das ja weiter.
    In der Funktion Systeminformation interessiert mich nur die erste if Abfrage. Überall wo eine Ausgabe in die Datei Generalprobe/ergebnis umgeleitet wird.... ist noch nicht interessant

    Code:
    # function DataCheck()
    ## prints the availability of files used in this program on the screen
    DataCheck()
    {
    echo""
    if [[ ! -a $FOLDER/dump/rmc/lspartition.out  ]] #pfad anpassen
    	then
    		echo "\033[1;31mFile: lspartition.out does not exist\033[m"
    		
    		if  [[ ! -a $FOLDER/dump/rmc/_ctsupt_/ctsnap.*.*.tar.gz ]]
    			then
    				echo "\033[1;31mFile: snapExtract.tar.gz does not exist\033[m"
    
    			if  [[ ! -a $FOLDER/tmp/sysinfo.log ]]
    				then
    					echo "\033[1;31mFile: sysinfo.log does not exist\033[m"
    
    				if  [[ ! -a $FOLDER/tmp/pesupport/network_cfg/arpa ]]
    					then
    						echo "\033[1;31mFile: arpa does not exist\033[m"
    		
    					if  [[ ! -a $FOLDER/tmp/pesupport/network_cfg/messages ]]
    						then
    							echo "\033[1;31mFile: message does not exist\033[m"	
    		
    						if  [[ ! -a $FOLDER/tmp/pesupport/network_cfg/lshmcn ]]
    							then
    								echo "\033[1;31mFile: lshmnc does not exist\033[m"	
    
    							if  [[ ! -a $FOLDER/tmp/pesupport/network_cfg/lssyscfgsys ]]
    								then
    									echo "\033[1;31mFile: lssyscfgsys does not exist\033[m"	
    
    								if  [[ ! -a $FOLDER/tmp/pesupport/network_cfg/ifc* ]]
    									then
    										echo "\033[1;31mFile: ifcgeth does not exist\033[m"	
    
    									if  [[ ! -a $FOLDER/var/hsc/log/hdwr_svr.log.old.* ]]
    										then
    											echo "\033[1;31mFile: hdwr_svr.log.old does not exist\033[m"	
    
    										if  [[ ! -a $FOLDER/var/hsc/log/cimserver.log ]]
    											then
    												echo "\033[1;31mFile: cimserver.log does not exist\033[m"	
    
    											if  [[ ! -a $FOLDER/var/hsc/log/cimLogs/cimserver.log.*.gz ]]
    												then
    													echo "\033[1;31mFile: cimserver.log.*.gz does not exist\033[m"	
    
    												if  [[ ! -a $FOLDER/var/log/messages-*.gz ]]
    													then
    														echo "\033[1;31mFile: messages-*.gz does not exist\033[m"	
    
    													if  [[ ! -a $FOLDER/var/hsc/log/hmclogger.log ]]
    														then
    															echo "\033[1;31mFile: hmclogger.log does not exist\033[m"
    													
    													fi
    												fi
    											fi
    										fi
    									fi
    								fi
    							fi
    						fi
    					fi
    				fi
    			fi
    		fi
     else
    	echo "\033[1;32mNo data needed for the analysis is missing\033[m"
    fi
    echo "**************************************************************************"
    }
    
    SystemInformation()
    {
    echo "**************************************************************************"
    if [[  -d $FOLDER/dump/ && -d $FOLDER/opt/ && -d $FOLDER/var/ ]]
    	then		
    		echo "\033[1;32mCorrect folder\033[m"
    		paste $FOLDER/opt/hsc/data/version $FOLDER/root/.version  $FOLDER/tmp/pesupport/network_cfg/lshmc_v >ergebnis
    		if [[  $? -ne 0 ]]
    		then
    			paste $FOLDER/root/.version  $FOLDER/tmp/pesupport/network_cfg/lshmc_v >/Generalprobe/ergebnis
    			if [[  $? -ne 0 ]]
    			then
    				paste $FOLDER/opt/hsc/data/version $FOLDER/root/.version >/Generalprobe/ergebnis
    				if [[  $? -ne 0 ]]
    				then
    					paste $FOLDER/opt/hsc/data/version $FOLDER/tmp/pesupport/network_cfg/lshmc_v >/Generalprobe/ergebnis
    					if [[  $? -ne 0 ]]
    					then 
    						paste $FOLDER/tmp/pesupport/network_cfg/lshmc_v >/Generalprobe/ergebnis
    						if [[  $? -ne 0 ]]
    						then
    							paste $FOLDER/opt/hsc/data/version >/Generalprobe/ergebnis
    							if [[  $? -ne 0 ]]
    							then
    								paste $FOLDER/root/.version >/Generalprobe/ergebnis
    									if [[  $? -ne 0 ]]
    									then
    										echo "Es sind keine Dateien vorhanden"
    										exit
    										fi
    								awk -f ausgabe7 ergebnis
    								exit
    								fi
    							awk -f ausgabe6 ergebnis
    							exit
    							fi
    						awk -f ausgabe5 ergebnis
    						exit
    						fi					
    					awk -f ausgabe4 ergebnis					
    					exit
    					fi
    				awk -f ausgabe3 ergebnis
    				exit
    				fi
    			awk -f ausgabe2 ergebnis
    			exit
    			fi
    	awk -f ausgabe $FOLDER/ergebnis
    	else		
    		echo "\033[1;31mWrong folder\033[m"
    		
    	fi
    }
    
    #function folderInfo
    ##prints the current folder 
    folderInfo()
    {
    if [[ -d $FOLDER/dump/ && -d $FOLDER/opt/ && -d $FOLDER/var/ ]]
    	then
    			OUTPUT=1
    else 
    	OUTPUT=0
    fi
    }
    
    
    ################################################################
    ##### MAIN
    ################################################################
    #Variablen Definition
    SILENT=0
    PROGRAM="\033[1;34mAnalyse Blue\033[m"
    FOLDER=$(pwd)
    echo $FOLDER
    USAGE=1
    OUTPUT=0
    HOMEDIR=$(pwd)
    echo $HOMEDIR
    
    
    # process parameter and set the variables accordingly
    while getopts shu o
    do	case "$o" in
    	# silent mode
    	s) 	SILENT=1;;
    	h)	usage
    		exit 0;;
    	u) USAGE=0;;
    	# unknown parameter
    	[?])	usage
    		exit 1;;
    	esac
    done
    
    if [[ SILENT -eq 0 ]]
    then
    	header
    fi
    
    if [[ USAGE -eq 1 ]]
    then
    	usage
    fi
    
    
    
    # shift the processed parameters out of the scope
    shift $(($OPTIND -1))
    
    
    
    # change the directory
    case $# in
    	# 0 -> error and exit
    	0)	echo ""
    		folderInfo
    		if [[ $OUTPUT -eq 1 ]]
    			then
    				echo ""
    				echo "\033[1;32mCurrent debug dir: "$FOLDER"\033[m"
    			else
    				echo ""
    				echo "\033[1;31mNo User dir is selected (--> Usage)\033[m"
    		fi;;
    	# 1 -> assign corresponding variable
    	1)	FOLDER=$1
    		folderInfo
    		if [[ $OUTPUT -eq 1 ]]
    			then 
    				echo ""
    				echo "\033[1;32mCurrent debug dir: "$FOLDER"\033[m"
    		elif [[ $OUTPUT -ne 1 ]]
    			then 
    				echo ""
    				echo "\033[1;31mNo dir selected (--> Usage)\033[m"
    		fi;;
    	# other value -> error and exit
    	*)	echo "ERROR: WRONG PARAMETERS"
    		usage
    		exit 3;;
    esac
    
    
    
    run=99
    ################################################################
    ##### Now the real Part starts
    ################################################################
    while [[ run -eq 99 ]]
    do
    
    #if [[ $FOLDER != $(pwd) ]]
    folderInfo
    if [[ $OUTPUT -eq 1 ]]
    	then
    		echo ""
    		SystemInformation
    		DataCheck
    		echo ""
    elif [[ $FOLDER == $(pwd) ]]
    	then
    		FOLDER=""		
    fi
    echo ""
    echo " -------------------------------------------------"
    echo "|Which Operation do you want to execute?(1-6)     |"	
    echo " -------------------------------------------------"
    echo "1. Extract Dump/ctsnap"
    echo "2. User driven data analysis"
    echo "3. automatic analysis"
    echo "4. modular analysis"
    echo "5. Select the Path to an extracted Archive"
    echo " -------------------------------------------------"
    echo "6. Quit program"
    
    printf "\n"
    read eingabe?"Select number now: " 
    case $eingabe in
    	1) 	#$HOMEDIR/main_extract $FOLDER
    		main_extract $FOLDER
    		exit;;	 
        2)	int_analyse $FOLDER
    		#$HOMEDIR/int_analyse $FOLDER
    		if [[ $? -eq 11 ]]
    		then
    			run=11
    		fi;;
    	3)	$HOMEDIR/automatic_analysis $FOLDER;;
    	4) $HOMEDIR/interface3.txt $FOLDER;;	
    	5)  userDir;;
    	6)  echo ""
    		read end?"Do you really want to quit the program [y/n]?"
    		if [[ $end == 'y' ]]
    		then
    			exit
    		elif [[ $end == 'n' ]]
    			then
    				run=99
    				#/Generalprobe/menu_main
    		else 
    			echo "Wrong Parameter"
    			#/Generalprobe/menu_main
    		fi;;			
    	*) echo "Wrong Parameter"
    		exit;;
    	
    esac
    done
    
    

    Alle Skripte liegen im Ordner Final
    Aufgerufen wird es aus dem Ordner tmp/090319.1631
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    ich werfe mal chmod, she-bang und $PATH als Stichworte in die Runde.
     
  11. #9 TobyTobsen, 23.03.2009
    TobyTobsen

    TobyTobsen Grünschnabel

    Dabei seit:
    23.02.2009
    Beiträge:
    9
    Zustimmungen:
    0
    Hi das hat geklappt einfach in das awk Script vorne #!/bin/awk -f einfügen
    und dann aus dem ksh skript ohne das awk -f kommando vorneweg aufrufen

    sprich "ausgabe ergebnis"

    danke euch vielmals
     
Thema:

awk Script aus jedem Verzeichnis ausführen

Die Seite wird geladen...

awk Script aus jedem Verzeichnis ausführen - Ähnliche Themen

  1. Welches Script wird nach jedem Login eines Users ausgeführt?

    Welches Script wird nach jedem Login eines Users ausgeführt?: Morgen! Hab da mal son Anliegen. Habe mehrere User eingetragen..... eigentlich normale Benutzer...... Denen soll bei meiner Slackware 10.2 der...
  2. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  3. Bashscript aus Debian6 läuft nicht auf Debian7

    Bashscript aus Debian6 läuft nicht auf Debian7: Hallo an alle, nachdem ich ein Skript von squeeze auf wheezy kopiert habe und ausführte, erschienen gleich wilde Fehlermeldungen, nach denen ich...
  4. Shell Script Problem

    Shell Script Problem: Hallo zusammen, ich arbeite momentan mit einem Plagiat Tool, die ich über Git Bash ausführe. Es wird im Endeffekt ein Link generiert, die ich...
  5. Externes Programm mit Script ausführen?

    Externes Programm mit Script ausführen?: Hallo, ich würde gern ein Script zum klonen von festplatten schreiben z.B. mit dem Programm Mondo Rescue. Ist es möglich externen Programmen...