Zum Inhalt springen

script mit topas ausgabe als cronjob


cyberchris

Empfohlene Beiträge

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
Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...