Leer Linux

Cron Jobs maken op Linux

Cron Jobs maken op Linux

Een Cron- of Cron-taak is een op tijd gebaseerde planner die veel voorkomt in Linux/Unix-systemen. Het plant gespecificeerde gebruikerstaken om periodiek uit te voeren op een vaste datum, tijd of intervallen. De meeste van deze taken zijn scripts om functies zoals back-ups en meer uit te voeren. Om deze cron-taken te maken, gebruiken we de crontab-opdrachten. Een crontab is een UNIX-opdracht/hulpprogramma dat wordt gebruikt om cron-taken te maken en te beheren.

Zoals je hieronder zult zien, is het maken en bewerken van een cron-taak vrij eenvoudig. Het meest verbazingwekkende is dat je cron of zelfs je pc niet opnieuw hoeft te starten na het maken of bewerken van een cron-taak. Sla het bestand gewoon op en u bent klaar om te gaan.

Veelvoorkomend gebruik van Cron Jobs

Basisonderdelen van een cron-opdracht

De standaard syntaxis van de crontab is als volgt:

a b c d e GEBRUIKERSNAAM /pad/naar/script uitvoer

1.De tijd en datum samen met hoe repetitief de taak zal zijn, worden gespecificeerd door de vijf velden:

Opmerking: de dagen beginnen met maandag. 0 en 7 vertegenwoordigen zondag

2. GEBRUIKERSNAAM: Vergeet niet om dit te vervangen door uw gebruikersnaam

3. De specifieke locatie en het script dat door cron moet worden uitgevoerd, worden gespecificeerd door het derde segment:

/pad/naar/script

4. De laatste sectie definieert de melding aan de gebruiker bij voltooiing van de taak als een manier om taken bij te houden:

uitvoer

Uw inbox kan echter vol staan ​​met kleine taken die vaak worden gekanaliseerd. Om dit te voorkomen, kunt u de automatische e-mailuitvoer uitschakelen door de onderstaande tekenreeks aan uw cron-opdracht toe te voegen:

>/dev/null 2>&1 e.g a b c d e GEBRUIKERSNAAM /pad/naar/script>/dev/null 2>&1

Bovendien gebruikt cron nog vier waarden die worden gebruikt bij het specificeren van meerdere waarden in een veld. Zij zijn:

De cron-taken instellen

De crontab-opdrachten zijn verantwoordelijk voor het maken en bewerken van cron-taken, omdat de cron-bestanden niet rechtstreeks moeten worden bewerkt. De crontab definieert hoe u de cron-taken kunt maken, bewerken, weergeven, debuggen, installeren en verwijderen.

Voordat u aan de slag gaat met cron-taken, is het essentieel om ervoor te zorgen dat uw Linux-desktop of -server up-to-date is door de onderstaande opdrachten uit te voeren:

sudo apt update sudo apt upgrade

Als je het cron-pakket niet op je systeem hebt geïnstalleerd, installeer het dan met de onderstaande opdracht:

sudo apt-get install cron

cron installeren

Hoe het crontab-bestand te bewerken?

Om het proces te voltooien, moet u de cron-taak configureren. De gebruiker die is ingelogd wanneer een cron-taak wordt gemaakt, wordt automatisch de eigenaar. Dat kan worden veranderd door een taakeigenaar aan te maken die verantwoordelijk is voor het beheer van de cron-taak, zoals we in dit bericht zullen zien.

Om het crontab-configuratiebestand te openen voor de gebruiker die momenteel is ingelogd, voert u de onderstaande opdracht uit:

crontab -e

U wordt door het systeem gevraagd om een ​​geschikte editor te kiezen. In ons geval zullen we de eerste optie kiezen (nano-editor).

crontab -e

U kunt één geplande taak per regel toevoegen volgens uw voorkeuren.

crontab-bestand

Na het toevoegen van de taken, sluit u af door het bestand op te slaan en af ​​te sluiten. Alle gegeven instructies worden gelezen en uitgevoerd door de cron daemon. De wijzigingen worden zelfs toegepast zonder uw systeem opnieuw op te starten, aangezien de repository automatisch wordt bijgewerkt.

Crontab bewerken voor een andere gebruiker

Crontab kan voor verschillende gebruikers worden bewerkt met behulp van een opdracht in de onderstaande syntaxis:

crontab -u andere_gebruikersnaam -e

Speciale tekens gebruiken in crontab-opdrachten

Tekens en operators dicteren meer aanpassing van uw systeem omdat ze de mogelijkheden van een cron-taak uitbreiden.

0 6* * 1-5 /root/back-up.sh

Hier staat 06 voor 6 uur. 1-5 staat voor het aantal dagen (maandag t/m vrijdag).

35 1-23/2 * * * /pad/naar/script/script.sh

1-23 specificeert het bereik van uren, /2 stelt het interval in op elk ander uur.

Cron-opties

Misschien wilt u de cron-taken in uw systeem weergeven zonder het crontab-configuratiebestand te ontgrendelen. Dit kan worden gedaan door uw terminal te starten en de onderstaande opdracht te typen:

crontab -l

lijst cron-taken op

Dat commando geeft een overzicht van alle cron-taken die in uw systeem aanwezig zijn.

Om alle crontab-opdrachten te verwijderen, kun je de onderstaande opdracht gebruiken:

crontab -r
crontab -r -u andere-gebruikersnaam

Strings gebruiken in Crontab

