Announcement

Collapse
No announcement yet.

brauche Shell-Script Hilfe

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • brauche Shell-Script Hilfe

    Aktualisiertes Skript. Problem ist nun: es wird nicht das richtige in die Datei OUTPUT_FILE2 geschrieben. es wird immer das print ausgeführt: print "$timestamp : Nicht alle Systeme verfügbar" >> $OUTPUT_FILE2. Auch wenn errors=0 ist.

    Skript:

    timestamp=$(date '+%Y%m%d-%H:%M:%S')
    touch return$timestamp.log
    ERROR_FILE="return$timestamp.log"
    errors=$(grep "nicht verfügbar" return.log | wc -l)
    errors2=`grep "nicht" return.log >/dev/null`
    echo $errors2
    echo $errors
    if [ "$errors" = 0 ]; then
    print "$timestamp : Alle Systeme verfügbar" >> $OUTPUT_FILE2
    elif [ "$errors" > 0 ]; then
    print "$errors2" >> $ERROR_FILE
    print "$timestamp : Nicht alle Systeme verfügbar" >> $OUTPUT_FILE2
    fi
    Zuletzt editiert von Agnes; 19.01.2010, 13:15.

  • #2
    1. Umleitung sollte mit >/dev/null gehen
    Christian

    Comment


    • #3
      Danke schonmal!

      Comment


      • #4
        mit meinem grep scheint auch was nicht zu stimmen. wenn alle systeme verfügbar sind wird das nicht in die datei OUTPUT_FILE2 geschrieben.

        Comment


        • #5
          *deleted* *deleted*
          Zuletzt editiert von Agnes; 08.03.2012, 13:52.

          Comment


          • #6
            *deleted deleted*
            Zuletzt editiert von Agnes; 08.03.2012, 13:52.

            Comment


            • #7
              nun noch ein Problem, das bei der Ausführung als Cronjob auftaucht... da kommt jetzt immer, dass NICHTS verfügbar ist, was aber nicht so ist. Mein gesamtes Skript hab ich ja bereits gepostet. Wenn ich das Skript selber ausführe, sind alle DBs verfügbar, aber wenn der Cronjob läuft krieg ich jedes Mal ne Mail dass nichts verfügbar ist. Ich habe hinter jedes fi, also immer da zwischen:
              location=RL11PROD
              user=rl1ftp
              pw=ibmarge1
              db2 -a +o connect to $location user $user using $pw
              if [ "$?" = 0 ]; then
              print "$location verfügbar" >> $OUTPUT_FILE
              elif [ "$?" > 0 ]; then
              print "$location nicht verfügbar" >> $OUTPUT_FILE
              fi

              location=RBP1PROD
              user=rbpftp
              pw=ibmarge1
              db2 -a +o connect to $location user $user using $pw
              if [ "$?" = 0 ]; then
              print "$location verfügbar" >> $OUTPUT_FILE
              elif [ "$?" > 0 ]; then
              print "$location nicht verfügbar" >> $OUTPUT_FILE
              fi

              location=RLP1PROD
              user=rlpftp
              pw=ibmarge1
              if [ "$?" = 0 ]; then
              print "$location verfügbar" >> $OUTPUT_FILE
              elif [ "$?" > 0 ]; then
              print "$location nicht verfügbar" >> $OUTPUT_FILE
              fi
              ein db2 -a +o connect reset
              eingefügt, kann es damit zusammenhängen?

              Comment


              • #8
                Mit welchen Rechten läuft der CronJob?
                Christian

                Comment


                • #9
                  das ist eine gute frage, wie kann ich das prüfen?

                  das skript selber hat folgende berechtigungen:
                  -rwx------

                  Comment


                  • #10
                    das ist eine gute frage, wie kann ich das prüfen? -> Wie/von wem wird der Job aufgerufen

                    das skript selber hat folgende berechtigungen:
                    -rwx------
                    Das bedeutet, dass nur du überhaupt einen Zugriff auf das Script hast. Kein anderer kann es lesen, schreiben oder ausführen
                    Christian

                    Comment


                    • #11
                      Originally posted by Christian Marquardt View Post
                      das ist eine gute frage, wie kann ich das prüfen? -> Wie/von wem wird der Job aufgerufen



                      Das bedeutet, dass nur du überhaupt einen Zugriff auf das Script hast. Kein anderer kann es lesen, schreiben oder ausführen

                      Der Job wird von dem User aufgerufen, der auch den erwähnten Zugriff hat. Das Skript wird ja scheinbar auch ausgeführt, sonst käme ja keine Email an, oder?
                      also ich habe die crontab mit dem gleichen User bearbeitet, der auch das Skript ausführen darf. Also "ich" sozusagen.

                      Comment


                      • #12
                        Würde dann nicht sagen, dass es ein Rechteproblem ist
                        Christian

                        Comment


                        • #13
                          und was könnte es stattdessen sein?

                          Comment


                          • #14
                            Keine Ahnung, Vielleicht kann die DB nicht so schnell die Connection auf- und abbauen.

                            Würde micht heutzutag auch nicht mehr mit Shellscripten quälen....das geht alles mit PERL oder Java um Längen schneller und einfacher
                            Christian

                            Comment


                            • #15
                              Hat sich erledigt, funktioniert, Thread kann geschlossen werden.

                              Comment

                              Working...
                              X