script mit topas ausgabe als cronjob

C

cybrechris

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
Code:
#!/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$MM$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 -----------------------------
#==============================================================================
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Problem gelöst:
ich muss die TERM variable setzten

Code:
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
 
Zuletzt bearbeitet von einem Moderator:

Ähnliche Themen

Script pausieren bis Bedingung erfüllt ist

script sshpass

Verschlüsseltes Backup-Script mit rsync

Queue für copy Script

Shell script

Zurück
Oben