![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| crontab ikke kunne køre igennem, hjælpe | duke0001 | UNIX for Advanced & Ekspertsøgning Brugere | 10 | 02-06-2008 03:22 AM |
| Brug af crontab | sumesh.abraham | Shell Programmering og Scripting | 10 | 02-21-2007 06:19 AM |
| crontab | ss4u | UNIX for dummyer Spørgsmål & svar | 2 | 02-20-2007 10:33 AM |
| hjælpe med crontab | bob122480 | Shell Programmering og Scripting | 3 | 01-22-2007 08:49 PM |
| Har du brug for hjælp i crontab? | J_ang | Shell Programmering og Scripting | 3 | 07-22-2006 02:46 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Desværre cron er ikke meget fleksibel i den henseende. Er dit script skal køre præcis hver 15. dag, eller kan du bare køre den på 1. og 16. i hver måned, dvs ca hver 15. dag?
Ellers kan du blive nødt til at lige køre job hver dag, og tilføje nogle logik så det udgange uden at gøre noget, hvis det nuværende antal dage siden 1 januar 1970 er ikke jævnt delelig med 15: Code:
days_since_epoch=$(perl -e 'print int(time/86400)"\n";')
if [[ "$(( $days_since_epoch % 15 ))" -ne 0 ]]
then
exit
else
# do your stuff
fi
Sidst redigeret af Annihilannic; 10-13-2008 på 02:19 AM.. Årsag: Fjernet duplikateksemplar beregning af modulus. |
|
|||||
|
ja script har til at køre hver 15days. hvis det rans i dag, nemlig den 13 oktober, næste ville være den 28. oktober og igen 0n 13 november.
Jeg har nedenfor givet scriptet detaljer, kan u fortælle mig, hvordan du implementerer denne dato logik ind i mit script -------------------------------------------------- ----------------------- #! / bin / ksh cd / var / bevare count \u003d 0 count \u003d `ls-ltr | grep ^ - | grep 'rør' | wc-l` hvis [$ count-eq 0] så echo "0 filer ejes af røret" anden echo "samlede filer ejet af røret er $ count" ls-ltr | grep 'rør' | xargs rm-f -- echo "Alle rør filer slettes" fi -------------------------------------------------- ----------------------- Jeg kender en kommando, som vil give den dato efter 15days, men ikke får den logik til at gennemføre den inden for script TZ \u003d `dato +% Z« -360; a \u003d `dato +% Y-% m-% d `--------> 2008-10-28 |
|
||||
|
Bare ændre begyndelsen som denne. I dag er 14.165 dage siden epoke, og 14,165% 15 \u003d 5. Det betyder dette script vil løbe i dag, og i 15 dage, 30 dage, 45, osv.
Code:
#!/bin/ksh
days_since_epoch=$(perl -e 'print int(time/86400);')
if [[ "$(( $days_since_epoch % 15 ))" -ne 5 ]]
then
exit
fi
...
|
|
||||
|
Tænk over det ... der er ikke noget reelt behov for det andet en del ... hvis det ikke er den dag, du ønsker, det vil forlade ... hvis det * er * dagen du vil, scriptet vil bare fortsætte og gennemføre resten af din kode.
Du kan sætte det i en anden bestemmelse, hvis du ønsker det, men resultatet er det samme. |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|