Strings zijn enorm nuttige hulpmiddelen voor ontwikkelaars omdat ze het herhaaldelijk schrijven van codesegmenten vermijden. Gelukkig ondersteunen crontabs verschillende tekenreeksen. Ze bevatten:

@uur: -hetzelfde als - “0 * * * *“ ( Wordt elke keer uitgevoerd uur)
@middernacht:  -hetzelfde als - “0 0 * * *“ ( Wordt elke keer uitgevoerd dag)
@dagelijks: hetzelfde als middernacht
@wekelijks:  -hetzelfde als - "0 0 * * 0" (wordt elke keer uitgevoerd week)
@maandelijks: -hetzelfde als - “0 0 1 * *“ ( Wordt elke keer uitgevoerd maand)
@jaarlijks: -hetzelfde als - “0 0 1 1 *“ ( Wordt elke keer uitgevoerd jaar)
@jaarlijks: gelijk aan @annual
@herstart: Eenmaal uitgevoerd na elke herstart/herstart/opstart.

Een goed voorbeeld; als je een back-upscript hebt dat je elke dag wilt uitvoeren, gebruik dan de onderstaande opdracht:

@daily /pad/naar/backup_script.sh

Voorbeelden van cron-taken

Hier is een lijst met standaard cron-taken die kunnen worden gebruikt om aan de slag te gaan:

    1. Elke minuut een script uitvoeren:
      * * * * * /uw/script/pad.sh
    2. Elke 40 minuten een script uitvoeren:
      40 * * * * /uw/script/pad.sh
    3. Elk uur een script uitvoeren:
      0 * * * * /uw/script/pad.sh
    4. Om elke middernacht een script uit te voeren:
      0 0 * * * /uw/script/pad.sh
    5. Om elke 23 minuten na middernacht, 2 uur en 4 uur elke dag een script uit te voeren:
      23 0-23/2 * * * /uw/script/pad.sh
    6. Een script uitvoeren op 4.05 elke zondag.
      5 4 * * zon /uw/script/pad.sh
    7. Om doordeweeks om 22.00 uur een script te draaien.
      0 22 * ​​* 1-5 /uw/script/pad.sh
    8. Een script uitvoeren op 1 december - middernacht.
      0 0 0 12 * /uw/script/pad.sh
    9. Een script draaien op zaterdag om middernacht Saturday.
      0 0 * * 6 /uw/script/pad.sh
    10. Elk uur een script uitvoeren.
      0 * * * * /uw/script/pad.sh

Met deze basisvoorbeelden krijgt u een dieper begrip van de reeks en hoe deze kan worden gewijzigd.

Cron-toegang beperken

We zien dat cron-jobs best van pas kunnen komen, vooral als je je taken wilt automatiseren. Het kan echter ook riskant zijn als het systeem elke gebruiker toestaat een cron-taak te maken. Zelfs als het geen invloed heeft op persoonlijke gegevens, kunnen sommige cron-taken behoorlijk wat systeembronnen in beslag nemen, waardoor de pc achterblijft. Om dergelijke scenario's te vermijden, kan de systeembeheerder (rootgebruiker) een /etc/cron.toestaan  of /etc/cron.ontkennen het bestand dat alleen gebruikers bevat die kunnen 'maken/niet-maken' een cronjob.

De /etc/cron.toestaan het bestand bevat gebruikers die crontab-bestanden kunnen maken, bewerken, weergeven of verwijderen. Als dit bestand niet bestaat, kunnen alle gebruikers andere cron-taken maken en beheren dan die in de /etc/cron.ontkennen het dossier. Als geen van deze bestanden aanwezig is, zijn superuser-privileges vereist om de opdracht crontab uit te voeren.

cron bestand toestaan

Nu je hebt voorkomen dat niet-root-gebruikers cron-taken maken als ze die al hadden, kun je overwegen hun cron-taken toe te voegen aan het root-crontab-bestand. Maar hier is een puzzel - Door hun cron-jobs toe te voegen aan de root-crontab, draaien hun cron-jobs niet als root? Welnu, hier komt het belang van het veld USERNAME dat we hierboven hebben besproken in de cron-opdrachtsyntaxis. Bijvoorbeeld het onderstaande commando:

0 * * * * fosslinux /pad/naar/script.sh

Zal draaien als gebruiker "fosslinux" cron job en niet als de root gebruiker.

Conclusie

U hebt nu een duidelijke handleiding over het gebruik van Cron-taken om verschillende taken op uw systeem te automatiseren. Dat zou u niet moeten verwarren met Opstarttoepassingen. Gebruik de bovenstaande voorbeelden om eenvoudige scripts te automatiseren. Na verloop van tijd kun je speciale karakters en jokertekens combineren om veel meer alledaagse taken uit te voeren. Als je net begint, zou het geweldig zijn om ons bericht over de bash-scripting-tutorial te lezen met voorbeelden die je zullen helpen bij het maken van je eerste script.

Microsoft Sculpt Touch draadloze muis Review
Ik las onlangs over de Microsoft Sculpt Touch draadloze muis en besloot hem te kopen. Nadat ik het een tijdje had gebruikt, besloot ik mijn ervaring e...
AppyMouse trackpad en muisaanwijzer op het scherm voor Windows-tablets
Tabletgebruikers missen vaak de muisaanwijzer, vooral wanneer ze gewend zijn om de laptop te gebruiken. Het touchscreen Smartphones en tablets hebben ...
Middelste muisknop werkt niet in Windows 10
De middelste muis knop helpt u door lange webpagina's en schermen met veel gegevens te bladeren. Als dat stopt, zul je uiteindelijk het toetsenbord ge...