In dit artikel gaan we bekijken en zien hoe we Linux taken in de achtergrond automatisch op regelmatige tijdstippen kunnen plannen en uitvoeren met behulp van het Crontab-commando.
Het handmatig omgaan met een frequente taak is een ontmoedigende taak voor systeembeheerders en dergelijke taken kunnen worden gepland en automatisch worden uitgevoerd in de achtergrond zonder menselijke tussenkomst met behulp van de cron-daemon in Linux of een Unix-achtig besturingssysteem.
Je kunt bijvoorbeeld Linux systeem back-up, updates plannen, en bestandssynchronisatie automatiseren, en nog veel meer met behulp van de Cron-daemon, die wordt gebruikt om geplande taken vanaf de opdrachtregel uit te voeren, of gebruik online tools om cron-taken te genereren.
Cron wordt elke minuut wakker en controleert geplande taken in een telbare – Crontab (CRON TABEL) is een tabel waarin we dergelijke herhaalde taken kunnen plannen.
Tips: Elke gebruiker kan zijn eigen crontab hebben om taken te maken, wijzigen en verwijderen. Standaard is cron ingeschakeld voor gebruikers, maar we kunnen gebruikers beperken door een vermelding toe te voegen in het /etc/cron.deny-bestand.
Crontab in Linux
Het Crontab-bestand bestaat uit commando’s per regel en heeft eigenlijk zes velden en wordt gescheiden door een spatie of tabteken. De eerste vijf velden vertegenwoordigen de tijd om taken uit te voeren en het laatste veld is voor het commando.
- Minuut (houdt waarden tussen 0-59)
- Uur (houdt waarden tussen 0-23)
- Dag van de Maand (houdt waarden tussen 1-31)
- De maand van het jaar (waarden tussen 1-12 of Jan-Dec, je kunt ook de eerste drie letters van elke maandnaam gebruiken, bijv. Jan of Jun.)
- Dag van de week (waarden tussen 0-6 of Zon-Zat, Hier kun je ook de eerste drie letters van elke dagnaam gebruiken, bijv. Zon of Woe. )
- Opdracht – Het /pad/naar/opdracht of script dat je wilt plannen.
1. Lijst Crontab items
Lijst of beheer de taak met het crontab commando met de -l
optie voor de huidige gebruiker.
# crontab -l 00 10 * * * /bin/ls >/ls.txt
2. Bewerk Crontab items
Om de crontab-invoer te bewerken, gebruik -e
de onderstaande optie. Het onderstaande voorbeeld opent geplande taken in de VI editor. Maak indien nodig wijzigingen en stop door op de :wq
toetsen te drukken die de instelling automatisch opslaan.
# crontab -e
3. Lijst Geplande Cron-taken van Gebruiker
Om geplande taken van een bepaalde gebruiker genaamd tecmint te vermelden met behulp van de optie als -u
(Gebruiker) en -l
(Lijst).
# crontab -u tecmint -l no crontab for tecmint
Let op: Alleen de root gebruiker heeft volledige rechten om de crontab-invoer van andere gebruikers te zien. Normale gebruikers kunnen anderen niet bekijken.
4. Verwijder Crontab invoer
Let op: Crontab met de parameter -r
zal complete geplande taken verwijderen zonder bevestiging van Crontab. Gebruik de -i
optie voordat je de crontab van de gebruiker verwijdert.
# crontab -r
5. Vraag Voordat Crontab Wordt Verwijderd
De crontab met de optie -i
zal de gebruiker om bevestiging vragen voordat de crontab van de gebruiker wordt verwijderd.
# crontab -i -r crontab: really delete root's crontab?
6. Toegestane speciale tekens (*, -, /, ?, #)
- Asterisk (*) – Komt overeen met alle waarden in het veld of elk mogelijke waarde.
- Hyphen (-) – Om een bereik te definiëren.
- Slash (/) – 1e veld /10 betekent elke tien minuten of toename van het bereik.
- De Komma (,) – Om items te scheiden.
7. Systeembrede Cron Planning
A system administrator can use the predefined cron directory as shown below.
- /etc/cron.d
- /etc/cron.daily
- /etc/cron.hourly
- /etc/cron.monthly
- /etc/cron.weekly
8. Plan een taak voor een specifieke tijd
De onderstaande taken verwijderen lege bestanden en mappen uit /tmp om 12:30 uur ’s nachts dagelijks. U moet de gebruikersnaam vermelden om het crontab-commando uit te voeren. In het onderstaande voorbeeld voert de root gebruiker een cron-taak uit.
# crontab -e 30 0 * * * root find /tmp -type f -empty -delete
9. Speciale strings voor veelvoorkomende planning
Strings | Meanings |
---|---|
@reboot | The command will run when the system reboots. |
@daily | Once per day or may use @midnight. |
@weekly | Once per week. |
@yearly | Once per year. we can use the @annually keyword also. |
Moet vijf velden van het cron-commando vervangen door trefwoorden als u hetzelfde wilt gebruiken.
10. Meerdere opdrachten met dubbele ampersand(&&)
In het onderstaande voorbeeld worden commando1 en commando2 dagelijks uitgevoerd.
# crontab -e @daily <command1> && <command2>
11. E-mailmeldingen uitschakelen.
Standaard stuurt cron e-mail naar het gebruikersaccount dat de cronjob uitvoert. Als je dit wilt uitschakelen, voeg dan je cronjob toe zoals het onderstaande voorbeeld. Het gebruik van de >/dev/null 2>&1 optie aan het einde van het bestand zal alle uitvoer van de cronresultaten omleiden onder /dev/null.
[root@tecmint ~]# crontab -e * * * * * >/dev/null 2>&1
conclusie: Automatisering van taken kan ons helpen om onze taken op een betere manier uit te voeren, foutloos en efficiënt. Raadpleeg de handmatige pagina van crontab voor meer informatie door het commando ‘man crontab‘ in te typen in je terminal.
Source:
https://www.tecmint.com/11-cron-scheduling-task-examples-in-linux/