Cron är en schemaläggare av uppgifter, speciellt utformad för Linux och andra Unix-liknande system. Det är en standardkomponent i de flesta Linux-distributioner och är särskilt användbar för att automatisera återkommande sysslor.
För att säkerställa att cron fungerar som det ska är det viktigt att regelbundet kontrollera dess funktion på ditt system. Detta kan göras på flera sätt, till exempel genom att verifiera cron-tjänstens status, granska cron-loggar, köra ett test-cronjobb och inspektera pågående processer.
Vad är cron?
Cron är en tyst bakgrundstjänst som automatiserar och schemalägger systemuppgifter. Det används ofta av systemadministratörer och utvecklare för att schemalägga uppgifter som kommandon eller shell-skript, så kallade cron-jobb, för att köras regelbundet vid specifika tidpunkter eller med jämna mellanrum.
Cron automatiserar därmed rutinuppgifter inom systemunderhåll och administration som annars skulle behöva utföras manuellt.
Det finns olika implementeringar av cron tillgängliga för Linux. Vilken version som används beror på distributionen. ”Vixie cron”, uppkallad efter sin ursprunglige utvecklare Paul Vixie, är en vanlig och standardversion på Debian- och Ubuntu-system. Arch Linux använder systemd timers istället för en dedikerad cron-demon.
Cronie, en vidareutveckling av Vixie cron, är standardpaketet för Arch Linux. För att installera det, använd pacman:
sudo pacman -S cronie
Starta och aktivera tjänsten med följande kommandon:
sudo systemctl start cronie.service
sudo systemctl enable cronie.service
Du kan kontrollera vilken version av cron som är installerad genom att konsultera manualsidan:
man cron
Hur man kontrollerar att cron fungerar på Linux
Här är några metoder för att verifiera att cron fungerar korrekt:
1. Kontrollera cron-tjänstens status
Ett enkelt sätt att kontrollera om cron fungerar är att kontrollera tjänstens status via systemctl. Öppna terminalen och använd följande kommando:
sudo systemctl status cron
Om utdata liknar det nedan betyder det att cron är aktivt och fungerar som det ska:
Men om cron är inaktivt, vilket visas nedan:
Starta tjänsten med:
sudo systemctl start cron.service
Aktivera sedan tjänsten för automatisk start vid nästa systemuppstart:
sudo systemctl enable cron.service
2. Granska cron-loggar
Ett annat sätt att verifiera cron-funktionalitet är att undersöka loggfilerna. Cron-loggar lagras vanligtvis i /var/log/syslog.
Syslog är ett protokoll som Linux använder för att centralisera händelseloggar. Loggarna används för revisioner, övervakning, felsökning och andra IT-relaterade uppgifter.
Du kan visa cron-jobbloggarna i syslog med följande kommando:
grep 'cron' /var/log/syslog
En liknande utdata indikerar att cron fungerar och loggarna sparas i filen:
Eftersom syslog innehåller många andra systemloggar kan det vara besvärligt att isolera cron-relaterad information. Du kan skapa en separat loggfil för endast cron-relaterade loggar.
I det här exemplet används nanoredigeraren, men du kan använda valfri redigerare.
Öppna följande fil med nano:
nano /etc/rsyslog.d/50-default.conf
Leta efter raden som börjar med:
#cron.*
Avkommentera raden genom att ta bort #-tecknet. Spara och stäng filen med Ctrl+X, tryck sedan på Y och enter.
Starta om rsyslog-tjänsten:
sudo service rsyslog restart
Nu sparas loggar i filen cron.log som finns i katalogen /var/log.
Om inga loggar visas i terminalen kan det indikera att cron inte körs. Verifiera i så fall med andra metoder.
3. Köra ett test-cronjobb
Du kan också kontrollera om cron fungerar genom att skapa och köra ett test-cronjobb. Om jobbet utförs korrekt indikerar det att cron fungerar som det ska.
Skapa först ett bash-skript. Bash-skript gör det möjligt att automatisera uppgifter på Linux.
Vi skapar ett bash-skript som skriver ”mitt cronjobb fungerar!” till en TXT-fil. Ta reda på din aktuella arbetskatalog med:
pwd
Skapa en fil i den aktuella katalogen med:
touch file.txt
Skapa sedan en bash-fil med nano:
nano script.sh
Lägg till följande i filen:
#!/usr/bin/bash
echo "mitt cronjobb fungerar!" >> /home/användarnamn/file.txt
Se till att ange rätt sökväg för textfilen. Spara och stäng filen med Ctrl+X, sedan Y och enter.
Ge skriptet exekveringsrättigheter:
chmod +x script.sh
Skapa nu ett cron-jobb för att köra skriptet. Öppna crontab-filen med:
crontab -e
Lägg till följande rad i slutet av filen:
* * * * * /sökväg/till/script.sh
De fem asterisker matchar tidpunkten för körningen. Den första representerar minuter (0-59), den andra timmar (0-23), den tredje dagen i månaden, den fjärde månaden och den femte veckodagen (0-6, 0 är söndag).
Sökvägen till skriptet anges också.
Efter att ha sparat filen visas meddelandet ”crontab: installerar ny crontab”.
Kontrollera att cron-jobbet fungerade genom att visa innehållet i file.txt:
cat file.txt
Detta bekräftar att cron fungerar korrekt.
4. Kontrollera aktiva processer
Ytterligare ett sätt att kontrollera att cron fungerar är att lista systemets pågående processer med kommandot ps. Cron-demonen visas som ”crond”.
ps aux | grep cron
Detta bekräftar att cron körs på ditt system.
Automatisera och schemalägg systemuppgifter med cron
Cron är ett viktigt verktyg på Linux som bidrar till effektiv systemdrift. Det är viktigt att verifiera att cron fungerar korrekt, särskilt vid felsökning av systemproblem.
Du kan verifiera dess funktion genom att granska cron-loggar, undersöka pågående processer och kontrollera tjänstens status med systemctl. Dessutom kan du bekräfta att cron fungerar genom att köra ett testjobb.
En korrekt fungerande cron-demon möjliggör automatisering och schemaläggning av rutinuppgifter. Många cron-jobb skapas automatiskt av installerade applikationer. Genom att automatisera och schemalägga uppgifter förbättras systemets övergripande prestanda och underhålls effektivt.