![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
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 |
| crontab inte kunde gå igenom, hjälp | duke0001 | UNIX för avancerade & Expertanvändare | 10 | 02-06-2008 03:22 |
| Använda Crontab | sumesh.abraham | Shell-programmering och Skript | 10 | 02-21-2007 06:19 |
| crontab | ss4u | UNIX for Dummies Frågor & Svar | 2 | 02-20-2007 10:33 |
| hjälp med crontab | bob122480 | Shell-programmering och Skript | 3 | 01-22-2007 08:49 |
| Behöver du hjälp i crontab? | J_ang | Shell-programmering och Skript | 3 | 07-22-2006 02:46 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Tyvärr cron är inte särskilt flexibel i detta avseende. Har ditt manus behöver för att köra exakt var 15 dagar, eller kan du bara köra den på 1: a och 16: e varje månad, det vill säga ungefär var 15 dagar?
Annars kanske du måste bara köra jobbet varje dag och lägger till några logik så att det kommer ut utan att göra något om den nuvarande antal dagar sedan den 1 januari 1970 inte är jämnt delbart med 15: Kod:
days_since_epoch=$(perl -e 'print int(time/86400)"\n";')
if [[ "$(( $days_since_epoch % 15 ))" -ne 0 ]]
then
exit
else
# do your stuff
fi
Senast redigerad av Annihilannic; 10-13-2008 vid 02:19.. Orsak: Tog bort Duplikatet beräkning av modul. |
|
|||||
|
ja script som körs varje 15days. om det Rans dag dvs den 13 oktober, nästa skulle den 28 oktober och återigen 0n 13 november
Jag har under viss skriptet detaljer, kan u berätta hur att genomföra detta datum logiken i mitt manus -------------------------------------------------- ----------------------- #! / bin / ksh cd / var / bevara count \u003d 0 count \u003d `ls-ltr | grep ^ - | grep" pipe "| wc-l` Om [$ count-eq 0] sedan echo "0 Filer ägs av röret" annan echo "totala filer ägs av röret är $ count" ls-ltr | grep "pipe" | xargs rm-f -- echo "Alla pipe filer raderade" fi -------------------------------------------------- ----------------------- Jag känner till ett kommando som ger dagen efter 15days, men inte få det logiska att genomföra det i manus TZ \u003d "datum +% Z" -360, a \u003d "datum +% Y-% m-% d `--------> 2008-10-28 |
|
||||
|
Ändra bara början såhär. I dag är 14165 dagar sedan epok och 14,165% 15 \u003d 5. Det innebär att skriptet körs i dag och i 15 dagar, 30 dagar, 45 etc.
Kod:
#!/bin/ksh
days_since_epoch=$(perl -e 'print int(time/86400);')
if [[ "$(( $days_since_epoch % 15 ))" -ne 5 ]]
then
exit
fi
...
|
|
||||
|
Tänk på det ... det finns något verkligt behov av den andra delen ... om det inte är samma dag som du vill, det kommer att avsluta ... om det * är * den dag du vill använda skriptet bara fortsätta och köra resten av din kod.
Du kan placera den i en annan klausul om du vill, men resultatet är detsamma. |