cyberchris Geschrieben 22. August 2008 Geschrieben 22. August 2008 (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 22. August 2008 von cyberchris ergänzung Zitieren
cyberchris Geschrieben 22. August 2008 Autor Geschrieben 22. August 2008 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 Zitieren
Empfohlene Beiträge
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.