Linux - Cron Jobs for Scheduled Tasks (crontab)
Innholdsfortegnelse:
- Hva er Crontab-fil
- Crontab syntaks og operatører
- Systemomfattende Crontab-filer
- Forhåndsdefinerte makroer
- Linux Crontab-kommando
- Crontab-variabler
- Crontab-begrensninger
- Cron Jobs Eksempler
- Konklusjon
Cron er en planleggingsdemon som utfører oppgaver med angitte intervaller. Disse oppgavene kalles cron-jobber og brukes stort sett for å automatisere systemvedlikehold eller administrasjon.
For eksempel kan du angi en cron-jobb for å automatisere repeterende oppgaver som å ta sikkerhetskopi av databaser eller data, oppdatere systemet med de siste sikkerhetsoppdateringene, sjekke bruken av diskplass, sende e-post og så videre. Noen applikasjoner, for eksempel Drupal eller Magento, krever cron-jobber for å utføre visse oppgaver.
Cron-jobbene kan planlegges å kjøre av et minutt, time, dag i måneden, måneden, ukens dag eller en hvilken som helst kombinasjon av disse.
Hva er Crontab-fil
Crontab (cron tabell) er en tekstfil som spesifiserer tidsplanen for cron jobber. Det er to typer crontab-filer. Systemdekkende crontab-filer og individuelle bruker crontab-filer.
Brukernes crontab-filer lagres med brukerens navn, og deres plassering varierer fra operativsystemer. I Red Hat-baserte system som CentOS lagres crontab-filer i
/var/spool/cron
katalogen mens de er på Debian og Ubuntu-filer lagres i
/var/spool/cron/crontabs
katalogen.
Selv om du kan redigere brukerens crontab-filer manuelt, anbefales det å bruke
crontab
kommandoen.
/etc/crontab
og filene i katalogen
/etc/cron.d
er hele systemet Crontab-filer som bare kan redigeres av systemadministratorene.
I de fleste Linux-distribusjoner kan du også plassere skript i
/etc/cron.{hourly, daily, weekly, monthly}
-katalogene, og skriptene blir utført hver
hour/day/week/month
.
Crontab syntaks og operatører
Hver linje i crontab-filen til brukeren inneholder seks felt atskilt med et mellomrom etterfulgt av kommandoen som skal kjøres.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
De fem første feltene kan inneholde en eller flere verdier, atskilt med komma eller et område med verdier atskilt med bindestrek.
-
*
-Stjerneoperatøren betyr enhver verdi eller alltid. Hvis du har stjerne-symbolet i feltet Hour, betyr det at oppgaven blir utført hver time.,
-Kommeaktøren lar deg spesifisere en liste over verdier for repetisjon. For eksempel, hvis du har1, 3, 5
i timefeltet, vil oppgaven kjøres fra 1 am, 3 am og 5 am.-
-Bindestrek-operatøren lar deg angi et verdiområde. Hvis du har1-5
i feltet Day of week, vil oppgaven kjøres hver ukedag (fra mandag til fredag)./
-Snoroperatøren lar deg spesifisere verdier som skal gjentas over et visst intervall mellom dem. Hvis du for eksempel har*/4
i feltet Hour, betyr det at handlingen blir utført hver fjerde time. Det er det samme som å spesifisere0, 4, 8, 12, 16, 20
. I stedet for stjerne før skråstrek-operatøren, kan du også bruke et utvalg av verdier,1-30/10
betyr det samme som1, 11, 21
.
Systemomfattende Crontab-filer
Syntaksen til systemdekkende crontab-filer er litt annerledes enn brukerens crontabs. Den inneholder et ekstra obligatorisk brukerfelt som spesifiserer hvilken bruker som skal kjøre cron-jobben.
Det er flere spesielle Cron-planmakroer som brukes til å spesifisere vanlige intervaller. Du kan bruke disse snarveiene i stedet for dataspesifikasjonen med fem kolonner. Kommandoen crontab lar deg installere eller åpne en crontab-fil for redigering. Du kan bruke crontab-kommandoen til å vise, legge til, fjerne eller endre cron-jobber ved å bruke følgende alternativer: Crontab-kommandoen åpner crontab-filen ved å bruke redigeringsprogrammet som er spesifisert av miljøvariablene
Cron-demonet setter automatisk flere miljøvariabler. Systemadministratorer kan kontrollere hvilke brukere som har tilgang til
Som standard eksisterer bare filen /etc/cron.deny og er tom, noe som betyr at alle brukere kan bruke crontab-kommandoen. Hvis du vil nekte tilgang til crontab-kommandoene til en spesifikk bruker, legger du til brukernavnet til denne filen. Hvis filen
Hvis ingen av filene finnes, kan bare brukerne med administrative rettigheter bruke
Nedenfor er noen eksempler på cron-jobber som viser deg hvordan du planlegger en oppgave å kjøre på forskjellige tidsperioder. Kjør en kommando kl 15:00 på hver dag fra mandag til fredag: Kjør et skript hvert 5. minutt og omdirigerte standardutgangen til
Kjør to kommandoer hver mandag klokka 15.00 (bruk operatøren
Kjør et PHP-skript hvert 2. minutt og skriv utdataene til en fil: Kjør et manus hver dag, hver time, på timen, fra 08.00 til 16.00: Kjør et manus den første mandagen i hver måned, klokka 07.00 Kjør et manus klokka 21:15, den 1. og 15. hver måned: Angi tilpassede
Du har lært hvordan du kan lage cron-jobber og planlegge oppgaver til en bestemt dato og tid. Legg gjerne igjen en kommentar hvis du har spørsmål.
* * * * * command(s)
* * * * * command(s)
Forhåndsdefinerte makroer
@yearly
(eller
@annually
) - Kjør den oppgitte oppgaven en gang i året ved midnatt (kl. 12.00) 1. januar. Tilsvarer
0 0 1 1 *
.
@monthly
- Kjør den oppgitte oppgaven en gang i måneden ved midnatt den første dagen i måneden. Tilsvarer
0 0 1 * *
.
@weekly
- Kjør den oppgitte oppgaven en gang i uken ved midnatt på søndag. Tilsvarer
0 0 * * 0
.
@daily
- Kjør den oppgitte oppgaven en gang om dagen ved midnatt. Tilsvarer
0 0 * * *
.
@hourly
- Kjør den oppgitte oppgaven en gang i timen på begynnelsen av timen. Tilsvarer
0 * * * *
.
@reboot
- Kjør den oppgitte oppgaven ved systemoppstart (starttid).Linux Crontab-kommando
crontab -e
- Rediger crontab-fil, eller opprett en hvis den ikke allerede eksisterer.
crontab -l
- Vis innholdet i crontab-filen.
crontab -r
- Fjern den nåværende crontab-filen.
crontab -i
- Fjern den gjeldende crontab-filen med en ledetekst før du fjerner den.
crontab -u
VISUAL
eller
EDITOR
.Crontab-variabler
PATH=/usr/bin:/bin
. Hvis kommandoen du ringer er til stede i den cron-spesifiserte banen, kan du enten bruke den absolutte banen til kommandoen eller endre cron
$PATH
variabelen. Du kan ikke implisitt legge til
:$PATH
som du gjør med et vanlig skript. Standardskallet er satt til
/bin/sh
. Du kan angi et annet skall ved å endre
SHELL
variabelen. Kron påberoper kommandoen fra brukerens hjemmekatalog.
HOME
variabelen kan overstyres av innstillinger i crontab. E-postvarslingen sendes til eieren av crontab. For å overskrive standardoppførselen, kan du bruke
MAILTO
med en liste (komma separert) med alle e-postadressene du vil motta e-postvarslene. Hvis
MAILTO
er definert men tom (
MAILTO=""
), sendes ingen e-post.Crontab-begrensninger
crontab
kommandoen ved å bruke filene
/etc/cron.deny
og
/etc/cron.allow
. Filene består av en liste med brukernavn, ett brukernavn per linje.
/etc/cron.allow
eksisterer, kan bare brukerne som er oppført i denne filen bruke
crontab
kommandoen.
crontab
kommandoen.Cron Jobs Eksempler
0 15 * * 1-5 command
dev null
, bare standardfeilen blir sendt til den angitte e-postadressen:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
mellom kommandoene):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
HOME
,
PATH
,
SHELL
og
MAILTO
variabler og kjør en kommando hvert minutt.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
Konklusjon
Hvordan planlegge google + (eller google pluss) innlegg med do share

Lær hvordan du planlegger innlegg fra Google+ (eller Google Plus) i fremtiden med deling.
Topp 3 iOS-apper som hjelper deg med å planlegge, forberede deg på turen

En liste over tre kule iPhone-apper som du kan få gratis for å planlegge den perfekte turen.
Hvordan planlegge sosiale arrangementer med Microsofts app-tossup

Microsoft har en app som hjelper deg med å organisere sosiale arrangementer på en enkel måte. Slik bruker du det til å planlegge sosiale arrangementer og samlinger.