Zum Inhalt springen

script mit topas ausgabe als cronjob


Empfohlene Beiträge

Geschrieben (bearbeitet)

hallo experten,

ich bin leider mit meinem latein am ende und hoffe hier unter euch profis auf eine lösung zu kommen.

problem: ich habe ein kleines ksh script unter aix 5.3 welches mir topas startet und die ausgabe in ein file weiterleitet. *funktioniert einwandfrei*

nun muss ich dieses script aber als cronjob starten lassen können. leider funktioniert dies nicht - als fehlermeldung erhalte ich:

"/tmp/ars_diag/ars_topas.ksh: There is no process to read data written to a pipe."

und

"Terminal dumb is unknown."

mir scheint es liegt daran das der cron kein fenster/terminal zur ausgabe zur verfügung hat.

ich hoffe ihr könnt mir helfen:

ps: bitte kein workaround anhand anderer programme wie zb: xmwlm und topasout, oder sar oder dergleichen - ich benötige topas!

herzlichen dank für euer feedback.

chris


#!/bin/ksh

###############################################################################

# descr:      $1 intervall                  5

#             $2 sleep in seconds           60

###############################################################################

#

# =============================================================================

#                                   variablen 

# =============================================================================

INTVL="$1"

SLEEP="$2"


LOGS="_topas"

LOGD="/tmp/ars_diag/"

LOGT="/tmp/ars_diag/ars_topas"

XMWF="/etc/perf/daily/xmwlm"


HH=0

MM=0

SS=0

MON=0

DAY=0

YY=0

TIMEE=0

TIMEF=0

LOGF=0


CNT=0

VER="_01"



#==============================================================================

#---------------------------------- the_time ----------------------------------

#==============================================================================

# function for time stamp

#------------------------------------------------------------------------------

the_time()                       

{

HH=$(date +%H)

MM=$(date +%M)

SS=$(date +%S)

MON=$(date +%m)

DAY=$(date +%d)

YY=$(date +%Y)

YEAR=$(date +%y)



TIMEE=$DAY"/"$MON"/"$YY"        "$HH":"$MM":"$SS

TIMEF=$YY$MON$DAY"_"$HH$M***SS


LOGF=$LOGD"ars_"$TIMEF$LOGS".log"

}

#------------------------------------------------------------------------------


#==============================================================================

#--------------------------------- read_topas ----------------------------------

#==============================================================================

# cat and transfer topas output

read_topas()

{

while [ ${CNT} -lt $INTVL ]

    do

    #topas | tee $LOGF >> $LOGF 2>&1 

    echo "\n\n----------------------------------------" >> $LOGF

    echo "Start recording: "$TIMEE"\n" >> $LOGF

    #(sleep $SLEEP; echo q) | topas >> $LOGT

    #cat $LOGT >> $LOGF

    #TOPAS=$!

    (sleep $SLEEP; echo q) | topas >> $LOGF 2>&1 1>$LOGF 2>$LOGF

    echo "\n\nStop recording!\n" >> $LOGF 

    echo "----------------------------------------" >> $LOGF

    CNT=`expr $CNT + 1`

    the_time

done

}

#-----------------------------------------------------------------------------


#==============================================================================

#---------------------------------- start of script ---------------------------

#==============================================================================


# timestamp

the_time


# main (topas) function

read_topas

#==============================================================================

#---------------------------------- end of script -----------------------------

#==============================================================================


Bearbeitet von cyberchris
ergänzung
Geschrieben

Problem gelöst:

ich muss die TERM variable setzten


export TERM=vt220


while [ ${CNT} -lt $INTVL ]

    do

    echo "\n\n----------------------------------------" >> $LOGF

    echo "Start recording: "$TIMEE"\n" >> $LOGF

    (sleep $SLEEP; echo q) | topas > $LOGF 2>&1 1>$LOGF 2>$LOGF

    echo "\n\nStop recording!\n" >> $LOGF 

    echo "----------------------------------------" >> $LOGF

    CNT=`expr $CNT + 1`

    the_time

done

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...