![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| cron default della shell | dummy_9746 | Shell scripting e di programmazione | 2 | 10-13-2008 03:25 PM |
| Cron esecuzione di script di shell | ashish.sharma | Shell scripting e di programmazione | 3 | 09-08-2008 03:57 AM |
| E 'possibile avere più di uno script di shell in cron? | Yamini Thoppen | AIX | 4 | 12-17-2007 03:23 AM |
| Script di shell e cron | deppy82 | Shell scripting e di programmazione | 3 | 08-02-2007 02:00 PM |
| Shell + + Oracle Cron lavoro | pathanjalireddy | Shell scripting e di programmazione | 1 | 04-07-2005 03:07 AM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
che uno è meglio Esegui da cron o Shell
Cari esperti, Ho uno script definito in cron che effettua corse ogni 1 minuto. Codice:
* * * * * /export/home/myscript.sh >/dev/null 2>&1 Ora il problema è che l'esecuzione myscript.sh talvolta avrà 2 / 3 o più minuti per terminare l'esecuzione. Ma dopo 1 minuto di cron richiamerà un altro esempio (processo) eseguire il mioscript. In questo caso si che ci sia una probabilità di sovrapposizione e l'istanza può creare problemi. Se c'è una possibilità di sovrapposizione può essere inferiore shellscript (eseguito in background) è bene che si svolgerà ogni 1 minuto. Script richiamerà diversi istante dopo ogni minuto. Codice:
#!/usr/bin/bash
while :
do
sleep 60 & pid=$!
/export/home/myscript.sh
wait $pid
done
Potrebbe rendere il vostro prezioso suggerimento? / / viola |
|
||||
|
Vi è un'altra soluzione a questo problema, ma dovete aggiungere il codice al tuo `myscript.sh '. Metti una sorta di blocco, mentre il programma è runing, ad esempio, se il tuo programma è uno script di shell, è possibile aggiungere le seguenti righe: Codice:
...
lock=/export/home/.myscript.lock
trap "rmdir ${lock}; exit 2" 1 2 3 15
# Now lock. If lock fails, then propably the program is runing.
mkdir ${lock} || exit 0
...
Here comes the script code
...
# Now unlock, so another instance of this program can run in the future.
rmdir ${lock}
Io preferisco questo tipo di codifica, in tali casi, perché è meglio per proteggere questo tipo di programmi per eseguire i processi overlaping. Allora, o si preferisce cron, o dormire nohup script di shell, il processo è vulnerabile per l'esecuzione in simultanea casi; se si usa un qualche tipo di blocco questo è impossibile. Bye ... |
|
||||
|
Citazione:
Codice:
#!/usr/bin/bash
lock=/export/home/.myscript.sh.lock
trap "rmdir ${lock}; exit 2" 1 2 3 15
mkdir ${lock} || exit 0
...
Here comes my script code
...
rmdir ${lock}
Dopo che i può mettere lo script in crontab. In tal caso ogni 1 minuto cron invocherà processo e processo figlio. Ma intanto, il programma (mioscript) può essere eseguito con diversi processi e processo figlio id. giusto? / / viola |
|
||||
|
inoltre,
diciamo myscript.sh è in esecuzione e che qui di seguito il processo con id - solaris: / home/user1> ps-ef | grep myscript.sh solaris 25907 10427 0 14:36:50? 0:00 / export / home / myscript.sh ho messo in cron il myscript.sh come intervallo di 1 minuto. Così, ogni intervallo di 1 minuto solaris nuovamente eseguire il myscript.sh. Pensi che solaris maggio provi a Assing la prossima myscript.sh con procss id 25907 (che indica la sovrapposizione)? procss id 25907 ancora in corso ..... |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|