Et Cron- eller Cron-job er en tidsbaseret planlægning, der er almindelig i Linux / Unix-systemer. Det planlægger specificerede brugeropgaver, så de kører med jævne mellemrum i fast dato, klokkeslæt eller intervaller. De fleste af disse opgaver er scripts til at udføre funktioner som sikkerhedskopier og mere. For at oprette disse cron-job bruger vi crontab-kommandoerne. En crontab er en UNIX-kommando / hjælpeprogram, der bruges til at oprette og administrere cron-job.
Som du vil se nedenfor, er det ret simpelt at oprette og redigere et cron-job. Den mest fantastiske del er, at du ikke behøver at genstarte cron eller endda din pc efter oprettelse eller redigering af et cron-job. Gem bare filen, så er du klar.
Almindelige anvendelser af Cron Jobs
- Indstilling af hardwaretid: Network Time Protocol bruges af mange computere til at indstille systemtiden, men indstiller ikke hardwaretiden. Med cron kan du indstille hardwaretiden baseret på systemtiden.
- Planlægning af opgaver og kørsel af programmer, der kører daglige programmer: Med cron-tjenesten kan du køre mange systemtjenester, der har brug for daglig prompt som Logwatch.
- Rengøring af bibliotek automatisk, kørsel af sikkerhedskopieringsprogrammer og meget mere.
Grundlæggende dele af en cron-kommando
Standardsyntaxen for crontab er som nedenfor:
a b c d e USERNAME / path / to / script output
1.Tid og dato sammen med hvor gentagne jobbet vil blive specificeret af de fem felter:
-
- en: Protokol: (varierer fra 0 - 59)
- b: Timer: (varierer fra 0 - 23 )
- c: Dage: (Fra 0 - 31 )
- d: Måneder: (Fra 0 - 12 )
- e: Ugedagene: (Fra 0 - 7. )
- en: Protokol: (varierer fra 0 - 59)
Bemærk: Dage starter med mandag. 0 og 7 repræsenterer søndag
2. BRUGERNAVN
: Husk at erstatte dette med dit brugernavn
3. Den specifikke placering og script, der skal udføres af cron, specificeres af det tredje segment:
/ sti / til / script
4. Det sidste afsnit definerer meddelelsen til brugeren ved jobafslutning som en måde at holde styr på opgaver:
produktion
Din indbakke kan dog være fuld af mindre opgaver, der ofte kanaliseres. For at undgå dette kan du deaktivere den automatiske e-mail-output ved at tilføje nedenstående streng til din cron-kommando:
> / dev / null 2> & 1 e.g a b c d e USERNAME / path / to / script> / dev / null 2> & 1
Derudover bruger cron yderligere fire værdier, der bruges til at specificere flere værdier i et felt. De er:
- Stjerne (*): Henviser til alle værdier i et felt.
- Kommaet (,): Brug til at adskille en liste over værdier i cron-kommando.
- Dash (-): Angiv en række værdier.
- Skråstreg (/): opdeler en værdi i forskellige trin.
Opsætning af cron-job
Crontab-kommandoerne er ansvarlige for at oprette og redigere cron-job, fordi cron-filerne ikke skal redigeres direkte. Crontab definerer, hvordan du kan oprette, redigere, liste, debug, installere og afinstallere cron-opgaver.
Før du kommer i gang med cron-job, er det vigtigt at sikre, at dit Linux Desktop eller Server er opdateret ved at udføre nedenstående kommandoer:
sudo apt opdatering sudo apt opgradering
Hvis du ikke har cron-pakken installeret på dit system, skal du installere den med kommandoen nedenfor:
sudo apt-get install cron
Sådan redigeres crontab-filen?
For at afslutte processen skal du konfigurere cron-jobbet. Brugeren, der er logget ind, når et cron-job oprettes, bliver automatisk ejer. Det kan ændres ved at oprette en jobejer, der har ansvaret for at styre cron-job, som vi vil se i dette indlæg.
For at åbne crontab-konfigurationsfilen for den bruger, der aktuelt er logget ind, skal du udføre kommandoen nedenfor:
crontab -e
Du bliver bedt af systemet om at vælge en passende editor. I vores tilfælde vælger vi den første mulighed (nano editor).
Du kan tilføje en planlagt opgave pr. Linje i henhold til dine præferencer.
Når du har tilføjet opgaverne, skal du afslutte ved at gemme filen og afslutte. Alle instruktioner, der leveres, læses og udføres af cron-dæmonen. Ændringerne vil blive anvendt selv uden at genstarte dit system, da lageret opdateres automatisk.
Rediger crontab for en anden bruger
Crontab kan redigeres til forskellige brugere ved hjælp af en kommando i nedenstående syntaks:
crontab -u andet_brugernavn -e
Sådan bruges specialtegn i crontab-kommandoer
Tegn og operatører dikterer mere tilpasning af dit system, da de udvider mulighederne for en cron-opgave.
- Slash bruges til at opdele en tidsstreng i specificerede trin. For eksempel for at køre en sikkerhedskopi hvert 30. minut kan vi bruge:
* / 30 * * * *
- Stjernen (*) bruges til at udføre alle de værdier, der skal udføres. For eksempel:
* / 15 ***
- Streg (-) bruges til at bestemme rækkevidden af aktiviteter, f.eks. Antallet af dage. Til
Eksempelvis kører vi koden kl. 6 hver hverdag, vi bruger;
0 6 * * 1-5 / root / backup.sh
Her står 06 for 6 am 1-5 står for antallet af dage (mandag til fredag).
- Et komma specificerer de enkelte tilfælde, hvor koden skal køre:
0 4 * * 2,4 / root / backup.sh
Kommandoen ovenfor udfører din scriptkode kl. 4 tirsdag og torsdag.
- Du kan også kombinere forskellige jokertegn for at tilpasse dine kommandoer endnu mere. For eksempel, for at udføre vores script hver anden dag kl. 35 minutter over timen, kan vi bruge kommandoen nedenfor:
35 1-23 / 2 * * * / sti / til / script / script.sh
1-23 angiver rækkevidden af timer, / 2 indstiller intervallet til hver anden time.
Cron optioner
- Liste over alle cron-job
Det kan være en god idé at liste cron-job i dit system uden at låse crontab-konfigurationsfilen op. Dette kan gøres ved at starte din terminal og skrive kommandoen nedenfor:
crontab -l
Denne kommando viser alle cron-job, der findes i dit system.
- Slet alle crontab-job
For at slette alle crontab-kommandoer kan du bruge kommandoen nedenfor:
crontab -r
- Slet et cron-job til en anden bruger.
crontab -r -u andet-brugernavn
Brug strenge i Crontab
Strenge er uhyre nyttige værktøjer for udviklere, da de undgår gentagen skrivning af kodesegmenter. Heldigvis understøtter crontabs forskellige strengværdier. De omfatter:
@hver time:
-samme som - “0 * * * *” (Udføres en gang hver time)@midnat:
-samme som - “0 0 * * *“ (Udføres en gang hver dag)@daglige:
det samme som midnat@ugentlig:
-samme som - “0 0 * * 0“ (Udføres en gang hver uge)@månedlige:
-samme som - “0 0 1 * *” (Udføres en gang hver måned)@årligt:
-samme som - “0 0 1 1 *“ (Udføres en gang hver år)@årligt:
svarer til @ årligt@reboot:
Udføres en gang efter hver genstart / genstart / opstart.
Et godt eksempel; Hvis du har et backup-script, som du vil køre hver dag, skal du bruge kommandoen nedenfor:
@daily / sti / til / backup_script.sh
Eksempler på cron-job
Her er en liste over grundlæggende cron-job, der kan bruges, når du kommer i gang:
-
- Sådan køres et script hvert minut:
* * * * * / din / script / sti.sh
- Sådan køres et script hvert 40. minut:
40 * * * * / din / script / sti.sh
- Sådan køres et script hver time:
0 * * * * / din / script / sti.sh
- Sådan køres et script hver midnat:
0 0 * * * / din / script / sti.sh
- Sådan køres et script hvert 23. minut efter midnat, 2 om morgenen og 4 om morgenen hver dag:
23 0-23 / 2 * * * / din / script / sti.sh
- At køre et script kl. 4.05 hver søndag.
5 4 * * sol / din / script / sti.sh
- At køre et script kl. 22 i løbet af ugen.
0 22 * * 1-5 / din / script / sti.sh
- At køre et script den 1. december - midnat.
0 0 0 12 * / din / script / sti.sh
- At køre et script lørdag ved midnat.
0 0 * * 6 / din / script / sti.sh
- At køre et script hver time.
0 * * * * / din / script / sti.sh
- Sådan køres et script hvert minut:
Med disse grundlæggende eksempler kommer du ind i en dybere forståelse af sekvensen og hvordan den kan ændres.
Begrænsning af Cron-adgang
Vi ser, at cron-job kan komme godt med, især når du vil automatisere dine opgaver. Det kan dog også være risikabelt, hvis systemet tillader enhver bruger at oprette et cron-job. Selvom det ikke påvirker personlige data, kan nogle cron-job tage en hel del systemressourcer og dermed forsinke pc'en. For at undgå sådanne scenarier kan systemadministratoren (rodbrugeren) oprette en / etc / cron.give lov til
eller / etc / cron.nægte
den fil, der kun indeholder brugere, der kan 'oprette / ikke oprette' et cron-job.
Det / etc / cron.give lov til
filen indeholder brugere, der kan oprette, redigere, vise eller fjerne crontab-filer. Hvis denne fil ikke eksisterer, kan alle brugere oprette og administrere andre cron-job end dem i / etc / cron.nægte
fil. Hvis ingen af disse filer er til stede, kræves superbrugerrettigheder for at køre crontab-kommandoen.
Nu hvor du har forhindret ikke-root-brugere i at oprette cron-job, hvis de allerede havde nogen, kan du overveje at tilføje deres cron-job i root crontab-filen. Men her er et puslespil - Ved at tilføje deres cron-job til root crontab, kører ikke det deres cron-job som root? Nå, her kommer vigtigheden af USERNAME-feltet, som vi diskuterede ovenfor i cron-kommandosyntaks. For eksempel kommandoen nedenfor:
0 * * * * fosslinux / sti / til / script.sh
Kører som bruger “fosslinux” cron job og ikke som root bruger.
Konklusion
Du har nu en klar guide til brug af Cron-job til at automatisere forskellige opgaver på dit system. Det bør ikke forveksle dig med opstartsapplikationer. Brug eksemplerne ovenfor til at prøve at automatisere enkle scripts. Med tiden kan du kombinere specialtegn og jokertegn for at udføre meget mere verdslige opgaver. Hvis du lige er kommet i gang, ville det være dejligt at læse vores indlæg om bash scripting tutorial med eksempler, der hjælper dig med at oprette dit første script.