The UNIX and Linux Forums  


Go Back   UNIX e Linux Forum > Inizio Forum > UNIX for Dummies Domande & Risposte
.
google unix.com



UNIX for Dummies Domande & Risposte Se non sei sicuro dove pubblicare un UNIX o Linux domanda, posta da qui. Tutti i neofiti di Linux e UNIX benvenuto!

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Script non funziona correttamente quando viene eseguito da Crontab simoncjones Shell scripting e di programmazione 2 05-03-2009 03:11 PM
problema esecuzione script di shell (per oracolo di esportazione) nel crontab jsheehan223 Shell scripting e di programmazione 1 10-16-2008 04:29 PM
Di fronte a rilascio di Solaris OS in crontab per l'esecuzione di script di shell mabrar Shell scripting e di programmazione 2 11-02-2007 06:32 AM
Comando Non script in esecuzione in Dastard Shell scripting e di programmazione 2 05-21-2007 06:08 PM
rsh multipli in esecuzione il comando in uno script lweegp Shell scripting e di programmazione 0 10-31-2006 02:37 AM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 07-02-2009
mystition mystition is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Interventi: 2
Un comando in uno script non è in esecuzione in crontab.

Salve,

Ho fatto questo script per Unix IFT 5,1 OS basato Node.
Quando lo script è stato eseguito manualmente tutti i comandi eseguiti correttamente. Ma quando è stato eseguito da Crontab, un comando non è in esecuzione.

Questo comando non è in funzione quando lo script viene eseguito da Crontab:
# / Usr/mg2/svi/svicom/svistatjo.x j-20090702-f stat_log_temp
(Questa è una domanda basata comando usato ti scaricare alcune statistiche della domanda a seconda della data)

Sto usando / bin / ksh guscio in crontab script.The Sto usando per utente root, e il comando viene eseguito anche da root

