Skip to main content

Hoe het Linux Crontab-bestand te bewerken om taken te plannen

Command Line V/s GUI - Linux Tutorial (Juni- 2026)

Command Line V/s GUI - Linux Tutorial (Juni- 2026)
Anonim

Een daemon in Linux genoemd cron voert processen met regelmatige tussenpozen uit. Het controleert bepaalde mappen op uw systeem zodat scripts in een reeks mappen kunnen worden uitgevoerd, waaronder /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly en /etc/cron.monthly. Er is ook een bestand met de naam / etc / crontab.

Scripts in Cron-mappen plaatsen

U kunt eenvoudig scripts in de relevante mappen plaatsen om ze met regelmatige tussenpozen te laten werken.

Open bijvoorbeeld een terminalvenster en voer de volgende ls-opdracht uit:

ls / etc / cron *

U ziet de lijst met programma's of scripts die elk uur, dagelijks, wekelijks en maandelijks worden uitgevoerd.

Het probleem met deze mappen is dat ze een beetje vaag zijn. Bijvoorbeeld, dagelijks betekent dat het script eenmaal per dag wordt uitgevoerd, maar u hebt geen controle over de tijd dat het script gedurende die dag wordt uitgevoerd.

Dat is waar het crontab-bestand binnenkomt.

Door het crontab-bestand te bewerken, kunt u een script of programma laten uitvoeren op de exacte datum en tijd waarop u het wilt laten uitvoeren.

machtigingen

De opdracht crontab vereist dat een gebruiker machtigingen heeft om een ​​crontab-bestand te bewerken. Er zijn in principe twee bestanden die worden gebruikt om crontab-machtigingen te beheren:

  • /etc/cron.allow
  • /etc/cron.deny

Als het bestand /etc/cron.allow bestaat, moet de gebruiker die het crontab-bestand wil bewerken zich in dat bestand bevinden. Als het cron.allow-bestand niet bestaat, maar er is een bestand /etc/cron.deny dan moet de gebruiker niet in dat bestand bestaan. Als beide bestanden bestaan, heft het /etc/cron.allow het /etc/cron.deny-bestand op. Als geen van beide bestanden bestaat, is het afhankelijk van de systeemconfiguratie of een gebruiker de crontab kan bewerken.

De root-gebruiker kan altijd het crontab-bestand bewerken. U kunt de opdracht su gebruiken om over te schakelen naar de rootgebruiker of de opdracht sudo om de opdracht crontab uit te voeren.

Het Crontab-bestand bewerken

Elke gebruiker met de juiste machtigingen kan zijn eigen crontab-bestand maken. De cron-opdracht zoekt in principe naar alle crontab-bestanden en loopt door elk van hen.

Voer de volgende opdracht uit om te controleren of u een crontab-bestand hebt:

crontab -l

Als u geen crontab-bestand hebt, verschijnt de melding "geen crontab voor "verschijnt, anders wordt uw crontab-bestand weergegeven (deze functionaliteit verschilt van systeem tot systeem, soms geeft het helemaal niets weer en op andere momenten wordt" dit bestand niet bewerkt "weergegeven).

Als u een crontab-bestand wilt maken of bewerken, voert u de volgende opdracht uit:

crontab -e

Het bestand dat wordt geopend bevat veel informatie, maar het belangrijkste deel is het voorbeeld vlak voor het einde van de sectie Opmerkingen (opmerkingen worden aangeduid door regels die beginnen met #).

# m h dom mon dow-opdracht

0 5 * * 1 tar -zcf /var/backups/home.tgz / home /

Er zijn 6 stukjes informatie die op elke regel van het crontab-bestand passen:

  • De minuut van de dag waarop de opdracht wordt uitgevoerd (m)
  • Het uur van de dag waarop de opdracht moet worden uitgevoerd (h)
  • De dag van de maand dat de opdracht wordt uitgevoerd (dom)
  • De maand dat het commando moet lopen (mon)
  • De dag van de week dat de opdracht wordt uitgevoerd (dow)
  • Het bevel

Voor elk item (behalve de opdracht) kunt u een jokerteken opgeven. Bekijk het volgende voorbeeld crontab regel:

30 18 * * * tar -zcf /var/backups/home.tgz / home /

Na 30 minuten, 18 uur en elke dag, maand en dag van de week, zal deze crontab-invoer de basismap rippen en tareren naar de map / var / backups.

Voer de volgende opdracht uit om een ​​opdracht 30 minuten na elk uur te laten uitvoeren:

30 * * * * opdracht

Voer de volgende opdracht uit om een ​​opdracht te krijgen die elke minuut na 18.00 uur wordt uitgevoerd:

* 18 * * * opdracht

Je moet daarom voorzichtig zijn met het opstellen van je crontab-commando's.

Bijvoorbeeld:

* * * 1 * opdracht

Deze opdracht wordt in januari elke minuut van elk uur van elke dag van elke week uitgevoerd.

Als u om 01.00 uur een opdracht wilt uitvoeren op 1 januari, voert u met de volgende opdracht het crontab-bestand uit:

0 5 1 1 * opdracht

Hoe een Crontab-bestand te verwijderen

Meestal wilt u het crontab-bestand niet verwijderen, maar wilt u mogelijk enkele rijen uit het crontab-bestand verwijderen.

Als u echter het crontab-bestand van uw gebruiker wilt verwijderen, voert u de volgende opdracht uit:

crontab -r

Een veiligere manier om dit te doen is om het volgende commando uit te voeren:

crontab -i

Het besturingssysteem vraagt ​​om verificatie voordat het crontab-bestand wordt verwijderd.