![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| standard cron skal | dummy_9746 | Shell-programmering och Skript | 2 | 10-13-2008 03:25 |
| Cron verkställa skal script | ashish.sharma | Shell-programmering och Skript | 3 | 09-08-2008 03:57 |
| Är det möjligt att ha mer än en Cron i shell script? | Yamini Thoppen | AIX | 4 | 12-17-2007 03:23 |
| Shell script & cron | deppy82 | Shell-programmering och Skript | 3 | 08-02-2007 02:00 |
| Shell + Oracle + Cron jobb | pathanjalireddy | Shell-programmering och Skript | 1 | 04-07-2005 03:07 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
varav den ena är bättre Kör med Cron eller Shell
Bäste expertkommitténs Jag har ett script som definieras i Cron som går varje 1 minut. Kod:
* * * * * /export/home/myscript.sh >/dev/null 2>&1 Nu handlar det verkställande att myscript.sh någon gång kommer att äga 2 / 3 eller flera minuter att slutföra utförande. Men efter 1 minut cron kommer att åberopa en annan instans (process) verkställa myscript. I så fall tror du att det finns en sannolikhet att överlappar exempel och kan skapa problem. Om det finns en chans för överlappning kan vara under shellscript (kör i bakgrunden) är okej som kommer att pågå varje 1 minut. Skriptet anropar olika omedelbart efter varje minut. Kod:
#!/usr/bin/bash
while :
do
sleep 60 & pid=$!
/export/home/myscript.sh
wait $pid
done
Kan du göra din värdefulla förslag? / / lila |
|
||||
|
Det finns en annan lösning på detta problem, men du måste lägga till kod på din "myscript.sh". Sätt någon form av lås medan ditt program är runing, t.ex. om dina program är ett shell script kan du lägga till följande rader: Kod:
...
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}
Jag föredrar denna typ av kodning i sådana fall, eftersom det är bättre att skydda denna typ av program som körs overlaping processer. Så antingen du föredrar cron eller sova nohup shell scripts, de är utsatta för att köra i simultaneus fall, om du använder någon form av låsning detta är omöjligt. Hej då ... |
|
||||
|
Citat:
Kod:
#!/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}
Efter att jag kan sätta in scriptet i crontab. I detta fall var 1 minut cron kommer att åberopa process och barnets process. Men tiden programmet (myscript) kan köras med olika och barn process id. rätt? / / lila |
|
||||
|
dessutom,
Låt säga myscript.sh är igång och har under processen id - Solaris: / home/user1> ps-ef | grep myscript.sh Solaris 25907 10427 0 14:36:50? 0:00 / export / home / myscript.sh Jag sätter myscript.sh i cron som 1 minut intervall. Så var 1 minutersintervall Solaris återigen köra myscript.sh. Tror du Solaris maj försöka assing nästa myscript.sh med procss id 25907 (som anger överlappande)? procss id 25907 fortfarande ..... |