[Di seguito sono riportate le correzioni che ho provato fino ad ora, ma non ha fatto alcun bene:

Fix 1:
Ho cercato di trovare la directory da cui il comando è in esecuzione dal seguente modo:
# Cd / usr/mg2/svi/svicom
# Che svistatjo.x
Uscita: / usr/mg2/svi/svicom/svistatjo.x
Se il comando ', che svistatjo.x' viene eseguito da qualsiasi altro percorso, non si ottiene uscita.
Questa è la ragione ho dato il comando di cui sopra è stato con il percorso completo.

Fix 2:
Ho usato il comando in questo modo anche lo script, ma non è ancora runnng tramite crontab.
# su-c "svistatjo.x j-20090702-f stat_log_temp"

Inoltre, ogni volta che mi esegue lo script da Crontab, un messaggio di errore è venuta mail, qualcosa del tipo:
"stty: tcgetattr: Non è una macchina da scrivere
stty: tcgetattr: Non è una macchina da scrivere
Non è un terminale
Ambigui uscita reindirizzamento. ", Ma non sono sicuro di come questo errore è legato al comando.]

Si prega di suggerire le modifiche in modo che questo comando può essere eseguito anche da crontab.

\ \ Grazie in anticipo
  #2 (permalink)  
Old 07-02-2009
Smiling Dragon's Avatar
Smiling Dragon Smiling Dragon is offline Forum Advisor  
Disorganizzato utente
  
 

Iscriviti Data: novembre 2007
Luogo: Nuova Zelanda
Interventi: 922
Questo mi sembra che si sta utilizzando una variabile d'ambiente all'interno del vostro script - cron non creare qualsiasi tipo di ambiente.
Un'altra possibilità è che potrebbe non essere esplicitamente riferimento a ksh nel #! percorso nella parte superiore del tuo script, cron esegue tutto sh.
Tale avvertenza di un ambiguo reindirizzamento è probabilmente il nocciolo della questione, ma il comando non sta facendo alcun reindirizzamento.

Puoi provare a inviare il tuo crontab linea, e forse anche lo script?
  #3 (permalink)  
Old 07-02-2009
mystition mystition is offline
Utente Registrato
  
 

Iscriviti Data: maggio 2009
Interventi: 2
Smile

Grazie per la pronta risposta ... qui è la parte dello script (in grassetto), dove è l'errore che si verificano.

In crontab entrata ho semplicemente dato voce come questa:
00 2 * * * / percorso / SCRIPT_NAME

Codice:
#!/bin/ksh
if cd /usr/Prepaid/Health-check 2>/dev/null;
then
 find /usr/Prepaid/Health-check -name "health_*" -mtime +30 -exec rm "{}" ";" 
else
cd /usr/Prepaid
mkdir Health-check
fi
logd=`date '+%Y%m%d-%H:%M'`
echo "\nAutomated health Check of HP IVR" > /usr/Prepaid/Health-check/health_$logd.log

-----------------------------------------------------------------------------------------------------
echo "\n\n---------------" >> /usr/Prepaid/Health-check/health_$logd.log
echo "SVI Call" >> /usr/Prepaid/Health-check/health_$logd.log
echo "--------------------------------------------------------------------------------" >> /usr/Prepaid/Health-check/health_$logd.log
date=`TZ=aaa00 date +%Y%m%d`
#cd /usr/mg2/svi/svicom >/dev/null 2>&1
/usr/mg2/svi/svicom/svistatjo.x -j $date -f /usr/Prepaid/log_$date.log >/dev/null 2>&1
cd /usr/Prepaid
echo "Type    Inter   Access  Appli   Called  Calling Diag    CnxT    CnxD    Node" >tempmmtstatjo
tail -5 log_$date.log >> tempmmtstatjo 
st=`wc -l tempmmtstatjo | awk '{print $1}'`
if [ $st -gt 2 ]
then
echo "The following is list of upto last five calls: " >> /usr/Prepaid/Health-check/health_$logd.log
cat tempmmtstatjo >> /usr/Prepaid/Health-check/health_$logd.log
tail -1 tempmmtstatjo > tempmmtstatjo1
awk '{print $8}' tempmmtstatjo1 > tempmmtstatjo2
hourc=`awk -F"H" '{print $1}' tempmmtstatjo2`
minc=`awk -F"H" '{print $2}' tempmmtstatjo2`
let timec=$hourc*60+$minc
hourn=`date '+%H'`
minn=`date '+%M'`
let timen=$hourn*60+$minn
let gapt=$timen-$timec
let gaph=`expr $gapt / 60`
let gapm=`expr $gapt % 60`
 if [ $gapt -gt 10 ] && [ $gapt -le 30 ]
 then
 echo "\nMajor Warning: There were no call records in the last $gapt minutes" >> /usr/Prepaid/Health-check/health_$logd.log
 elif [ $gapm -gt 30 ] || [ $gaph -gt 0 ] || [ $gapt -gt 30 ]
 then
 echo "\nCritical Warning: There were no call records in the last $gaph hours $gapm minutes" >> /usr/Prepaid/Health-check/health_$logd.log
 else
 echo "\nThe last call record is of $gapm minutes ago" >> /usr/Prepaid/Health-check/health_$logd.log
 fi
else
echo "Critical Warning:There were no call records found on the server for today. Please check." >> /usr/Prepaid/Health-check/health_$logd.log
fi
rm tempmmtstatjo
rm tempmmtstatjo1
rm tempmmtstatjo2
rm log_$date.log

#---------------------------------------------------------------------------------------
cat /usr/Prepaid/Health-check/health_$logd.log > /usr/Prepaid/Health-check/health-check.log
#---------------------------------------------------------------------------------------


Posta ---------- aggiornato a 01:29 PM ---------- precedente aggiornamento è stato a 11:38 AM ----------

Risolto problema!

Aggiunto questa linea nello script della shell dopo la definizione del percorso:

. $ (HOME) /. Profile


/ /

Ultimo a cura di mystition; al 07/02/2009 05:49 AM..
Reply

Segnalibri

Tag
comando non è in esecuzione da crontab, svistatjo.x

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 02:07 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0