
Owen Little
0
4820
389
Vidste du, at Blade Runner er sat i 2019? Det er tre år fra nu! For ikke at nævne Tilbage til fremtiden 2, hvor de rejser frem til 2015. Alligevel har vi ikke flyvende biler, og der er ingen replikanter blandt os (så vidt jeg ved).
Det er let at føle sig skuffet over den aktuelle teknologi, når vi sammenligner det med fiktive skildringer af fremtiden. I disse dage kan vores telefoner, computere og endda huse gøre forbløffende ting 5 DIY-hjemmeautomatiseringsprojekter til at komme i gang med dit smarte hjem 5 DIY-hjemmeautomatiseringsprojekter til at komme i gang med dit smarte hjem Når det kommer til at skabe smarte hjem, er de fleste mennesker ved bare ikke, hvor jeg skal starte. Her er fem grundlæggende begyndere-smarte hjemmeprojekter, du kan bygge lige nu. . Evnen til at automatisere opgaver er en af dem.
Hver Linux-bruger kan drage fordel af planlægningsopgaver, uanset om de er systemrelaterede (som at rydde op i gamle logfiler og opdatere pakker. Sådan opdateres en eller alle apps på Linux i sekunder Sådan opdateres en eller alle apps på Linux i sekunder Linux-terminalen gør det nemt at opdatere en enkelt app på din computer eller anvende alle tilgængelige opdateringer på én gang. Sådan gør du.) eller betjener brugeren (kontrol af e-mail, download af podcasts ...). Windows-brugere har haft Task Scheduler 4 Boring Tasks Du kan automatisere med Windows Task Scheduler 4 Boring Tasks Du kan automatisere med Windows Task Scheduler Din tid er for værdifuld til at blive spildt med gentagne opgaver. Lad os vise dig, hvordan du automatiserer og planlægger opgaver. Vi har også et par gode eksempler. siden Windows 95. Værktøjet, der gør det samme job på Linux, kaldes cron, og her forklarer vi, hvordan man bruger det.
Hvad er Cron?
Cron er en systemtjeneste, der kører i baggrunden, kontrollerer for planlagte opgaver og udfører dem, hvis den finder nogen. Opgaverne - også kaldet “cron-job 5 Begynder Linux-opsætningsidéer til Cron-job & skal-scripts 5 Begynder Linux-opsætningsidéer til Cron-job & skal-scripts Med bash-scripting kan du udføre en kompleks række opgaver på én gang, så det er fantastisk til detaljerede og gentagne behov. Det er også en fantastisk måde at lære terminal at kende. ” - er defineret i specielle konfigurationsfiler (crontabs), som cron scanner hvert minut. Flere versioner af cron findes på tværs af forskellige Linux-distributioner. F.eks. Kaldes Fedoras gaffel af cron cronie, og der er også fcron, bcron og dcron. Nogle har ekstra funktioner, mens andre er mere fokuseret på sikkerhed, men de er alle baseret på den samme idé.
Denne guide er skrevet til vixie-cron, som er den mest udbredte version af cron og den, du finder på Ubuntu og dens derivater. Mens de fleste instruktioner også gælder for andre cron-implementeringer, kan der være mindre forskelle, så tjek deres manualer, hvis du beslutter at skifte.
Hvad er en Crontab?
Hvis du ser alvorligt med at styre din tid, har du sandsynligvis en kalender af en eller anden form Organiser din tid med disse 4 Linux-kalender-apps Organiser din tid med disse 4 Linux-kalender-apps Er det fornuftigt at stadig bruge en desktop-kalenderapp? Vi mener det, især for at give adgang til begivenheder på enhver synkroniseret enhed. Disse Linux-kalenderapps er især nyttige. - en app eller i det mindste et stykke papir. Crontab er meget lig din computers kalender. Det indeholder information om planlagte opgaver og fortæller cron hvilke kommandoer der skal køres på hvilket tidspunkt.
Faktisk er der flere crontabs på dit system. Hver bruger har deres egen crontab, inklusive root (administratoren). Bruger crontabs gemmes i / Var / spool / cron / crontabs /
. Det crontab -l
kommando viser crontab-filen for den aktuelle bruger. Du kan kontrollere rod crontab med sudo crontab -l
.
Derudover er der system crontab-filen / Etc / crontab
som bruges til systemdækkende opgaver. Normalt tager de form af eksekverbare, rodejede manuskripter placeret i /etc/cron.hourly/
, /etc/cron.daily/
, /etc/cron.weekly/
, og /etc/cron.monthly/
mapper, og på nogle distributioner, /etc/cron.d/
mappe også. Generelt skal du ikke være nødt til at håndtere disse opgaver, da de fleste af dem oprettes automatisk af installerede applikationer.
Sådan planlægges opgaver med Cron
Det lyder enkelt: at planlægge opgaver, bare tilføj dem til din crontab. Da crontab er en speciel konfigurationsfil, anbefales det ikke at redigere den manuelt. Brug i stedet for crontab -e
kommando. For at redigere rod eller andre brugers crontabs skal du køre kommandoen med administrative rettigheder og tilføje deres brugernavn efter indstillingen -u:
sudo crontab -u rod -e
sudo crontab -u brugernavn -e
Crontab-filen har to sektioner. Den første indeholder miljøvariabler, der indstilles automatisk. Du kan med sikkerhed ændre variablerne PATH, HOME og SHELL og ændre MAIL-variablen.
Den anden del af filen er den faktiske “tidsplan” med dine planlagte opgaver. Hver opgave indtager en linje (række) i tabellen med kolonner, der repræsenterer følgende værdier:
For at kunne planlægge opgaver skal du vide lidt om crontab-syntaks:
- Tallene skal være heltal (hele tal), og du kan bruge stjerne (*) i en hvilken som helst af kolonnerne som et jokertegn, hvilket betyder “hvert minut / dag / måned ... ”.
- I “Månedens dag” kolonne, skal du passe på ikke at indstille en dato, der ikke forekommer i den måned, der er angivet i “Måned” kolonne (for eksempel 30. februar).
- Begge “Måned” og “Ugedag” kolonner accepterer korte navne i henholdsvis måneder og dage, og de er små og små følsomme.
- I “Ugedag” kolonne, både 0 og 7 står for søndag. Det “Time” kolonnen kræver “militær tid” (24-timers) format, men du kan ikke bruge tallet 24 - i stedet står 0 for kl. 12.00. Dette skyldes, at værdierne for minut, time og ugedag starter ved 0 i stedet for 1.
- Sekunder understøttes ikke, så du kan ikke planlægge en opgave på et bestemt sekund.
Hvad du kan gøre er at planlægge inkluderende tidsintervaller ved hjælp af en bindestreg (14-22 under “timer” kører opgaven kontinuerligt fra kl. til kl. 10), eller kør en enkelt opgave flere gange ved at definere en kommasepareret liste (1,3,5 under “Ugedag” kører opgaven mandag, onsdag og fredag).
I mellemtiden er trinværdier repræsenteret ved en fremad skråstreg (/), og disse angiver mængden af spring over inden for et interval; for eksempel 3-20 / 3 under “timer” kører opgaven hver tredje time fra kl. 15 til 20. Dette er nyttigt, når du vil gentage opgaver hver X-time, fordi du kan kombinere en stjerne og et trin (* / X). Du kan kombinere intervaller med lister og trin med intervaller, så længe du bruger tal. Med andre ord kombinationer som “jan-mar” eller “Tir, fre-søn” er ikke tilladt.
I stedet for at indstille en værdi for hver kolonne, kan du bare skrive @ ugentligt, @årligt, @månedigt, @ hverdag eller @hourly i starten af en række efterfulgt af en kommando. Planlagt som dette kører opgaverne i det første mulige tilfælde, så @weekly ville køre ved midnat den første ugedag. Hvis du vil køre en opgave straks, når systemet (gen) starter, skal du bruge kommandoen @reboot.
I dette eksempel har vi planlagt en sikkerhedskopi hver dag kl. 08:20 og 20:20. Tapetet ændres automatisk hver tredje dag kl. 19:00, og et script tjekker for nye podcasts De 10 bedste apps til styring af podcasts på Linux De 10 bedste apps til styring af podcasts på Linux Linux har ikke et godt valg af podcastklienter, men rolig - næsten enhver moderne musikafspiller til Linux kan fungere som podcatcher. Lad os se på mulighederne. hver mandag kl. 10:20 og 20:20. En fødselsdagspåmindelse er indstillet til den 25. marts, og den kører hvert 30. minut inden for den specificerede tidsramme. Endelig kontrollerer et script e-mail hvert 15. minut fra 8 til 20, men kun på arbejdsdage. Du er fri til at organisere din crontab med mellemrum og faner mellem kolonner, men ikke inden i dem (ikke anbring mellemrum mellem kommaer, bindestreger og skråstreg).
Hvis alt dette lyder for kompliceret, skal du ikke bekymre dig - du kan altid stole på internettet. Værktøjer som Crontab Generator, Crontab.guru og Corntab hjælper dig med at skabe cron-job uden at kende nogen crontab-syntaks. De viser dig, hvornår jobbet kører næste, og giver skabeloner til almindeligt anvendte udtryk. Crontab.guru er det bedste af flokken, fordi det giver dig live-test crontab-syntaks, så du straks kan se, hvordan dine ændringer vil påvirke tidsplanen.
Sådan kontrolleres, om Cron-job udføres
Cron skal køre stille i baggrunden og lade dig arbejde uforstyrret, mens den tager sig af dine opgaver. Men hvordan kan du sikre dig, at det faktisk fungerer?
Cron har en indbygget e-mail-meddelelsesfunktion, men dette kræver opsætning af mindst en enkel lokal mailserver. Hvordan fungerer en e-postserver? [Teknologi forklaret] Hvordan fungerer en e-postserver? [Teknologi forklaret] Bag hver e-mail er en stærk motor kaldet e-mail-serveren, der skubber e-mails via internettet. . Ikke mange hjemmebrugere er villige til at konfigurere dette, og ikke mange distributioner leverer det som standard (f.eks. Gør Ubuntu ikke). Den hurtigste måde at tjekke op på cron er at scanne systemloggen med denne kommando:
cat / var / log / syslog | grep -i cron
Valgmuligheden -i gør vores forespørgsel i sager ufølsom. Det er muligt, at cron har sin egen logfil et eller andet sted i / Var / log /
, så se der, hvis denne kommando ikke leverer nyttige resultater.
Hvis du har brug for at gemme output fra et bestemt cron-job, kan du omdirigere det til en fil. Angiv stien og navnet på filen i den sidste kolonne i din crontab, efter den kommando, du vil køre:
30 * * * * / usr / bin / yourcommand> /home/username/logfile.txt
Ved hjælp af et enkelt> symbol overskrives filen hver gang kommandoen kører. Brug >> i stedet for at undgå dette - det tilføjer output til den eksisterende fil.
Hvad hvis Cron ikke fungerer?
Det kan ske, at du har tilføjet nogle opgaver, kontrolleret systemlogfilerne og fundet, at de ikke udfører, som de skulle. Her er nogle ting, du skal overveje - og være forsigtig med - når du prøver at løse problemet.
Kører cron-tjenesten?
Som du ved, skal cron-dæmonen køre i baggrunden. Sørg for, at dette virkelig er tilfældet. Tjenesten kaldes enten crond eller bare cron.
For distributioner ved hjælp af systemd:
systemctl status cron
For distributioner ved hjælp af Upstart:
service cron status
Hvis din distribution bruger “gammel” System V init tilgang, angiv alle tjenester med:
initctl liste
og se om cron er listet.
Har du endda tilladelse til at have en crontab-fil?
Tjek din /etc
mappe for navngivne filer cron.allow
og cron.deny
. På Ubuntu skal ingen af disse findes, hvilket betyder, at alle brugere har lov til at administrere cron-job. Men hvis der er en cron.allow
fil, skal det indeholde dit brugernavn. Omvendt, hvis cron.deny
filen findes, dit brugernavn skal ikke være i det. Forlader cron.deny
file blank betyder, at kun root og brugere, der er anført i cron.allow
kan have crontab-filer.
Er dine variabler indstillet korrekt?
Crontab indstiller automatisk din SHELL-variabel til / Bin / sh
. Hvis dit valg af skal er fisk 7 grunde til at du skal installere fiskeskallen 7 grunde til at du skal installere fiskeskallen kan du ikke lide, hvordan din Linux-terminal fungerer? Hvorfor ikke installere en ny skal? En sådan skal er fisk, der introducerer funktioner, der burde være blevet almindelige, men ikke gjorde det. Lad os se. eller bash, skal du ændre SHELL-variablen. Ligeledes indeholder PATH-variablen kun et par mapper som standard. Det er her crontab ser efter Linux-kommandoer. Hvis dit cron-job ikke kører, kan det skyldes, at crontab ikke gør det “se” den kommando, du har brugt. For at undgå dette, tilføj mapper, der indeholder kommandoerne til PATH-variablen, adskilt af kolon:
PATH = / opt / mitpgm / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin
Hvis du ikke ønsker at redigere dette i din crontab, kan du definere disse variabler i det script, du vil køre som et cron-job.
Er din crontab-formatering på punkt?
Crontab-syntaks er ikke nøjagtigt glat sejlads. Selv hvis du verificerer det med onlineværktøjer, der er nævnt tidligere, kan en mindre fejl stadig forhindre cron i at udføre dine job. Vær forsigtig med at:
- tilføj en tom linje i slutningen af crontab-filen
- undslippe% -tegnet med en tilbagegang, hvis din kommando inkluderer det
- skriv kommentarer som separate linjer, der starter med #. Skriv ikke kommentarer på samme linje som miljøvariablerne eller ved siden af cron job-kommandoer.
Skal du virkelig bruge terminalen?
Absolut ikke. KDE-brugere kan planlægge cron-job med KCron, som er tilgængelig fra Systemindstillinger> Opgaveplanlægning modul. Med en ligetil grænseflade, der giver dig mulighed for at vælge og finpusse alt på blot et par museklik, er KCron en fornøjelse at bruge.
Hvis du foretrækker GNOME, er GNOME-planen noget for dig. Fremgangsmåden er den samme, skønt grænsefladen forventes lidt anderledes. Det tilbyder en avanceret tilstand til finkornede ændringer og kommer med en panelapplet, hvorfra du kan administrere opgaver direkte.
Du skal være opmærksom på andre løsninger, som Crontab-UI og Minicron. De er mere velegnede til brugere, der administrerer flere maskiner og cron-job, og en af deres fedeste funktioner er den webbaserede interface.
Er der nogle Cron-alternativer?
Mens cron stort set er standardopgaveplanlæggeren for Linux-planlægning og automatisering af opgaver i Linux med Gnome-planplanlægning og automatisering af opgaver i Linux med Gnome-planen, er det bestemt ikke den eneste. Kommandoen at er perfekt til hurtige engangsjob, der kan planlægges lige fra kommandolinjen uden specielle konfigurationsfiler. Hvis du har brug for mere, er der GNUbatch, der introducerer forestillingen om afhængighed. Med GNUbatch kan du indstille specifikke betingelser for hvert job eller gøre en planlagt opgave afhængig af et tidligere. Noget lignende kan opnås med systemd timere. Selvom det er mindre praktisk at konfigurere end cron, kan systemd-timere huske, om en opgave gik glip af dens plan, mens computeren var slukket, og køre den næste gang den er tændt.
Dette er noget, som cron ikke kan gøre alene. Som sådan er det velegnet til servere og computere, der konstant kører, men det udfører ikke et job, der var planlagt, mens computeren var slukket. Det er her anacron kommer i spil. Det er teknisk set ikke et “alternativ” eller en erstatning for cron. I stedet komplementerer anacron cron og bør bruges ved siden af det, hvilket er tilfældet på mange Linux-distributioner, herunder Ubuntu og Ubuntu-baserede produkter. Anacron logger, hvornår en opgave sidst blev udført, og kontrollerer, om der var mistede tilfælde, mens systemet var slukket. Det kører dem, når du tænder computeren igen, men enhver opgave kan udføres kun en gang om dagen.
Nogle versioner af cron, som fcron, tilbyder anacron's funktioner som standard. Avancerede brugere vil måske se på Hcron eller SuperCron, som bringer mange forbedringer af basale cron-funktioner, men er også noget udfordrende at styre.
Hvad med dig? Hvordan organiserer du dine digitale opgaver? Hvilke opgaver planlægger du på Linux? Del dine historier og tip til brug af cron i kommentarerne.
Billedkredit: tidsplan bord af Gonzalo Aragon via Shutterstock