crontab

Sådan planlægger du en opgave i Linux?

Sådan planlægger du en opgave i Linux?
Hver gang du bruger et UNIX-baseret operativsystem, skal visse opgaver udføres gentagne gange. At køre dem manuelt hver eneste gang er tidskrævende og generelt ineffektivt. For at løse dette problem leveres UNIX med sine indbyggede task schedulers. Disse opgaveplanlæggere fungerer som et smart vækkeur. Når alarmen går, kører operativsystemet den foruddefinerede opgave.

I tilfælde af Linux kommer den med to grundlæggende, men kraftfulde værktøjer: Cron-dæmon (standardopgaveplanlægning) og på (mere egnet til engangsopgaveplanlægning).

I denne vejledning skal du tjekke, hvordan du planlægger en opgave i Linux.

Planlæg opgaver i Linux

Cron
Cron-dæmonen er ansvarlig for at køre mange job på bestemte tidspunkter. Disse opgaver køres generelt i baggrunden på planlagte tidspunkter. Det giver stor fleksibilitet uanset opgaven, uanset intervallet (time, uge, måned, år eller hvad som helst).

Cron holder styr på sine handlinger ved hjælp af crontab-filen. Crontab-filen er et script, der indeholder alle de nødvendige oplysninger til at køre alle cron-job.

Lad os se hurtigt på nogle af de grundlæggende anvendelser af cron. I tilfælde af en af ​​følgende kommandoer konfigureres den til rodbrugeren, hvis den køres med sudo-privilegium. Til demonstrationen har jeg hentet en prøve crontab-fil herfra.

For at liste alle de planlagte cron-job for den aktuelle bruger skal du køre følgende kommando. Det udskriver alt indholdet af crontab-filen.

$ crontab -l


Ønsker cron joblisten til en anden bruger? Kør denne kommando i stedet.

$ sudo crontab -u -l


Kør kommandoen for at redigere crontab-scriptet. For at redigere crontab-filen til root skal du køre følgende kommando med sudo-privilegium.

$ crontab -e


Hver linje i crontab-scriptet definerer en opgave. Her er en hurtig oversigt over crontab-poster.

$

Her er en liste over alle mulige værdier for alle disse felter. Hvis der bruges en stjerne (*) i stedet for en numerisk værdi, vil alle mulige værdier i feltet blive brugt.

  • minut: 0 til 59
  • timer: 0 til 23
  • måned i måneden: 1 til 31
  • måned: 1 til 12
  • ugedag: 0 (søndag) til 6 (lørdag)

For en grundig guide til, hvordan du bruger crontab til at automatisere opgaver, skal du tjekke, hvordan du konfigurerer cron-job i Linux. Her er et andet hurtigt eksempel på et cron-job, der kører hvert minut.


Mens cron er den primære måde at planlægge opgaver på, tilbyder det muligheden for at køre en kommando / script på et bestemt tidspunkt eller med et fast interval, men bemærk at at vil køre måljobbet en gang, mens cron ville køre jobbet igen i intervallet. At-værktøjet er mindre populært sammenlignet med cron, men det er relativt lettere at bruge. Du kan bruge bestemte nøgleord som midnat eller teatime (4 s.M.).

Dette værktøj kommer ikke forudinstalleret i de fleste Linux-distroer. For at installere ved skal du køre den relevante kommando i henhold til din distro.

Til Debian / Ubuntu og derivater.

$ Sudo apt-installation kl


Til CentOS / RHEL og derivater.

$ yum installer kl

Til Arch Linux og derivater.

$ sudo Pacman -S kl

For Fedora og derivater.

$ sudo dnf installer kl

Når installationen er afsluttet, skal du aktivere at-dæmonen.

$ sudo systemctl aktiver - nu atd.service


Arbejdsmetoden er lidt anderledes. Når du ringer til, skal du definere intervallet for kørsel af den ønskede opgave. Hvis du f.eks. Vil køre en bestemt kommando efter en time, skal du bruge følgende kommando.

$ nu + 1 time


At køre den ønskede opgave ved 6 s.M., seks dage fra nu, kør følgende kommando i stedet.

$ kl. 18:00 + 6 dage


Når du kører kommandoen, skal du bede om, at kommandoen / kommandoerne skal køre. For at afslutte at-prompt, tryk på “Ctrl + d.”At præsenterer et resumé af de planlagte opgaver og det tidspunkt, de skal udføres.

Dette er bare grundlæggende brug. En mere konsistent måde at bruge på kunne være at udføre et bash-script, der indeholder alle de opgaver, der skal udføres. Interesseret i at lære mere om bash scripting? Kontrollere

$ kl. 18:00 + 6 dage -ff