Zoeken op website

11 Voorbeelden van cron-planningstaak in Linux


In dit artikel gaan we bekijken hoe we Linux-taken met regelmatige tussenpozen automatisch op de achtergrond kunnen plannen en uitvoeren met behulp van de opdracht Crontab.

Het handmatig afhandelen van een veel voorkomende taak is een lastige taak voor systeembeheerders en dergelijke taken kunnen worden gepland en automatisch op de achtergrond worden uitgevoerd zonder menselijke tussenkomst met behulp van cron daemon in Linux of Unix-achtig besturingssysteem.

U kunt bijvoorbeeld de Linux-systeemback-up automatiseren, updates plannen en synchronisatie van bestanden, en nog veel meer met behulp van de Cron daemon, die wordt gebruikt om geplande taken uit te voeren vanaf de opdrachtregel. of gebruik online tools om cronjobs te genereren.

Cron wordt elke minuut wakker en controleert geplande taken in telbare hoeveelheden – Crontab (CRON TABLE) is een tabel waarin we dergelijke soorten herhaalde taken kunnen plannen .

Tips: elke gebruiker kan zijn eigen crontab hebben om taken aan te maken, aan te passen en te verwijderen. Standaard is cron ingeschakeld voor gebruikers, maar we kunnen gebruikers beperken door een vermelding toe te voegen aan het bestand /etc/cron.deny.

Crontab in Linux

Het Crontab-bestand bestaat uit opdrachten per regel en heeft eigenlijk zes velden, gescheiden door een spatie of een tab. De eerste vijf velden vertegenwoordigen de tijd om taken uit te voeren en het laatste veld is voor opdrachten.

  • Minuut (waarden tussen 0-59 vasthouden)
  • Uur (waarden tussen 0-23 vasthouden)
  • Dag van de maand (waarden tussen 1-31 vasthouden)
  • De maand van het jaar (bewaar waarden tussen 1-12 of jan-dec, je kunt de eerste drie letters van de naam van elke maand gebruiken, bijvoorbeeld jan of juni.)
  • Dag van de week (houd waarden vast tussen 0-6 of Zon-Zat. Ook hier kunt u de eerste drie letters van de naam van elke dag gebruiken, bijvoorbeeld Zon of Woensdag.)
  • Commando – Het /pad/naar/commando of script dat u wilt plannen.

1. Maak een lijst van Crontab-vermeldingen

Lijst of beheer de taak met de crontab-opdracht met de optie -l voor de huidige gebruiker.

crontab -l

00 10 * * * /bin/ls >/ls.txt

2. Bewerk Crontab-vermeldingen

Om het crontab-item te bewerken, gebruikt u -e de onderstaande optie. In het onderstaande voorbeeld worden geplande vacatures geopend in de VI editor. Breng de nodige wijzigingen aan en stop met het drukken op de :wq-toetsen die de instelling automatisch opslaan.

crontab -e

3. Maak een lijst van geplande cron-taken van de gebruiker

Om geplande taken weer te geven van een bepaalde gebruiker genaamd tecmint met behulp van de optie als -u (Gebruiker) en -l (Lijst).

crontab -u tecmint -l

no crontab for tecmint

Opmerking: alleen een root-gebruiker heeft volledige rechten om de crontab-items van andere gebruikers te zien. Normale gebruikers kunnen anderen niet bekijken.

4. Verwijder Crontab-invoer

Let op: Crontab met -r de parameter verwijdert volledige geplande taken zonder bevestiging van Crontab. Gebruik de optie -i voordat u de crontab van de gebruiker verwijdert.

crontab -r

5. Vraag voordat u Crontab verwijdert

crontab met -i zal de optie u om bevestiging van de gebruiker vragen voordat de crontab van de gebruiker wordt verwijderd.

crontab -i -r

crontab: really delete root's crontab?

6. Toegestane speciale tekens (*, -, /, ?, #)

  • Asterisk(*) – Match alle waarden in het veld of een mogelijke waarde.
  • Koppelstreepje(-) – Om een bereik te definiëren.
  • Slash (/) – 1e veld /10 betekent elke tien minuten of een toename van het bereik.
  • De Komma (,) – Om items te scheiden.

7. Systeembreed Cron-schema

Een systeembeheerder kan de vooraf gedefinieerde cron-directory gebruiken, zoals hieronder weergegeven.

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.maandelijks
  • /etc/cron.weekly

8. Plan een taak voor een specifieke tijd

De onderstaande taken verwijderen dagelijks om 12:30 's ochtends lege bestanden en mappen van /tmp. U moet de gebruikersnaam vermelden om de crontab-opdracht uit te voeren. In het onderstaande voorbeeld voert de root gebruiker een cronjob uit.

crontab -e

30 0 * * *   root   find /tmp -type f -empty -delete

9. Speciale strings voor gemeenschappelijk schema

@reboot

De opdracht wordt uitgevoerd wanneer het systeem opnieuw opstart.

@daily

Eenmaal per dag of gebruik @midnight.

@weekly

Eens per week.

@yearly

Een maal per jaar. we kunnen ook het trefwoord @annually gebruiken.

U moet vijf velden van de cron-opdracht vervangen door trefwoorden als u dezelfde wilt gebruiken.

10. Meerdere opdrachten met dubbele ampersand(&&)

In het onderstaande voorbeeld worden command1 en command2 dagelijks uitgevoerd.

crontab -e

@daily <command1> && <command2>

11. Schakel e-mailmeldingen uit.

Standaard verzendt cron e-mail naar het gebruikersaccount dat de cronjob uitvoert. Als je het wilt uitschakelen, voeg dan je cron-job toe, vergelijkbaar met het onderstaande voorbeeld. Als u de optie >/dev/null 2>&1 aan het einde van het bestand gebruikt, wordt alle uitvoer van de cron-resultaten omgeleid naar /dev/null.

[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1

conclusie: Automatisering van taken kan ons helpen onze taken op betere manieren, foutloos en efficiënt uit te voeren. U kunt voor meer informatie naar een handleidingpagina van crontab verwijzen door de opdracht ‘man crontab’ in uw terminal te typen.