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 -----------------------------
#==============================================================================